Govern cutover preview under cloud-paid

This commit is contained in:
rcourtman 2026-04-15 11:08:36 +01:00
parent 41ac0c1ad2
commit bbf6bb468b
2 changed files with 10 additions and 3 deletions

View file

@ -110,6 +110,10 @@ 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.
The canonical operator preview for that cutover now lives in
`pulse-pro/scripts/grandfathered_recurring_cutover_preview.py`, and it must use
the same active-at-snapshot rule as the live server before anyone sets
`PULSE_LICENSE_GRANDFATHERED_RECURRING_SNAPSHOT_AT`.
## Extension Points

View file

@ -1724,7 +1724,8 @@
"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"
"pulse-pro:scripts/bootstrap-v6-demo-preview.sh",
"pulse-pro:scripts/grandfathered_recurring_cutover_preview.py"
],
"verification": {
"allow_same_subsystem_tests": true,
@ -2333,13 +2334,15 @@
"match_files": [
"pulse-pro:license-server/grandfathering.go",
"pulse-pro:license-server/main.go",
"pulse-pro:license-server/v6_handlers.go"
"pulse-pro:license-server/v6_handlers.go",
"pulse-pro:scripts/grandfathered_recurring_cutover_preview.py"
],
"allow_same_subsystem_tests": false,
"test_prefixes": [],
"exact_files": [
"pulse-pro:license-server/grandfathering_test.go",
"pulse-pro:license-server/main_test.go"
"pulse-pro:license-server/main_test.go",
"pulse-pro:scripts/tests/test_grandfathered_recurring_cutover_preview.py"
]
},
{