Julian Sommer
015dbbc272
feat: frontend performance
2026-03-10 10:31:59 +10:00
Julian Sommer
404b3d6246
release: update go.mod for v0.2.3
v0.2.3
2026-03-10 09:36:58 +10:00
Julian Sommer
021b0982f4
fix: bump go 1.26.1 references and fix gosec G104 in hiveui
2026-03-10 08:33:04 +10:00
Julian Sommer
7b590957e1
fix: bump go 1.26.1
2026-03-10 08:19:38 +10:00
Julian Sommer
c9c3cda651
fix: redirect HTTP to HTTPS on same port for hive-ui
...
Uses a TLS-detecting listener that peeks the first byte of each
connection. TLS handshakes (0x16) proceed normally; plain HTTP
requests get a 301 redirect to the HTTPS URL. This handles
http://localhost:3000 gracefully instead of showing a cryptic error.
2026-03-10 08:14:19 +10:00
Julian Sommer
1efb4c4a3b
fix: config
2026-03-06 14:51:21 +10:00
Julian Sommer
05cb4ac108
feat: frontend refactors ( #66 )
2026-03-06 15:42:01 +11:00
Julian Sommer
6eac4d6598
feat: IAM Frontend ( #65 )
2026-03-06 15:14:50 +11:00
Julian Sommer
f03a2314c6
feat: terminated instances expiry ( #63 )
2026-03-06 12:51:27 +11:00
Julian Sommer
2c444b1eba
chore: install tsgo
2026-03-06 11:46:21 +10:00
Julian Sommer
aea2e2c05a
ci: setup go work after
2026-03-06 10:41:45 +10:00
Julian Sommer
d90bf53eaf
fix: log rotate ovn
2026-03-06 10:10:34 +10:00
Julian Sommer
14c52366da
fix: decouple gateway from qmp
2026-03-06 10:06:59 +10:00
Julian Sommer
6737c42601
refactor: consolidate NATS/API types into types/ package (phase 1)
...
Move EBS, cluster, and node message types from config/ to types/.
Remove duplicate NodeDiscoverResponse from gateway and daemon.
Delete dead EC2StartInstances types and tests from config.
Update all imports across source and test files.
2026-03-06 09:56:04 +10:00
Julian Sommer
19988af768
fix: gofmt formatting
2026-03-06 09:48:16 +10:00
Julian Sommer
d20fcd2c38
fix merge
2026-03-06 09:45:34 +10:00
Julian Sommer
1c6950b89e
release: update go.mod for v0.2.2
v0.2.2
2026-03-06 09:45:34 +10:00
Julian Sommer
94ec56bb59
fix: extract shared type
2026-03-06 09:45:34 +10:00
Julian Sommer
0b2e613c6c
fix: diff-coverage.sh
2026-03-06 08:22:30 +10:00
Julian Sommer
2d304528b8
chore: bump deps
2026-03-06 08:15:48 +10:00
Julian Sommer
35f2104325
feat: more tests
2026-03-05 15:09:24 +10:00
Julian Sommer
c4027a0380
test: add gateway core routing, IAM auth, and handler test coverage
...
Squash of dev commits: gateway core routing/policy/middleware tests,
IAM auth and handler tests, awserrors tests, respondWithJSON helper,
utils refactor into focused files, and daemon test speedups.
2026-03-05 14:20:00 +10:00
Julian Sommer
77c6d05042
refactor: replace NYTimes/gziphandler with stdlib compress/gzip
...
Drop the external gziphandler dependency in hiveui. The replacement
uses a simple http.ResponseWriter wrapper that checks Content-Type
against an allowlist before enabling gzip compression. Same behavior,
zero external deps.
2026-03-05 12:53:46 +10:00
Julian Sommer
8af3d2e5fa
feat: migrate off fiber ( #62 )
2026-03-05 12:53:46 +10:00
Julian Sommer
49c5807ef1
refactor: accounts
2026-03-05 11:41:51 +10:00
Julian Sommer
5fad038b87
feat: IAM account scoping ( #61 )
2026-03-05 09:06:35 +10:00
Julian Sommer
48c0565d47
fix: ovn shut down on stop-dev.sh
2026-03-03 15:12:44 +10:00
Julian Sommer
371193a832
feat: IAM v1 ( #59 )
2026-03-03 15:23:19 +11:00
Julian Sommer
9d66ef8233
fix: sanitize error codes to prevent leaking internal errors to clients
...
Add awserrors.ValidErrorCode() to validate error strings against
ErrorLookup before sending to clients. Replace hardcoded
"ValidationError" strings in utils.go with awserrors constants.
2026-02-27 08:49:18 +10:00
Julian Sommer
992111e809
fix: race condition + frontend refetching
2026-02-27 08:14:50 +10:00
Julian Sommer
12c2e2789e
fix: skip diff coverage when instrumentable lines below minimum
...
The MIN_LOC=100 threshold checked total diff lines, not instrumentable
lines. A commit with many non-instrumentable lines (structs, comments)
but only 1-2 instrumentable lines would unfairly fail at 0% coverage.
Add a minimum instrumentable lines threshold (5) so the check skips
when the sample size is too small to be meaningful.
2026-02-26 11:35:22 +10:00
Julian Sommer
3720a5ba90
feat: blockdevicemappings fix ( #55 )
2026-02-26 11:47:37 +11:00
Julian Sommer
de0e049b16
fix: e2e console output
2026-02-26 08:26:34 +10:00
Julian Sommer
6e3fe148af
feat: frontend features
2026-02-26 08:22:55 +10:00
Julian Sommer
81b990a238
fix: e2e verify errored instance didnt restart on launch
2026-02-25 11:33:44 +10:00
Julian Sommer
52f2498699
fix: proper recovery checks e2e
2026-02-25 11:16:07 +10:00
Julian Sommer
61e8eb9d91
fix: reset LaunchTime on instance relaunch to prevent watchdog termination
...
During cluster restart, restoreInstances resets running instances (with
dead QEMU) to pending for relaunch, but didn't reset LaunchTime. The
pending watchdog (5min timeout) saw the stale LaunchTime from the
original launch and immediately marked instances as failed/terminated,
preventing any relaunch from succeeding.
2026-02-25 10:48:16 +10:00
Julian Sommer
1453beca6b
Merge remote-tracking branch 'origin/main' into dev
2026-02-25 10:45:45 +10:00
Julian Sommer
d0056ee925
fix: daemon-level retry with backoff for NATS/JetStream startup ( #52 )
2026-02-25 11:43:10 +11:00
Julian Sommer
55486490aa
fix: kv stream recovery ( #54 )
2026-02-25 11:41:28 +11:00
Julian Sommer
b370f6336e
docs
2026-02-25 10:01:12 +10:00
Julian Sommer
1910347cce
fix: make building on start-dev.sh opt in
2026-02-25 09:56:13 +10:00
dependabot[bot]
e08b8140a6
chore: bump github.com/gofiber/fiber/v2 from 2.52.11 to 2.52.12 ( #51 )
2026-02-25 10:36:09 +11:00
dependabot[bot]
a7e0cb6972
chore: bump github.com/nats-io/nats-server/v2 ( #50 )
2026-02-25 10:35:49 +11:00
Julian Sommer
6b9fc7b600
refactor: daemon
2026-02-25 08:22:46 +10:00
Julian Sommer
c2e66e1ab4
refactor: extract respondWithError; fix nil panic in RunInstance
...
Extract duplicated respondWithError closures into a single package-level
function. Guard against nil ImageId in handleEC2RunInstances to prevent
panic under race conditions. Fix diff-coverage base ref for main branch.
2026-02-24 15:02:57 +10:00
Julian Sommer
deae613a75
refactor: split daemon_handlers.go into per-domain files
...
Split the monolithic daemon_handlers.go into focused files:
- daemon_handlers_account.go
- daemon_handlers_console.go
- daemon_handlers_igw.go
- daemon_handlers_image.go
- daemon_handlers_instance.go
- daemon_handlers_key.go
- daemon_handlers_snapshot.go
- daemon_handlers_tag.go
- daemon_handlers_volume.go
- daemon_handlers_vpc.go
Add tests for ModifyVolume success, TerminateStoppedInstance with volumes,
DescribeInstanceTypes capacity filter, StartStoppedInstance type-not-available,
AttachVolume/DetachVolume validation paths, RunInstances error paths, and
DescribeInstances malformed ID.
Fix diff-coverage.sh to use git rename/copy detection (-M -C) so file
splits are not incorrectly flagged as all-new code.
2026-02-24 14:28:24 +10:00
Julian Sommer
8188707c91
feat: VPC networking v1 — OVN-based virtual networking for EC2 instances
2026-02-24 14:13:57 +10:00
Julian Sommer
b9c528ce4c
fix frontend vuln
2026-02-24 11:56:17 +10:00
Julian Sommer
5992d3f056
test: general test coverage improvements across hive packages
...
Coverage improvements:
- awsec2query: parser byte slice, invalid input, locationName fallback (73% → 83%)
- config: EC2StartInstancesResponse.Respond NATS round-trip, NodeBaseDir, ShardWAL
- daemon: 14 NATS delegate handlers, device allocation, canAllocate (count=0 boundary),
resource management, shutdown ACK/progress, JetStream WriteServiceManifest,
fix smallestAllocType to score by both vCPU and memory
- gateway: GenerateEC2ErrorResponse XML validation (fixed no-op assertion),
DiscoverActiveNodes (5 scenarios), ParseAWSQueryArgs, ParseArgsToStruct (41.6% → 52.1%)
- utils: ConnectNATS (success, token, wrong token, bad address), NATSRequest
- vm: ResetNodeLocalState, PIDFile/QMP, NoGraphic, Serial+Console partial configs,
NetDevs, ARM64, KVM, full config (68.1% → 91.7%)
2026-02-20 15:09:33 +10:00