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