Skip to main content

Module reconcile_handler

Module reconcile_handler 

Source
Expand description

Reconciliation verb HTTP surface — hand-authored (NOT generated).

Three routes over the ReconcileWriteService pool verbs:

  • POST /accounting/reconcile — create (or grow) a debit↔credit edge
  • POST /accounting/unreconcile/:partial_id — the side-effecting unlink (reverses generated moves, repairs flags/groups)
  • GET /accounting/reconciliation-groups/:line_id — the matching-group read

The graph tables themselves expose NO CRUD routes anywhere (enabled: false + guarded_routes mounts none) — this file IS the only write surface. Hosts mount the auth-protected variants; the accountant role gate on unlink is a HOST concern (module-level default-deny is the composition’s job — see the ADR).

This file is user-owned (see metaphor.codegen.yaml) and survives regeneration.

Tenancy (ADR-0029): the company_id each request carries is the legacy twin — the wire shapes keep it so unstripped callers compile and run unchanged; the module keys no statement on it and the composing service’s tenancy decorator scopes every statement.

Structs§

CompanyQuery
MatchingGroupDto
ReconcileEdgeAckDto
ReconcileErrorDto
ReconcileLineDto
ReconcilePairRequestDto
ResidualDto
UnreconcileBody

Functions§

create_reconcile_verb_routes
The reconciliation verb routes (unauthenticated variant — for tests and trusted internal hosts; hosts with an auth middleware wrap these handlers with their own layers and principal-derived actor).