Goal
Approved requests go through the ERP port to the mock (contracts/erp-export.openapi.yaml) with an idempotency key; a request can never be exported twice.
Acceptance criteria
Not part of this task
- Real ERP mapping, file-based export
Affected areas
src/features/export/
src/features/erp-mock/
contracts/erp-export.openapi.yaml
Test plan
| Criterion |
Check |
| exactly once |
integration test with injected failures and duplicate delivery |
| contract |
contract test against the OpenAPI schema |
Security/Privacy affected?
Outbound data contains personal contact data – synthetic only; no payloads in logs.
Epic: #2 · Architecture: docs/decisions/ADR-0001-pilot-architecture.md
Goal
Approved requests go through the ERP port to the mock (
contracts/erp-export.openapi.yaml) with an idempotency key; a request can never be exported twice.Acceptance criteria
unique(request_id); transition APPROVED → EXPORTED under a row lockERP_MOCK_ENABLED=trueNot part of this task
Affected areas
src/features/export/src/features/erp-mock/contracts/erp-export.openapi.yamlTest plan
Security/Privacy affected?
Outbound data contains personal contact data – synthetic only; no payloads in logs.
Epic: #2 · Architecture:
docs/decisions/ADR-0001-pilot-architecture.md