Commit Graph
73 Commits
Author SHA1 Message Date
mrhid6 b5b9775d2b fix(patch): gate phases on the window deadline, queue undelivered results, retry startup inventory
Agent Release / build (push) Successful in 3m40s
Agent Release / msi (push) Successful in 4m54s
The window deadline no longer kills a running package manager: it only gates
the start of each phase, and a started upgrade runs under a 2 hour backstop
that sends SIGTERM on Linux. A PatchResult whose send fails is queued and
flushed on the next command stream, retaking the reboot decision. deb822
folded Suites continuation lines are filtered with the field. The startup
static inventory report is retried until it succeeds.
2026-09-15 13:43:03 +00:00
mrhid6 ecd703d502 feat: answer ApplyUpdatesCmd with a PatchResult and reboot when the command asks 2026-09-15 08:09:40 +00:00
mrhid6 db75d7dcbd feat: report boot time with every inventory report 2026-09-15 08:00:18 +00:00
mrhid6 a4745834de feat: Windows security-only updates and agent-initiated reboot 2026-09-15 07:56:28 +00:00
mrhid6 51b58fef21 feat: updates.Apply with security scope, window deadline, busy guard and captured output 2026-09-15 07:47:29 +00:00
mrhid6 5f5e19e23e feat: filter apt sources down to security suites for security-only patching 2026-09-15 07:43:28 +00:00
mrhid6 3aa24bb938 feat: pin vantage-shared v0.5.0, add package-manager output tail buffer 2026-09-15 07:33:59 +00:00
mrhid6 b777ffcf58 chore: replace em dashes with hyphens, add no-em-dash rule to CLAUDE.md 2026-09-10 09:18:54 +00:00
mrhid6 1ad46dfda2 feat: Updated go deps 2026-09-08 15:33:39 +00:00
mrhid6 6b2c5f6f62 refactor: stand up vantage-agent as its own repository
Agent Release / build (push) Successful in 2m23s
Agent Release / msi (push) Successful in 3m10s
agent/ becomes the repository root, so the module is
gitea.hostxtra.co.uk/vantage/vantage-agent, and installer/ comes with it.

Releases move to this repository, and internal/sync's self-update URLs
move with them. Agents built before this point have the old
mrhid6/vantage path compiled in and will fail the push-button update;
re-running the server-generated /update one-liner on each host moves
them onto a build that knows the new address.
2026-09-08 08:58:30 +00:00
mrhid6 20fd5790a1 refactor: consume vantage-shared as an external private module
shared/ is extracted to gitea.hostxtra.co.uk/vantage/vantage-shared and
pinned at v0.1.0 by server, agent, admin, sitesvc and vantagectl. The
replace directives and the ./shared entry in go.work are gone.

Every Go build now needs a credential for the private module: CI writes a
netrc per job from REGISTRY_USER + RELEASE_TOKEN and sets GOPRIVATE, and
the four Go Dockerfiles take it as a BuildKit secret rather than a build
arg, which would survive in the builder layer's history. RELEASE_TOKEN
needs read access to the vantage org.

admin, sitesvc and vantagectl now build from their own directory; only
server still needs the repository root, for default_steps/. The rebuild
triggers in server-deploy.yml lose their shared/ patterns, since a
service now moves when its own go.mod pin does.
2026-09-08 07:42:58 +00:00
mrhid6 866584de81 refactor: rename shared module to gitea.hostxtra.co.uk/vantage/vantage-shared 2026-09-08 07:34:53 +00:00
mrhid6 1c8e6da013 feat: Move grpc pbs to shared 2026-09-07 15:50:25 +00:00
mrhid6 72e27d9455 feat: Useragent 2026-08-24 12:17:46 +00:00
mrhid6 f2053cf703 fix: Word and colour Windows workloads correctly across the UI 2026-08-13 12:57:37 +00:00
mrhid6 a5930e89bd fix: Trim Windows event log after SCM filtering, not before 2026-08-13 12:12:11 +00:00
mrhid6 2a3ab12396 feat: Control Windows services and read their event log as workloads 2026-08-13 12:04:49 +00:00
mrhid6 c38e2ab9ba fix: Respect .exe word boundary and unterminated quotes in servicePath 2026-08-13 12:00:59 +00:00
mrhid6 d764eb2c6f feat: Collect Windows services as workloads 2026-08-13 11:52:08 +00:00
mrhid6 c3075fd743 refactor: Split the agent workloads package by build tag 2026-08-13 10:49:24 +00:00
mrhid6 ccaec93bc4 feat: Report whether a managed host is waiting on a reboot 2026-08-13 10:39:27 +00:00
mrhid6 50723811c1 feat: Check and apply Windows updates through the Windows Update COM API 2026-08-13 10:36:22 +00:00
mrhid6 4a63788f08 refactor: Split the agent updates package by build tag 2026-08-13 10:33:35 +00:00
mrhid6 41b0377e32 feat: Add winexec helper for running PowerShell from the agent 2026-08-13 10:26:31 +00:00
mrhid6 cabbed8cc5 fix: Fixed agent package version 2026-08-07 10:21:00 +01:00
mrhid6 6c6b8a8a4a feat: agent reports workloads and handles workload commands 2026-08-07 08:58:46 +01:00
mrhid6 ac093bcf5c feat: store workload reports and route log results 2026-08-07 08:56:26 +01:00
mrhid6 8e134a6676 feat: workload registry proto messages 2026-08-07 08:53:33 +01:00
mrhid6 8b1175e8ff feat: agent reads bounded workload logs 2026-08-07 08:49:42 +01:00
mrhid6 467ccabe36 feat: agent control actions with self-protection 2026-08-07 08:48:27 +01:00
mrhid6 5561c10086 feat: agent enumerates systemd services 2026-08-07 08:46:59 +01:00
mrhid6 2390642f1f feat: agent enumerates docker containers 2026-08-07 08:46:03 +01:00
mrhid6 c972f99678 fix: Fixed agent collect packages 2026-08-06 16:20:34 +01:00
mrhid6 f88c96166e feat: agent reports installed packages on the hourly loop
SyncKeys now returns the whole response so the poll can carry
CollectPackages; a separate RPC for one boolean would be a message every
30 seconds for a value that changes when a licence does.

The flag is an atomic: the 30s poll writes it, the hourly package loop
reads it, and they are different goroutines.
2026-08-06 13:21:13 +01:00
mrhid6 d05c2aa478 feat: ReportPackages wire types with hash short-circuit
The pb packages are hand-written, not protoc-generated, and the wire
codec is JSON (encoding.RegisterCodec(JSONCodec{})). Field numbers in
the .proto are documentation; JSON field names are the contract. Both pb
packages edited by hand to match.

SyncResponse.collect_packages is omitempty and absent decodes as false,
so an older server leaves agents collecting nothing rather than
collecting without a licence.
2026-08-06 13:17:44 +01:00
mrhid6 031f2ce583 feat: agent collects installed packages per package manager 2026-08-06 11:56:41 +01:00
mrhid6 c5baa3a138 feat: agent parses /etc/os-release for distro identification 2026-08-06 11:55:45 +01:00
mrhid6 ee4d4afa99 feat: Removed unused test units 2026-08-03 10:18:01 +01:00
mrhid6 c4da8ba96b feat: More logging for command stream 2026-07-31 17:20:35 +01:00
mrhid6 260b1fb0ef feat: Added ping command 2026-07-31 17:10:59 +01:00
mrhid6 c9868b362b fix: Fixes to server shutdown stream 2026-07-31 16:44:47 +01:00
mrhid6 b2c7dee391 feat: handle OpenProxyCmd in the agent command stream 2026-07-29 13:03:02 +01:00
mrhid6 bba41a7a85 feat: add agent-side console relay 2026-07-29 12:59:24 +01:00
mrhid6 b23805a7b8 feat: add ProxyStream wire types for agent-relayed console 2026-07-29 12:37:37 +01:00
mrhid6 df875bde5b feat: Windows agent inventory 2026-07-28 11:29:08 +01:00
mrhid6 66d56199a2 fix: Fixed agent msi update command 2026-07-28 10:53:06 +01:00
mrhid6 65e285a894 fix: Fixed agent build 2026-07-28 10:30:29 +01:00
mrhid6 cadab8a231 feat: Updated package path to match repo 2026-07-28 10:01:40 +01:00
mrhid6 88e1938832 Merge branch 'feat/shared-module'
Shared Go module extraction (spec 0a) and the Org to Instance rename (spec 0b).

- shared/ module holds the documents and provisioning rules the control plane
  and sitesvc both write; sitesvc's hand-copied duplicates are deleted
- Org becomes Instance everywhere, including the org_id field on all 17
  tenant-scoped collections, via migration 0004_org_to_instance
- cmd/rename-rollback reverses the migration
- Go images now build from the repo root so the replace directive resolves

Migration verified against a seeded legacy fixture: lossless, tenant-isolated,
idempotent, resumable and reversible. NOT yet rehearsed against a production
snapshot, which plan 0b requires before deploying.
2026-07-24 14:21:56 +01:00
mrhid6 b54abd2841 fix(agent): restore the !linux build constraint on collect_other.go
Unrelated to the shared module work; pre-existing on main.

"_other" is not a GOOS suffix, so without the constraint this file compiled
on Linux alongside collect_linux.go and redeclared collect. Linux agent
builds failed, which agent-release.yml depends on.
2026-07-24 13:48:23 +01:00
mrhid6 6987179535 feat: Removed comments 2026-07-24 09:51:30 +01:00
mrhid6 abac836a6d feat: edit monitors + notification channels; HTTP monitor insecure-TLS option 2026-07-21 14:55:41 +01:00
mrhid6 8b56911db6 feat(agent): agent-run monitor scheduler 2026-07-21 14:19:59 +01:00
mrhid6 c3613c6c0a feat(proto): SyncMonitors + ReportChecks RPCs 2026-07-21 14:18:49 +01:00
mrhid6 8071606109 feat(agent): schedule inventory reporting (30s metrics, 15m static) 2026-07-21 14:07:09 +01:00
mrhid6 d7801b68d2 feat(agent): /proc-based inventory collectors 2026-07-21 14:06:11 +01:00
mrhid6 403a6d39d5 feat(proto): add ReportInventory RPC and inventory model 2026-07-21 14:04:28 +01:00
mrhid6 acde2c7623 feat: More verbose logging on workflow logs 2026-07-20 17:35:58 +01:00
mrhid6 0501239c54 feat(agent): stream step output chunks over CommandStream 2026-07-20 12:36:37 +01:00
mrhid6 45947b60b8 feat(proto): add StepOutputChunk streaming message 2026-07-20 12:34:32 +01:00
mrhid6 1aa5cddb94 fix(workflows): mask output env in persisted logs, preserve cancelled status, run agent step async 2026-07-20 12:01:35 +01:00
mrhid6 783b40ab2c feat(agent): execute RunStepCmd with WORKFLOW_ENV capture 2026-07-20 11:29:14 +01:00
mrhid6 397c92c3a4 feat(proto): add RunStepCmd and StepResult messages 2026-07-20 11:24:08 +01:00
mrhid6 c3e8c19b7c fix: Ci and agent update 2026-07-17 16:43:57 +01:00
mrhid6 48b462a3ac fix: agent msi agent version upgrade 2026-07-17 16:19:42 +01:00
mrhid6 0a0013e7ef fix: Fixed msi version 2026-07-17 16:10:19 +01:00
mrhid6 d78c8cb8d8 fix: Fixed agent windows version 2026-07-17 15:38:00 +01:00
mrhid6 8646f6ba70 fix: Fixes to setup scripts 2026-07-17 15:18:49 +01:00
mrhid6 a376f7f27b fix: More agent install debugging 2026-07-17 15:05:34 +01:00
mrhid6 b5212da5b8 fix: marshal MSI install properties into deferred CustomActionData 2026-07-17 11:54:33 +01:00
mrhid6 7b65f5f27d ci: package windows agent as WiX MSI 2026-07-17 11:35:09 +01:00
mrhid6 37e163b211 feat: skip authorized_keys management on non-linux agents 2026-07-17 11:31:58 +01:00
mrhid6 f6b29062c3 feat: OS-aware agent config directory 2026-07-17 11:30:40 +01:00