Own pulse-pro grandfathering under cloud-paid

This commit is contained in:
rcourtman
2026-04-15 10:54:03 +01:00
parent 169c0b113a
commit 0080108fa8
2 changed files with 25 additions and 1 deletions
@@ -99,13 +99,18 @@ agreement, and cloud-specific enforcement rules.
dev build metadata, or anonymous telemetry.
4. `internal/api/payments_webhook_handlers.go` shared with `api-contracts`: commercial payment webhook handlers carry both API payload contract and cloud-paid billing boundary ownership.
5. `internal/api/public_signup_handlers.go` shared with `api-contracts`: hosted signup handlers carry both API payload contract and cloud-paid hosted provisioning boundary ownership.
That shared monitored-system presentation boundary also owns disabled
provider-connection copy. Commercial entitlement surfaces must treat canonical
zero-delta and removal-only TrueNAS or VMware previews as non-consuming or
capacity-freeing changes rather than warning users that a disabled connection
still grows monitored-system usage.
The real `pulse-pro` license-server legacy checkout issuance, recurring
renewals, manual issue, and legacy exchange flows are part of that same
cloud-paid continuity boundary as well. Those flows must resolve grandfathered
recurring continuity from explicit active pre-cutover state, not from bare
legacy plan IDs, stale historical tokens, or issue timestamps alone.
## Extension Points
1. Add or change limits through `pkg/licensing/`
@@ -1719,6 +1719,9 @@
"internal/cloudcp/stripe/provisioner.go",
"internal/hosted/provisioner.go",
"pulse-pro:.github/workflows/deploy-v6-preview-demo.yml",
"pulse-pro:license-server/grandfathering.go",
"pulse-pro:license-server/main.go",
"pulse-pro:license-server/v6_handlers.go",
"pulse-pro:scripts/audit_v6_preview_demo.sh",
"pulse-pro:scripts/audit_v6_preview_demo_browser.cjs",
"pulse-pro:scripts/bootstrap-v6-demo-preview.sh"
@@ -2323,6 +2326,22 @@
"frontend-modern/src/utils/__tests__/pricingHandoff.test.ts"
]
},
{
"id": "legacy-grandfathering-cutover",
"label": "legacy recurring grandfathering cutover proof",
"match_prefixes": [],
"match_files": [
"pulse-pro:license-server/grandfathering.go",
"pulse-pro:license-server/main.go",
"pulse-pro:license-server/v6_handlers.go"
],
"allow_same_subsystem_tests": false,
"test_prefixes": [],
"exact_files": [
"pulse-pro:license-server/grandfathering_test.go",
"pulse-pro:license-server/main_test.go"
]
},
{
"id": "public-demo-preview-operations",
"label": "public demo preview operations proof",