Status. Proposed design only. Nothing in this vault is GGA client approval. The GGA client documents are supplied drafts: see GGA-Source-Digest. No application, service or test has been executed; every scenario is Not executed. Delivery fees and dates are open.
Step 01 · Foundation, environments and outbox contract
Goal. Repository, environments, authentication component, private storage, secrets, audit and the transactional-outbox helper that every later mutation uses.
Blueprint delivery stage: Stage 2 (Delivery-Options-Comparison).
Former 1.3 name: Foundation and outbox contract. The file name and the step number are kept as stable identifiers (as with the historical DG prefix), so existing links and the step-01 label stay valid.
Not started. This is a specification; no code has been written. The primary-step mapping is an index, not proof that each full scenario can be completed in its step: see Dependency-and-Regression-Table.
Prerequisites
None. Start conditions apply: the Blueprint says to obtain a fixed scope, estimate and support arrangement after the launch decisions are recorded (p. 19). Stage 1 (confirm and design) is a GGA approval, not a build step. Policy-independent scaffolding may start after the overall start conditions; decision-dependent behaviour and its final oracle stay blocked until the named authority decides. Proposed defaults are recommendations, never prerequisites. Blocked decisions: GL07-staged, GL02-staged, Q09, Q11.
Changes (illustrative, not a final schema)
Sources: Blueprint pages cited per item (GGA-Requirement-Register).
Build items:
- Separate development, staging and production; managed backups; private object storage; encrypted connections; secret management (pp. 11, 17)
- Mature authentication component with verified work contact and invitation expiry as ports, not a vendor (pp. 11, 17)
- Request pipeline: request ID, typed result, resource version, 401/403/404/409/422/429 convention (p. 15)
- Audit entry, outbox row and business change in one transaction; unique business key, attempts, next retry, last error (pp. 11, 15, 16)
- Error and queue monitoring hooks and a monthly cost report (p. 17); OpenAPI skeleton with examples (p. 15)
Expected outputs and invariants
Every later mutation can commit state, audit entry and outgoing event together; no environment holds real data before GGA’s data policy; no provider is required to save a profile.
Tests-first subset
Primary scenarios of this step (write these tests first): T33, T37, T38, GS30-staged.
Assertions to write first: new GGA scenarios GS30-staged. Legacy scenarios whose primary step is this one: T33, T37, T38. Each follows its replacing GS scenario; the 1.3 text is history (Scenario-Dispositions).
Method: make one meaningful test fail for the expected reason, implement the minimum behaviour, refactor without changing the observable contract. A scenario whose decision is still pending stays Blocked by that decision; no oracle is invented.
Deferred integration checks
Scenarios whose primary step is this one but whose full variants need later components:
- T33: needs step 06, 07, 09 (through GS13).
- T37: needs step 03 (through GS26).
- T38: needs step 10 (through GS30).
- GS30-staged: needs step 10. Monitoring and cost reporting are completed in 10.
Follow-up verification brought here
Scenarios (of any step) that can only be completed or rechecked once this step exists:
- None.
Decisions GGA must settle (dependent behaviour stays blocked until the named authority decides)
GL07-staged, GL02-staged, Q09, Q11
Exit evidence
Environments exist and are separated; an outbox write rolls back with its business change. Release discipline (staging, reviewed migrations, rollback) is demonstrated on a named build.
Evidence is recorded only for a named build and fixture. A software scenario is not recorded as Passed until all its relevant variants have been exercised on a named integrated build (step 11).
Navigation: this step → Step-02-Identity-Membership-Roles · Implementation-Order-Overview