You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reconcile Sponsor CRM sandbox table ownership with CloudFormation
Status: blocked — the AWS target is confirmed sandbox-only; waiting for an authorized HUMAN to classify the existing sandbox source table and explicitly state whether any data loss is acceptable, followed by fresh Architecture/Security proportionality review
Tags: bug, infra, data, migration, testing, P1
Depends on: None — #140/#141 historical evidence remains valid context; #141 is not a blocker and must not be recollected without a newly identified exact-pair source
Blocks: #136
Next owner: authorized HUMAN data owner/operator for the Phase 0 classification record
Resume condition: one sanitized Phase 0 classification statement records either (A) real/private/unknown data or loss not accepted, or (B) independently proven fresh synthetic/disposable data with explicit total-loss acceptance; then Architecture and Security perform a fresh proportionality review before Support contact, reset design, AWS calls, repository changes, or mutation
Authoritative boundary and objective
The existing target is the live dataops-v1 application stack in the DataOps sandbox AWS account and eu-west-1. The existing Sponsor CRM table is the sandbox source table. There is no production AWS account, production stack, production cutover, or production environment in this issue. The #145/#136 migration uses the existing exact main-branch OIDC trust with no GitHub Actions environment; that identity choice does not establish ownership.
Sandbox account placement does not classify the current table contents, prove that the table is disposable, authorize data loss, or weaken ownership requirements. Until Phase 0 independently proves otherwise, the table, its items, keys, diagnostics, backups, exports, restores, and derived integrity evidence retain source-equivalent private/operational confidentiality.
#140 and #141 found one historical table-creation event but no trusted record binding its historical table identifier to the exact CloudFormation stack incarnation. Preserve that historical evidence and every existing issue comment. Do not infer ownership from account placement, a same-name ARN, current logical/physical mapping, schema, current table identifier, or missing/present tags. Do not manually create reserved aws: tags. #136 remains blocked until an exact supported ownership end state and integrity outcome are independently accepted.
This grooming authorizes no AWS call, private-evidence inspection by an agent, Support contact or disclosure, backup, export, restore, import, detach, replacement, deletion, tag, change set, deployment, migration, environment change, repository/workflow mutation, data mutation, or cleanup. Each later action requires its named gate below.
Phase 0 — HUMAN source-data and loss classification
Before selecting a remediation route, an authorized HUMAN data owner/operator must classify the current sandbox source table using authentic records and evidence retained inside the approved private boundary.
State whether the table is independently proven fresh synthetic/disposable, or contains real/private operational data, or remains unknown.
State whether complete loss of the current table and all contained records is explicitly acceptable. Silence, sandbox naming, low item count, apparent emptiness, reconstructability assumptions, or lack of recent use never counts as acceptance.
Identify privately the accountable data owner, classification authority, evidence sources, UTC decision time, evidence digest, scope, and any retention/legal/operational dependency.
Confirm whether any application, operator, workflow, stream, scheduled process, integration, backup, audit requirement, or downstream record depends on the current table.
Publish only one sanitized classification statement; do not publish item data, counts that disclose private activity, identifiers, screenshots, commands, private locations/links, credentials-adjacent details, or raw evidence.
Use one of these public forms:
Protected-data route: The existing sandbox source table contains real/private operational data, its classification remains unknown, or total loss is not explicitly accepted. Authentic classification evidence and accountable ownership are retained privately. No AWS or repository action occurred.
Reset-candidate route: The existing sandbox source table is independently proven fresh synthetic/disposable, contains no real/private operational data, has no retained dependency, and an authorized owner explicitly accepts complete loss within the recorded scope. Authentic classification and loss-acceptance evidence are retained privately. No AWS or repository action occurred.
Any ambiguity selects the protected-data route. No criterion in this issue is checked merely because the account, stack, domain, or workflow is named sandbox.
After the statement is posted, Architecture and Security must freshly review whether the evidence supports the selected route and whether the controls are proportionate. Their review approves a route for further grooming only; it does not authorize an AWS call or mutation.
Route A — protected ownership reconciliation
Route A is mandatory when data is real/private, classification is unknown, loss is not explicitly accepted, a dependency exists, or Architecture/Security do not accept the reset-candidate proof.
A1. Support guidance and read-only diagnosis
[HUMAN] Through an approved phase-scoped identity and minimum disclosure, obtain authenticated AWS Support guidance about the current sandbox table's CloudFormation association and supported repair choices.
Ask whether the supported choices are association repair, retain/detach/import of the existing table, or restore/replacement under a new physical name; identify unsupported/destructive steps, import prerequisites, and named-resource constraints.
Keep the response, source, scope, retrieval time, authenticity evidence, and digest private. Publish only a sanitized sufficiency decision.
Architecture and Security classify the guidance as sufficient, ambiguous, or requiring escalation. Ambiguity fails closed.
If Support supplies an authoritative exact historical stack↔table binding, stop and request fresh #140 Architecture/Security review. Historical route A does not become authorized automatically.
A2. Immutable baseline and recoverability
Before any ownership mutation, the private runbook must define and independently verify:
deterministic key/item integrity with stable canonical serialization, complete pagination, exact counts, duplicate/missing-key checks, and point-in-time write reconciliation;
a verified retained recovery source with exact source/time/KMS/access/retention/restore eligibility and rollback availability;
source-equivalent confidentiality, private evidence handling, retention holds, cleanup owner, and verified deletion/revocation after the hold ends.
Any backup/export action is a separately named, cost-bounded HUMAN-approved phase after Architecture, Security, Tester, and PM accept the frozen plan.
A3. Isolated rehearsal
Use only a separately approved isolated sandbox target with a unique non-live name, approved KMS/access, no production or external traffic, no integrations or uncontrolled egress, and explicit time/load/cost ceilings.
Restore/reconstruct configuration, run complete deterministic integrity checks, rehearse the selected ownership path, preview exact CloudFormation effects, prove final managed association, and exercise rollback without touching the live source table.
Abort on mismatch, replacement/delete drift, throttling risk, permission expansion, evidence leak, unaccounted writer, or unavailable rollback.
Cleanup requires separate HUMAN approval after evidence/rollback holds are cleared.
A4. Select one supported CloudFormation path
Architecture and Security select exactly one Support-backed path and reject the others:
retain/detach/import the existing table, with effective DeletionPolicy: Retain and UpdateReplacePolicy: Retain, separate removal/import operations, exact import identifiers, and no delete or fabricated reserved tags;
restore/rebuild under a unique new sandbox physical name, with complete configuration reconstruction, writer reconciliation, application cutover, rollback, and retained old table through the observation window; or
an exact association-repair procedure supplied and confirmed by AWS Support for this case, subject to the same recovery, rehearsal, integrity, preview, rollback, and approval gates.
A5. Frozen live-sandbox runbook and execution gates
The private runbook must enumerate ordered actor/action/API steps, immutable inputs, expected outputs, identity/session checks, approval provenance, exact allowed operations, waits, monitoring, load/cost/time ceilings, rollback, cleanup, and abort criteria. Publish only its sanitized digest and decision.
Fresh gates are required in this order for every named mutation phase:
Architecture accepts the selected supported path and exact ownership end state.
Tester accepts rehearsal and deterministic integrity evidence.
PM accepts scope, operator flow, impact, cost, owners, and recovery.
[HUMAN] An authorized operator approves the exact named phase and frozen runbook digest immediately before it begins.
On-Call verifies the resulting sandbox ownership/integrity state and approved CI/CD path.
Approval for one phase never authorizes another. Material drift returns to review.
Route B — separate reset candidate, never inferred
This issue does not authorize reset, deletion, replacement, recreation, or data loss.
Only when Phase 0 independently proves fresh synthetic/disposable data, an accountable owner explicitly accepts complete loss, and fresh Architecture/Security accept that proof may PM groom a separate reset implementation issue. That issue must name the exact sandbox stack/table boundary, prove no real/private data or downstream dependency, define supported CloudFormation ownership creation, identify every destructive call and resource effect, preserve least privilege/audit/redaction, include abort and rollback/reseed behavior, require Tester and PM acceptance, and place a separate digest-bound HUMAN approval immediately before each destructive phase.
If any proof fails or drifts, return to Route A. A reset route may not weaken #136's exact ownership guard, fabricate reserved tags, use a tagless exception, rename or target a production account, or treat sandbox naming as authorization.
Global access, confidentiality, audit, and freeze contract
These controls apply to classification follow-up, Support disclosure, reads, backup/export, rehearsal, ownership work, any separately groomed reset, rollback, and cleanup:
Use short-lived, uniquely attributable, phase-scoped credentials with exact account, region, resources, actor, expected principal, issuance/expiry, MFA/approval provenance, and minimum action/resource scope. Separate read and mutation sessions where practical. No shared/static credentials, broad administrator session, rehearsal access to unrelated data, or deploy-OIDC broadening.
At entry and immediately before mutation, prove principal/account/region/resource/session and frozen inputs. Reconcile exact allowed versus observed APIs/actions/resources; any extra permission, unexpected call, identity drift, or expired session aborts. Verify session expiry/revocation at exit.
Keep source data and derived artifacts private and encrypted in transit/at rest with approved KMS/access/isolation. No public/cross-account access, unintended integrations, event sources, webhooks, scheduled writers, stream consumers, production credentials, or uncontrolled egress.
Item bodies, keys, raw output, per-item hashes, identifiers, Support correspondence, screenshots, and private paths/links never enter public logs or issues. Any public digest must use a Security-reviewed disclosure-resistant construction.
Every phase uses a reviewed private audit/redaction mechanism recording UTC actor/session/action/result/state transition while suppressing sensitive output. A leak or evidence mismatch is an immediate ABORT and containment event.
Before snapshot/integrity work or mutation, enforce a technical deploy/change/write freeze and inventory all writers/mutators, including application retries, TTL, streams, schedules, async consumers, operators, workflows, event mappings, integrations, and Migrate Sponsor CRM GSIs in a protected stage-only workflow #136. Require quiescence or complete ordered capture/reconciliation through rollback. Freeze release is explicit.
Repository and workflow lifecycle
Any repository, workflow, SAM/CloudFormation, infrastructure-template, validation, or operator-facing change follows the complete PM → Software Engineer → Architecture/Security where required → Tester → PM acceptance → commit with Refs #143 → local merge/push → On-Call lifecycle. A credentialed HUMAN infrastructure apply is separate and does not replace repository review.
If the selected supported route requires no repository change, PM records an explicit no-change disposition. No Support response, private runbook, sandbox classification, or HUMAN approval retroactively authorizes an unreviewed change.
Required final verification
Phase 0 classification and loss decision are independently accepted; sandbox naming alone satisfied nothing.
The selected route has fresh Architecture and Security proportionality decisions.
CloudFormation reports the intended exact logical↔physical association and healthy resource state through read-only checks.
Canonical ownership evidence is exact; no manual reserved-tag creation or generic tagless exception exists.
Full schema/configuration and route-proportionate integrity checks pass against the accepted baseline or reset proof.
No unapproved delete, replacement, retag, permission expansion, workflow dispatch, deployment, environment change, flag enablement, migration, queue action, or cleanup occurred.
Exact sanitized operation inventory, state transitions, decisions, digests, downtime/load/cost, and PASS/FAIL/ABORT outcomes are recorded without private identifiers.
Reconcile Sponsor CRM sandbox table ownership with CloudFormation
Status: blocked — the AWS target is confirmed sandbox-only; waiting for an authorized HUMAN to classify the existing sandbox source table and explicitly state whether any data loss is acceptable, followed by fresh Architecture/Security proportionality review
Tags:
bug,infra,data,migration,testing,P1Depends on: None — #140/#141 historical evidence remains valid context; #141 is not a blocker and must not be recollected without a newly identified exact-pair source
Blocks: #136
Next owner: authorized HUMAN data owner/operator for the Phase 0 classification record
Resume condition: one sanitized Phase 0 classification statement records either (A) real/private/unknown data or loss not accepted, or (B) independently proven fresh synthetic/disposable data with explicit total-loss acceptance; then Architecture and Security perform a fresh proportionality review before Support contact, reset design, AWS calls, repository changes, or mutation
Authoritative boundary and objective
The existing target is the live
dataops-v1application stack in the DataOps sandbox AWS account andeu-west-1. The existing Sponsor CRM table is the sandbox source table. There is no production AWS account, production stack, production cutover, or production environment in this issue. The #145/#136 migration uses the existing exact main-branch OIDC trust with no GitHub Actions environment; that identity choice does not establish ownership.Sandbox account placement does not classify the current table contents, prove that the table is disposable, authorize data loss, or weaken ownership requirements. Until Phase 0 independently proves otherwise, the table, its items, keys, diagnostics, backups, exports, restores, and derived integrity evidence retain source-equivalent private/operational confidentiality.
#140 and #141 found one historical table-creation event but no trusted record binding its historical table identifier to the exact CloudFormation stack incarnation. Preserve that historical evidence and every existing issue comment. Do not infer ownership from account placement, a same-name ARN, current logical/physical mapping, schema, current table identifier, or missing/present tags. Do not manually create reserved
aws:tags. #136 remains blocked until an exact supported ownership end state and integrity outcome are independently accepted.This grooming authorizes no AWS call, private-evidence inspection by an agent, Support contact or disclosure, backup, export, restore, import, detach, replacement, deletion, tag, change set, deployment, migration, environment change, repository/workflow mutation, data mutation, or cleanup. Each later action requires its named gate below.
Phase 0 — HUMAN source-data and loss classification
Before selecting a remediation route, an authorized HUMAN data owner/operator must classify the current sandbox source table using authentic records and evidence retained inside the approved private boundary.
Use one of these public forms:
Any ambiguity selects the protected-data route. No criterion in this issue is checked merely because the account, stack, domain, or workflow is named sandbox.
After the statement is posted, Architecture and Security must freshly review whether the evidence supports the selected route and whether the controls are proportionate. Their review approves a route for further grooming only; it does not authorize an AWS call or mutation.
Route A — protected ownership reconciliation
Route A is mandatory when data is real/private, classification is unknown, loss is not explicitly accepted, a dependency exists, or Architecture/Security do not accept the reset-candidate proof.
A1. Support guidance and read-only diagnosis
If Support supplies an authoritative exact historical stack↔table binding, stop and request fresh #140 Architecture/Security review. Historical route A does not become authorized automatically.
A2. Immutable baseline and recoverability
Before any ownership mutation, the private runbook must define and independently verify:
Any backup/export action is a separately named, cost-bounded HUMAN-approved phase after Architecture, Security, Tester, and PM accept the frozen plan.
A3. Isolated rehearsal
A4. Select one supported CloudFormation path
Architecture and Security select exactly one Support-backed path and reject the others:
DeletionPolicy: RetainandUpdateReplacePolicy: Retain, separate removal/import operations, exact import identifiers, and no delete or fabricated reserved tags;A5. Frozen live-sandbox runbook and execution gates
The private runbook must enumerate ordered actor/action/API steps, immutable inputs, expected outputs, identity/session checks, approval provenance, exact allowed operations, waits, monitoring, load/cost/time ceilings, rollback, cleanup, and abort criteria. Publish only its sanitized digest and decision.
Fresh gates are required in this order for every named mutation phase:
Approval for one phase never authorizes another. Material drift returns to review.
Route B — separate reset candidate, never inferred
This issue does not authorize reset, deletion, replacement, recreation, or data loss.
Only when Phase 0 independently proves fresh synthetic/disposable data, an accountable owner explicitly accepts complete loss, and fresh Architecture/Security accept that proof may PM groom a separate reset implementation issue. That issue must name the exact sandbox stack/table boundary, prove no real/private data or downstream dependency, define supported CloudFormation ownership creation, identify every destructive call and resource effect, preserve least privilege/audit/redaction, include abort and rollback/reseed behavior, require Tester and PM acceptance, and place a separate digest-bound HUMAN approval immediately before each destructive phase.
If any proof fails or drifts, return to Route A. A reset route may not weaken #136's exact ownership guard, fabricate reserved tags, use a tagless exception, rename or target a production account, or treat sandbox naming as authorization.
Global access, confidentiality, audit, and freeze contract
These controls apply to classification follow-up, Support disclosure, reads, backup/export, rehearsal, ownership work, any separately groomed reset, rollback, and cleanup:
Repository and workflow lifecycle
Any repository, workflow, SAM/CloudFormation, infrastructure-template, validation, or operator-facing change follows the complete PM → Software Engineer → Architecture/Security where required → Tester → PM acceptance → commit with
Refs #143→ local merge/push → On-Call lifecycle. A credentialed HUMAN infrastructure apply is separate and does not replace repository review.If the selected supported route requires no repository change, PM records an explicit no-change disposition. No Support response, private runbook, sandbox classification, or HUMAN approval retroactively authorizes an unreviewed change.
Required final verification
Test scenarios
Sandbox name but unknown/private contents
Select Route A. No reset, loss acceptance, or weakened proof is inferred.
Synthetic claim lacks independent evidence or accountable loss acceptance
Fail closed to Route A. Do not groom or execute reset.
Fresh synthetic/disposable proof and explicit total-loss acceptance pass review
PM may groom a separate reset issue. This issue still authorizes no destructive action.
Support guidance is ambiguous or proposes an unsupported shortcut
Stop and escalate. Do not tag, import, replace, reset, or migrate.
Recovery/rehearsal/integrity/access evidence fails
Abort before the next action, preserve the sandbox source table and recovery evidence, and return to review.
Identity, writer inventory, operation inventory, or frozen plan drifts
Abort. Expire/revoke the session and require a fresh reviewed plan.
Out of scope
sandboxto its name.