Skip to content

Move payment reads under payments/ in docs - #1195

Merged
duynhne merged 3 commits into
mainfrom
docs/payment-canonical-paths
Oct 2, 2026
Merged

duynhne merged 3 commits into
mainfrom
docs/payment-canonical-paths

Conversation

@duynhne

@duynhne duynhne commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

What

The homelab half of the ADR-017 expand step for the two payment Backoffice reads, plus the docs clean-up the owner asked for, plus the Kind pins for that release.

Change Files
Protected reads listed at their canonical paths payments/attempts?status=open and payments/reconciliation/runs[/:id]; old paths marked deprecated aliases docs/api/payments.md, docs/api/admin.md
mockpay declared an explicit exception to the collection-noun rule (provider-shaped /charges…, /refunds, /transactions, /health): provider-API table + dated ADR-017 amendment docs/api/api.md, docs/api/payments.md, ADR-017/README.md
Retired POST /product/v1/internal/products removed; the caching section now describes the protected catalog writes and what each invalidates docs/api/product.md, docs/api/caching.md
Probes on the canonical paths: k6 A18/A22, e2e-audit A18/A22 scripts/k6/staff.js, local-stack/docs/e2e-audit.md
Kind pins: payment + mockpay 2.6.1 → 2.7.0, admin-service 0.4.2 → 0.4.3 kubernetes/apps/services/payment.yaml, mockpay.yaml, backoffice-rs.yaml
CHANGELOG (Deprecation → Services, Bugfix → Docs, Dependency → Services) CHANGELOG.md

Release gate (passed)

Full local-stack E2E release audit from scratch on payment 8f4a76a and admin 948dd21, using this branch's runbook and k6 scripts.

Phase Result
A A1–A22 (66/66 assertions), A15 drill, A13 expired | timer
k6 6 suites green
B B1–B10. The portal's dashboard and Payments tabs call payments/attempts?status=open and payments/reconciliation/runs and get 200
C C0–C22. C9 is settled by durable evidence

Direct contract checks:

  • payments/attempts?status=open → 200.
  • A missing status, or status=closed, → 400 status must be open.
  • payments/reconciliation/runs → 200, /1 → 404, /abc → 400.
  • The aliases still → 200.
  • /payments/1 is still the case view.

Playwright (admin-service): 17 passed. catalog lists real products failed because, at that moment, no DRAFT product existed on the stack. It passed on a rerun once one did. This is a pre-existing data-order dependency in that spec.

Tags: payment v2.7.0 and admin v0.4.3. Both have a signed image and a clean Trivy scan.

Verified on Kind (branch overlay, with #1194's controller 1.12 overlaid)

  • payment, mockpay and admin rolled out on the new images.
  • make e2e GATE=kind: A17–A22, K4.1–K4.8, K5.2–K5.9 and SG.1–SG.4 all PASS. A18 and A22 run on the canonical paths.
  • make validate passes.

Next: contract

These are open as drafts, to ship after this one:

payment-service v2.7.0 serves the two Backoffice reads that broke
ADR-017 under the payments collection noun:

  /payment/v1/protected/payments/attempts?status=open
  /payment/v1/protected/payments/reconciliation/runs[/:id]

docs/api lists the canonical paths and marks the old ones deprecated
aliases; the k6 staff suite and e2e-audit A18/A22 call the new paths.

Also: declare mockpay's provider routes an explicit exception to the
collection-noun rule (api.md, a payments.md table, an ADR-017
amendment), and drop the retired POST /product/v1/internal/products
from product.md and caching.md.
The wave-A release: payment serves the canonical protected paths beside
their aliases, and the Backoffice calls the canonical ones. Both passed
the full local-stack release audit from scratch.
@duynhne
duynhne marked this pull request as ready for review October 2, 2026 08:57
@duynhne
duynhne requested a review from duyhenryer as a code owner October 2, 2026 08:57
@duynhne
duynhne merged commit ba17590 into main Oct 2, 2026
7 checks passed
@duynhne
duynhne deleted the docs/payment-canonical-paths branch October 2, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant