feat: phase b - retail documents, outbound pipeline, transports, ack monitor, demo #7

Merged
KofTwentyTwo merged 4 commits from feature/phase-b-retail-outbound into develop 2026-10-14 12:09:36 +00:00
4 Commits
Author SHA1 Message Date
james.maesandClaude Opus 5.5 fece01d7df fix: widget serialization, labels and a readable app home
- Keep runtime services (clock, resolvers, suppliers, stores) out of
  EdiQBitConfig JSON: every child-record-list widget returned 500 because
  the qbit config was serialized into widget responses.
- Title Case table labels, plural child-list labels, acronym-correct
  field labels, PVS on every edi_ foreign key, meaningful record labels
  (no PHI), operator-first field order, newest-first activity lists.
- Home: six focused statistics; exception queue, overdue acks and recent
  errors as narrow tables with partner names and humanized ages; volume
  by partner and named document with totals; one compact System table.
  No inner horizontal scroll at 390 px.
- Tests for config serialization, every widget over core rendering and
  HTTP, labels, ordering and home formatting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:08:09 -05:00
james.maesandClaude Opus 5.5 2915f47740 feat: phase b - retail documents, outbound pipeline, transports, ack monitor
- Baseline guides and sample maps for 855, 856, 810, 846, 860 (004010
  and 005010); outbound map engine with SEQUENCE and HL numbering.
- Outbound triggers (record-change transactional outbox, ESB enqueue
  process, opt-in Send As EDI), outbound worker (map, validate, batch,
  envelope, store) and send worker with retry, backoff and dead letter.
- Transport plugin SPI and registry; SFTP push and poll (streamed, host
  key pinned), file-gateway OUTBOX through the agreed facade stand-in,
  HTTPS out (basic, bearer, HMAC) and the /qqq/hooks/edi/https receiver.
- Overdue-ack and certificate-expiry monitor via QAlerts; Resend, Resend
  As New and Cancel actions; outbound queue statistics on the home.
- Test-scope demo server with a realistic synthetic seed (docs/DEMO.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:14:08 -05:00
james.maesandClaude Opus 5.5 49bc88ba3d feat: phase a2 - inbound vertical slice
- Durable edi_inbox with InboundSink intake, claimed scheduled worker,
  backoff, stale-claim reclaim and dead letter.
- Routing by ISA identities and usage, duplicate handling, per-ST
  transactions, validation errors, 997/999/TA1 queued as outbound
  messages with allocated control numbers, inbound ack reconciliation
  with QAlerts raise/resolve.
- Versioned data-driven maps (edi_map, rules, samples), EDI/QQQ paths,
  transforms, and apply through Insert/UpdateAction as a host-supplied
  service session with enforcement on.
- qbit-file-gateway consumer "edi" against a marked stand-in of the
  agreed api; optional object-storage payload store (api package only).
- EDI app with Activity/Setup nav and a typed-widget home; record actions
  (Reprocess, Preview Map, Assign/Ignore/Resolve, Create Partner
  Override, Activate Guide, Activate Map) with standard Review/Result.
- Contingent partner-scoped possible-value filters with tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:23:53 -05:00
james.maesandClaude Opus 5.5 b35d0440dd feat: phase a1 - EDI data model, X12 parsing, guide validation, acks
- 21 edi_ tables (partners, identities, agreements, agreement documents,
  control numbers, transports, certificates, guides, code lists,
  interchanges, groups, documents, errors, events, exceptions, inbox,
  payloads) with record screens, PVS, joins and child lists.
- StAEDI-based streaming X12 envelope reader (multi-interchange,
  separators, envelope findings with TA1/AK9/AK5 codes) and writer.
- Implementation guides as data: JSON baseline guides (850 004010/005010,
  997, 999), loader with revisions, structural validator and rule
  language for situational rules, SNIP 1-2.
- TA1, 997 and 999 builders at each ack level; inbound ack reader.
- Atomic control-number allocation and duplicate detection.
- AES-256-GCM envelope-encrypted database payload store with rotation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:31:14 -05:00