docs(products): DOC-1 export ops + TEL-3, DOC-4 serializer/round-trip (SLICE-6)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+16
-2
@@ -41,8 +41,21 @@ never file names, URLs, catalog content, or secret bytes.
|
||||
| --- | --- | --- |
|
||||
| TEL-1 `import_draft_created` | validation completes, draft stored | `storefront_id, dialect, row_count, adds, updates, unchanged, errors, unknown_columns_count, duration_ms` |
|
||||
| TEL-2 `import_run_completed` | apply transaction commits | `run_id, storefront_id, added, updated, errored, duration_ms` |
|
||||
| TEL-3 `catalog_exported` | export stream completes | `storefront_id, status_filter, product_count, duration_ms` |
|
||||
| TEL-6 `import_apply_failed` | apply transaction aborts unexpectedly | `draft_id, storefront_id, error_class` |
|
||||
|
||||
### Export (PUC-9, SLICE-6)
|
||||
|
||||
`GET /api/products/export?status=all|active|draft|archived` streams the
|
||||
storefront's catalog as a canonical-format CSV (one codec, two directions — the
|
||||
same format the importer parses). It is **read-only** (no draft, no run) and
|
||||
storefront-scoped (INV-14). An empty catalog — no products, or none matching the
|
||||
status filter — returns `409 empty_catalog`; the Products page disables the
|
||||
Export action with a note in that case. The round-trip is lossless (INV-12):
|
||||
re-importing an unmodified export previews as all-unchanged with the import
|
||||
action disabled (PUC-10). TEL-3 (`catalog_exported`) is emitted once the stream
|
||||
completes — counts and duration only, never catalog content.
|
||||
|
||||
### RB-2 — import apply failed
|
||||
|
||||
Triggered by ALR-2 (any TEL-6 event). The apply raised mid-transaction and
|
||||
@@ -94,8 +107,9 @@ gcloud beta monitoring channels list
|
||||
|
||||
### E2E browser suite
|
||||
|
||||
- Lives at `e2e/` — Playwright, Chromium, four SLICE-5 scenarios
|
||||
(preview/confirm happy path, actionable errors, file rejection, cancel).
|
||||
- Lives at `e2e/` — Playwright, Chromium, six scenarios (SLICE-5:
|
||||
preview/confirm happy path, actionable errors, file rejection, cancel;
|
||||
SLICE-6: `e2e_export_download`, `e2e_roundtrip_noop`).
|
||||
- Run with `bash scripts/e2e.sh`. The harness boots a **fresh `ecomm_e2e`
|
||||
database** against the local compose Postgres and serves the built SPA from
|
||||
the backend on **:8765** (the deployed topology), so it needs the dev
|
||||
|
||||
Reference in New Issue
Block a user