01 — Quick Reference

Group Models
Documents ShippingDocument · ShippingDocumentLine
Release Requests ReleaseRequest · ReleaseItem · ReleaseCheck · ReleaseCargoHold · ReleaseEvidence
Authority & Reservations ReleaseAuthority · ReleaseAuthorityItem · ReleaseReservation · ReleaseValidation · ReleaseException
Audit ReleaseAudit
Reference & Sources ReleaseDocumentType · ReleaseSourceSnapshot

Every model (15) — one line each

Model It records Key foreign keys
ReleaseDocumentType A document type (BL, SWB, DO, CR, MC, SI) —
ShippingDocument One version of a shipping document; issued versions are immutable and superseded by a later one ReleaseDocumentType, itself (supersedes)
ShippingDocumentLine A cargo line of a document, with the source hash ShippingDocument
ReleaseRequest A commercial release request for a consignment at a discharge port —
ReleaseItem A quantity of one manifest line (and container) to release ReleaseRequest
ReleaseCheck A check (entitlement, freight, customs ...) with outcome and validity; append-only ReleaseRequest
ReleaseCargoHold A commercial hold; an active one suspends the authority ReleaseRequest
ReleaseEvidence Evidence (ID, freight payment, POD ...) with its hash; append-only ReleaseRequest
ReleaseAuthority The authority to release: validity, version, status ReleaseRequest, ShippingDocument
ReleaseAuthorityItem The quantity authorised, reserved and consumed per item ReleaseAuthority, ReleaseItem
ReleaseReservation A short-lived exclusive reservation of a quantity for the yard ReleaseAuthorityItem
ReleaseValidation The answer to one fresh validation (VALID or the refusal code), published to the yard; append-only ReleaseReservation
ReleaseException A control exception: conflicting gate fact, unresolved expiry, stale document ReleaseRequest, ReleaseAuthority, ReleaseReservation
ReleaseAudit Who did what, append-only ReleaseRequest, ReleaseAuthority
ReleaseSourceSnapshot What other applications told us (effective cargo, voyage, call): versioned, hashed —

Vocabularies

  • ShippingDocument.status: DRAFT · APPROVED · ISSUED · SUPERSEDED · VOID
  • ReleaseRequest.status: DRAFT · CHECKING · APPROVED · DENIED · CLOSED
  • ReleaseCheck.check_type: MANIFEST_LINE · ENTITLEMENT · FREIGHT_RELEASE · CUSTOMS · QUARANTINE · HOLD_CLEARANCE · DOCUMENTARY (outcome PASSED · FAILED · NOT_APPLICABLE · PENDING)
  • ReleaseCargoHold.hold_type: DOCUMENTARY · FREIGHT · CUSTOMS · QUARANTINE · CORRECTION · URGENT · OTHER
  • ReleaseAuthority.status: ACTIVE · SUSPENDED · REVOKED · EXHAUSTED · EXPIRED
  • ReleaseReservation.status: RESERVED · COMMITTED · CANCELLED · EXPIRED · EXCEPTION
  • ReleaseException.status: OPEN · RESOLVED · REJECTED

Messages (network member)

Commands accepted (from coast_04_yard, orchestrator) release.reserve · release.validate_reservation · release.consume_reservation · release.cancel_reservation · release.sweep_expired (orchestrator)
Events published release.document_issued · release.authority_changed · release.reservation_changed (RESERVED, CANCELLED, EXPIRED, EXCEPTION, or REFUSED for a refused reserve) · release.reservation_validated (the answer to a validation) · release.reservation_consumed · release.exception_raised · release.exception_resolved
Events consumed manifest.effective_cargo · manifest.line_corrected · voyage.snapshot · voyage.portcall_snapshot · voyage.cargo_call_mapped · cartage.pod_verified · assurance.action_requested

Run, seed, regenerate

python server/run.py coast_10_release                    # http://localhost:5163
python -m codegen.cli all coast_10_release               # regenerate models, controllers and JSON after a schema change
python -m codegen.cli seed coast_10_release --reset      # reload the sample data
python -m codegen.cli integration coast_10_release       # regenerate the integration package (handlers.py is never overwritten)
python scripts/build_diagram_viewer.py coast_10_release  # rebuild the interactive diagram