Ben Duncan
21aa1296c9
systemd tweaks for binary install to correctly function
v1.0.1
2026-04-02 13:35:52 +10:00
Julian Sommer
ea6b5d770a
fix: mask credentials in CLI override log output
...
Access key and secret key values were printed to stdout when using
--access-key and --secret-key flags. These are captured by systemd
journal and log aggregation, exposing secrets. Log that keys were
overridden without printing the actual values.
Addresses H-5 from security audit.
2026-04-02 12:25:27 +10:00
Julian Sommer
f986cf9748
fix: ui cert path
2026-04-02 11:55:32 +10:00
Julian Sommer
11f7c99955
fix: ui cert path
2026-04-02 11:20:02 +10:00
Julian Sommer
1b45c7fc7d
fix: nats ip in services
2026-04-02 10:58:39 +10:00
Julian Sommer
868a92bd55
fix: service
v1.0.0-hotfix
2026-04-02 10:35:00 +10:00
Julian Sommer
af52d881b9
fix: chown
2026-04-02 10:26:56 +10:00
Julian Sommer
c51ea0c29d
fix: make download checksum verification mandatory
2026-04-02 09:56:57 +10:00
Julian Sommer
8cf0cc332f
feat: remove pw login
2026-04-02 09:51:07 +10:00
Julian Sommer
1d6cefd9d2
feat: extract helpers ( #109 )
2026-04-02 10:25:01 +11:00
Julian Sommer
0c160d7f45
fix: add request body size limit
2026-04-01 15:36:06 +10:00
Julian Sommer
91e4efb0ef
feat: extract tag helper
2026-04-01 15:27:43 +10:00
Julian Sommer
f5ec8c3bae
feat: formation server HTTPS ( #108 )
2026-04-01 16:20:28 +11:00
Julian Sommer
8795a7b926
fix: remove dev branch
2026-04-01 13:54:35 +10:00
Julian Sommer
39e9fa6fb8
feat: more filters ( #106 )
2026-04-01 14:23:04 +11:00
Julian Sommer
853b5bfd32
feat: filterutil migration ( #105 )
2026-04-01 14:05:21 +11:00
Julian Sommer
d7c72e80af
feat: filters ( #104 )
2026-04-01 12:20:56 +11:00
Julian Sommer
475e632404
chore: update COMMANDS.md
2026-03-31 15:53:02 +10:00
Julian Sommer
92e25a9653
chore: bump predastore
v1.0.0
2026-03-31 14:11:47 +10:00
Julian Sommer
ec525d3a6d
add back -fsSL
2026-03-31 13:59:58 +10:00
Julian Sommer
94978f517b
actual last
2026-03-31 13:55:48 +10:00
Julian Sommer
4d7239e645
last doc tweaks
2026-03-31 13:50:18 +10:00
Ben Duncan
acc8dc1994
Remove macvlan
2026-03-31 13:36:42 +10:00
Julian Sommer
a7ed93c6f3
docs: add prerequisite
2026-03-31 13:28:12 +10:00
Julian Sommer
67075c6600
docs: better urls
2026-03-31 13:25:23 +10:00
Ben Duncan
ae223cdf15
Merge branch 'dev' of github.com:mulgadc/spinifex into dev
2026-03-31 13:19:48 +10:00
Ben Duncan
b73a630f41
TF updates
2026-03-31 13:19:17 +10:00
Julian Sommer
c283100fcf
docs: rename source-install to source-installation
2026-03-31 13:16:42 +10:00
Julian Sommer
355decd406
docs: tweaks
2026-03-31 13:10:59 +10:00
Julian Sommer
b76953bfb4
doc tweaks
2026-03-31 13:02:21 +10:00
Julian Sommer
c9e83380df
a
2026-03-31 11:59:07 +10:00
Julian Sommer
e421840541
feat: placment group docs
2026-03-31 11:42:29 +10:00
Julian Sommer
406ba9431e
fix
2026-03-31 11:39:10 +10:00
Julian Sommer
7882f77a36
add more docs
2026-03-31 11:36:09 +10:00
Julian Sommer
f7b99f0c50
fix: COMMANDS.md
2026-03-31 11:29:28 +10:00
Julian Sommer
f3ee50e9b8
fix: show deleted nat gateways
2026-03-31 10:49:36 +10:00
Julian Sommer
4f3b54abc2
fix: ModifyInstanceAttribute SourceDestCheck
2026-03-31 10:30:14 +10:00
Julian Sommer
a7925d65f2
feat: DescribeAddressesAttribute ( #103 )
2026-03-31 11:14:27 +11:00
Julian Sommer
0d2e91da37
fix: downgrade node types to 24.12.0
2026-03-31 08:16:45 +10:00
Julian Sommer
e2c7a64aff
fix: set ui to use dark mode by default
2026-03-31 08:10:59 +10:00
dependabot[bot]
588141cf67
chore: bump the npm-dependencies group across 1 directory with 18 updates ( #101 )
2026-03-31 09:05:09 +11:00
dependabot[bot]
9e3076727e
chore: bump github.com/nats-io/nats.go in the go-dependencies group ( #99 )
2026-03-31 09:03:19 +11:00
Ben Duncan
c1df418c5c
fix: parse NODE column correctly from pipe-delimited spx get vms output
2026-03-30 22:16:23 +10:00
Ben Duncan
5e0d819393
test: add frontend unit tests to meet 70% line coverage threshold
...
Add tests for: back-link, not-found, list-card, header,
delete-confirmation-dialog, use-initial-sidebar hook, admin queries,
and admin-dashboard-panel. Line coverage: 63.98% → 71.12%.
2026-03-30 22:09:14 +10:00
Ben Duncan
6d3b2f7e5d
feat: add multi-node NAT GW + spread placement group E2E test
...
Phase 11 in run-multinode-e2e.sh:
- Create VPC with public + private subnets + IGW
- Launch bastion in public subnet, verify SSH
- Create spread placement group, launch 3 VMs in private subnet
- Validate spread distribution via spx get vms (3 nodes)
- Verify no internet pre-NAT (ping 8.8.8.8 fails from all 3)
- Create NAT GW + EIP + route, poll for OVN SNAT rule
- Verify internet via NAT GW from all 3 nodes (different physical hosts)
- Full cleanup: NAT GW, instances, placement group, VPC resources
2026-03-30 21:54:22 +10:00
Ben Duncan
f3c5bce811
feat: admin dashboard, nodes page, S3 service metrics, sidebar branding
...
Admin Dashboard Panel:
- spinifex service namespace on AWS gateway (GetCallerIdentity,
GetVersion, GetNodes, GetVMs, GetStorageStatus)
- Admin detection via SigV4-signed GetCallerIdentity
- Dashboard panel: version, license, cluster status, add-ons matrix
- Sidebar branding: Mulga logo + "Spinifex", SVG favicon
- Upgrade button (admin + open-source)
- Documentation link (admin only)
Nodes Page (/nodes, admin only):
- Cluster nodes with services, roles, region, uptime
- Elastic Compute Cloud (EC2) instances with age
- Resource usage per node + instance type capacity table
S3 Service Metrics (/s3/service-metrics, admin only):
- Daemon NATS handler parses predastore TOML (creds stripped)
- Gateway queries DB nodes /status + /health in parallel
- Predastore (S3) Overview: RS encoding, node counts, cluster health
- DB Consensus Nodes: Raft state, leader, term, commit/applied index
- Object Storage Shard Nodes: topology from config
Frontend infrastructure:
- signedFetch utility (SigV4 via @smithy/signature-v4)
- AdminContext + useAdmin hook
- React Query options for admin endpoints
- Full-width sidebar separator above sign out
2026-03-30 17:21:45 +10:00
Ben Duncan
9b8863a182
Revert "feat: add install call-home telemetry to admin init and join"
...
This reverts commit 6e807f88cf .
2026-03-30 16:35:47 +10:00
Ben Duncan
6e807f88cf
feat: add install call-home telemetry to admin init and join
...
Sends anonymous telemetry to install.mulgadc.com/install during
spx admin init and join. Reports machine_id (/etc/machine-id),
region, az, node count, version, and arch. Fire-and-forget with
5-second timeout — never blocks the user.
Opt out with --no-telemetry flag or SPX_NO_TELEMETRY=1 env var.
2026-03-30 16:34:45 +10:00
Ben Duncan
32f5ec92c0
fix: exclude 127.0.0.1 from SERVICE_IPS when awsgw binds to specific IP
2026-03-30 11:14:49 +10:00
Ben Duncan
6a4b823de7
fix: only test TLS connections on awsgw bind IP, not all interfaces
...
In single-node mode, cert E2E discovered all host IPs (WAN, mgmt, VPC)
and tried openssl s_client on each. But awsgw only binds to the
configured host IP, not all interfaces. Management (10.11.x) and VPC
(10.x) IPs have no listener on port 9999, causing false failures.
Split NODE_IPS (all IPs for SAN validation) from SERVICE_IPS (IPs
where awsgw listens) parsed from spinifex.toml. Connection-based
tests (3, 4c, 5, 8) now use SERVICE_IPS.
2026-03-30 10:51:29 +10:00