Coastal Shipping 10 — Shipping Documentation & Cargo Release Manager (coast_10_release)
Decide, commercially, who may take which cargo — and keep that decision safe until the yard acts on it — document versions, release requests with checks and holds, release authorities and short-lived exclusive quantity reservations.
Its central question:
Is this consignee, for this quantity of this cargo, commercially cleared to leave the yard right now — and can the same quantity be released only once?
coast_10_release is application SHP-10 of the Coastal Shipping series (coast_NN_<name>, numbered by the pack catalogue; each able to run stand-alone or as a member of a network). It shares no tables and no foreign keys
with its siblings (for example coast_04_yard, which takes the reservations, or coast_02_manifest, whose effective cargo is the entitlement) — they link by canonical_ref strings and by messages. All data is fictional.
The spine
ReleaseRequest → ReleaseItem / ReleaseCheck / ReleaseCargoHold → ReleaseAuthority → ReleaseAuthorityItem → ReleaseReservation → (ReleaseException), with ShippingDocument versions, ReleaseEvidence and ReleaseAudit around it.
The documents
| Page | What's in it |
|---|---|
| 00 — Overview | What the app is, commercial vs physical vs confirmed release, the rules, the 15 models, the demo scenario |
| 01 — Quick Reference | Menu map, every model, status vocabularies, the messages, how to run, seed and regenerate |
| 02 — System Diagram | The data model as diagrams (+ interactive viewer) and how the app links to its siblings |
Status
Built (handlers and workflow, tested): document approve / issue / supersede / void with independent approval and immutable issued versions; request check / approve / deny / close with entitlement, no duplicate demand, fail-closed checks and holds, the authority created at approval; authority suspend / resume / revoke / expire / exhaust with a version that advances on every change; reservations (reserve, validate, consume, cancel) with the pack's arithmetic, exclusive and never freed by the clock; late or conflicting gate facts to EXCEPTION; manifest corrections that suspend unconsumed authority; versioned projections of the effective cargo and voyage; proof of delivery as evidence only; append-only checks, evidence and audit.
Scheduled (built, tested): release.sweep_expired raises one exception for each reservation that elapsed unresolved and expires elapsed authorities.
Not built yet: the tracking container hold is checked live by the yard at the gate (tracking hold events are not consumed here); the explicit port call is recorded but not yet required; live customs clearance (Stage 3); the effective-cargo event must be published by coast_02_manifest (its Stage 2 overlay).
The rules are in integration/rules.py and integration/handlers.py, with their tests under server/tests/integration_apps/.
Prototype system; draft. All names and amounts in the demo data are fictional. Prototype documents are not negotiable titles and not customs forms.