Commit Graph
67 Commits
Author SHA1 Message Date
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