From 3e6ad3908c379521684a84bb393ee788be9453a6 Mon Sep 17 00:00:00 2001 From: sdarbinyan Date: Thu, 27 Aug 2026 04:24:29 +0400 Subject: [PATCH] chore(barry): record checkout security/idempotency facts --- docs/context/features/platform-vision/FACTS.jsonl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/context/features/platform-vision/FACTS.jsonl b/docs/context/features/platform-vision/FACTS.jsonl index 600e446..38d1a55 100644 --- a/docs/context/features/platform-vision/FACTS.jsonl +++ b/docs/context/features/platform-vision/FACTS.jsonl @@ -13,3 +13,5 @@ {"id":"PV-20260818T104500Z-a6f7","subject":"checkout-payment-methods","predicate":"already-support","object":"both qr and card end to end in src/app/pages/cart/cart.component.ts (separate create paths and separate status pollers); card is not an outstanding gap","src":["src/app/pages/cart/cart.component.ts","src/app/services/api.service.ts"],"status":"active","kind":"implemented","updated_at":"2026-08-18T10:45:00Z","confidence":"high","tags":["payments","frontend"]} {"id":"PV-20260820T095500Z-b17e","subject":"tenant-api-routing","predicate":"is-decided-to-use","object":"one runtime-derived API origin per base domain; example.com and store1.example.com both map to api.example.com for bootstrap, auth, legacy, and versioned endpoints","src":["docs/context/adrs/ADR-0005-share-api-host-across-storefront-subdomains.md","src/app/core/config/api-config.service.ts"],"status":"active","kind":"decision","updated_at":"2026-08-20T16:00:00Z","confidence":"high","tags":["architecture","multi-tenant","api","routing","dns"]} {"id":"AUTH-20260827T000509Z-69a3","subject":"admin login/password form","predicate":"calls","object":"POST /api/identity/v1/session (not yet live; generic error on any failure)","src":["src/app/components/telegram-login/telegram-login.component.ts","docs/backend/BACKEND-INTEGRATION.md"],"status":"active","kind":"implemented","updated_at":"2026-08-27T00:05:09.874Z","confidence":"high"} +{"id":"CHECKOUT-20260827T002412Z-ef59","subject":"bank redirect popup","predicate":"validates","object":"https-only before trust-bypass render; non-https shows visible payment error (FH-1.2 partial)","src":["src/app/pages/cart/cart.component.ts","docs/FORK-HARVEST-TODO.md"],"status":"active","kind":"implemented","updated_at":"2026-08-27T00:24:12.765Z","confidence":"high"} +{"id":"CHECKOUT-20260827T002416Z-6261","subject":"payment creation","predicate":"sends","object":"one crypto.randomUUID() idempotency key per checkout attempt via metadata.idempotencyKey, stable across retryPayment() (FH-1.4 frontend half)","src":["src/app/pages/cart/cart.component.ts","docs/FORK-HARVEST-TODO.md"],"status":"active","kind":"implemented","updated_at":"2026-08-27T00:24:16.403Z","confidence":"high"}