Commit graph

1119 commits

Author SHA1 Message Date
rcourtman
edae6d1edc refactor: split alert config and callbacks
Extract alert config types, normalization, and identity helpers into internal/alerts/config while preserving the existing alerts package API through aliases and wrappers.

Move Manager callback lifecycle state into a same-package callbackBus, keeping public Set/Subscribe methods unchanged.

Harden metrics SQLite artifacts to owner-only permissions and cover permissive umask behavior.

Proof: go test -json ./internal/api -count=1; go test ./internal/alerts/... ./internal/monitoring ./internal/ai/... ./internal/websocket ./internal/config ./pkg/metrics; go test ./internal/alerts/... ./pkg/metrics
2026-05-06 13:01:32 +01:00
rcourtman
d6ca8b12e6 Add agentless availability targets
Refs #1460
2026-05-06 10:35:34 +01:00
rcourtman
30180727ad Harden Proxmox setup token ACLs 2026-05-05 14:19:50 +01:00
rcourtman
81b31e4d3b Remove monitored-system volume caps
Retire runtime/API/UI monitored-system volume enforcement now that infrastructure monitoring is no longer capped.

Keep only legacy metadata scrubbing and purchase-start compatibility for old max_monitored_systems references.

Rename the remaining preview surface to monitored-system impact and make previews explanatory rather than save-blocking.

Update subsystem contracts and RA7 evidence for the caps-retired invariant.
2026-05-05 12:59:59 +01:00
rcourtman
fed3b776e0 Fail closed on ambiguous email principal resolution 2026-05-05 09:26:10 +01:00
rcourtman
d91c2afedb Fail closed dry-run action execution 2026-05-05 09:22:04 +01:00
rcourtman
53a928ee2d Prevent contact-email principal takeover 2026-05-05 09:19:29 +01:00
rcourtman
04fb02defc Use stable principals in Stripe webhook fixtures 2026-05-05 09:10:44 +01:00
rcourtman
df14e5d356 Pin strict organization identity invariants 2026-05-05 09:06:01 +01:00
rcourtman
82a2494ffa Add action execution safety contract 2026-05-04 23:19:58 +01:00
rcourtman
ea0b20cd19 Use strict org principals for runtime access 2026-05-04 23:16:15 +01:00
rcourtman
002d68cef7 Require stored principal for checkout magic links 2026-05-04 23:06:47 +01:00
rcourtman
2040285085 Add action decision API 2026-05-04 22:56:55 +01:00
rcourtman
7af1276c3b Fail closed on blank magic-link principals 2026-05-04 22:43:35 +01:00
rcourtman
9cddb49dd5 Fail closed on hosted handoff identity 2026-05-04 09:47:54 +01:00
rcourtman
fdb9ad17f6 Use stable hosted signup owner ids 2026-05-04 09:33:19 +01:00
rcourtman
9291ee2999 Persist action plans in audit trail 2026-05-04 09:30:57 +01:00
rcourtman
e3c1dad256 Hide public demo admin reads 2026-05-04 09:14:09 +01:00
rcourtman
3953554ae1 Bind owner identity across token minting 2026-05-04 00:50:14 +01:00
rcourtman
c874da9ab8 Reserve API token owner metadata 2026-05-04 00:30:09 +01:00
rcourtman
2c96242487 Use stable SSO principals
Derive OIDC and SAML browser-session principals from provider-scoped subjects instead of mutable username or email claims.

Preserve compatibility by migrating legacy username/email RBAC assignments to the stable SSO principal when no authoritative group mapping is present, and pin the invariant in API/security contracts.
2026-05-04 00:16:31 +01:00
rcourtman
7829c3e6ed Pin hosted identity invariants
Resolve hosted magic-link verification through current organization membership so sessions bind to the stored stable user principal instead of token email.

Add the v6 identity invariant contract and static guards covering hosted handoff, checkout, provisioning, and magic-link boundaries.
2026-05-03 23:58:08 +01:00
rcourtman
b11f57ed62 Add API-first action planning endpoint 2026-05-03 23:51:54 +01:00
rcourtman
3e497ecb70 Harden hosted tenant identity keys
Use stable control-plane user IDs as hosted tenant organization principals while preserving email as contact metadata and legacy fallback. Cloud handoff sessions now bind to the signed subject instead of email, seeded tenant orgs store owner/member email separately from durable user IDs, and the subsystem contracts pin that boundary.
2026-05-03 23:28:26 +01:00
rcourtman
83f6296c94 Audit SSO entitlement and provider settings
Align internal license bridge tests with Community-tier SSO, harden SAML login method handling, and expose OIDC groups-claim configuration for provider restrictions and role mapping.

Refs #1449
2026-05-03 13:19:51 +01:00
rcourtman
82c54cc39b Make self-hosted SSO Community-tier
Treat OIDC, SAML, and multi-provider SSO as included Community capabilities while retaining advanced_sso as a compatibility key. Remove SAML-specific paywalls and paid-upgrade copy from runtime, settings UI, entitlement snapshots, docs, journey proof, and subsystem contracts.

Refs #1449
2026-05-03 12:48:01 +01:00
rcourtman
21e5e7fd01 Fix bootstrap token logger race 2026-05-03 12:25:56 +01:00
rcourtman
a3617b923a Fix remaining RC3 backend CI races 2026-05-01 22:03:22 +01:00
rcourtman
53838d8f93 Fix RC3 backend release blockers 2026-05-01 21:36:28 +01:00
rcourtman
67f2ce5dc2 Preserve PVE authorized_keys symlinks in setup scripts
Refs #1297
2026-05-01 20:28:11 +01:00
rcourtman
0273ab8456 Resolve RC3 issue follow-up candidates
Preserve the most severe Proxmox connection member state so offline members roll up correctly.

Move history-chart tooltips beside the hovered point when space allows and resolve PBS metric alerts against PBS thresholds during config reevaluation.

Refs #1441

Refs #1452

Refs https://github.com/rcourtman/Pulse/discussions/1448
2026-05-01 20:28:11 +01:00
rcourtman
85e0de271b Gate relay mobile tokens behind Relay license 2026-04-30 12:53:29 +01:00
rcourtman
f67f877f95 Clamp AI control settings to entitlements 2026-04-30 12:38:17 +01:00
rcourtman
99129d0c09 Retire product upgrade metrics runtime
Remove local upgrade-metrics API registration, settings payload wiring, startup store migration, and backend conversion recorder hooks from the normal product runtime.

Delete the retired conversion/funnel and metering packages from compiled licensing code, and extend diagnostics boundary audits and governance contracts so maintainer commercial analytics cannot return through Settings or diagnostics.
2026-04-30 12:24:22 +01:00
rcourtman
daf825dee6 Remove customer commercial analytics wrappers 2026-04-30 11:46:16 +01:00
rcourtman
0bbba3b818 Restrict commercial metrics reporting access 2026-04-30 10:00:35 +01:00
rcourtman
c6bcad255a Remove internal analytics from diagnostics 2026-04-30 09:23:40 +01:00
rcourtman
5e8619eb58 Canonicalize Docker Podman management API copy 2026-04-30 09:13:04 +01:00
rcourtman
e79764a0fd Canonicalize Docker Podman diagnostics copy 2026-04-30 00:27:10 +01:00
rcourtman
05ccfe6656 Prove legacy Pro migrations keep v6 entitlements 2026-04-29 20:17:59 +01:00
rcourtman
c743a231b8 Retire dashboard landing surface 2026-04-29 16:25:09 +01:00
rcourtman
cc470635b9 Surface resource relationship map 2026-04-29 15:30:12 +01:00
rcourtman
48c8d26198 Add paid feature claim proof bundle 2026-04-29 14:18:43 +01:00
rcourtman
e16f15b398 Make Relay history entitlement enforceable 2026-04-29 13:15:21 +01:00
rcourtman
5f0078b0d0 Keep synthetic modes out of entitlement payloads 2026-04-29 00:33:53 +01:00
rcourtman
a67845ada0 Retire self-hosted volume caps 2026-04-28 20:36:37 +01:00
rcourtman
c197f6a7a5 Move license test signers to testsupport 2026-04-28 19:12:21 +01:00
rcourtman
1d189d3343 Clarify hosted entitlement signing compatibility 2026-04-28 18:47:19 +01:00
rcourtman
2b1d82d965 Retire self-hosted trial posture prompts 2026-04-28 17:39:09 +01:00
rcourtman
cc26f59f01 Retire self-hosted trial activation callback 2026-04-28 16:36:09 +01:00