How defra/waste-movement-backend works
This is an internal DEFRA Digital Waste Tracking backend: the external API calls it to persist waste receipt movements, while this service stores current records and audit history in MongoDB. Its runtime surface includes versioned movement, collection, delivery and receipt routes; bulk operations; organization and payload validation; and production-approval scenarios. The graph preserves those documented and indexed capabilities. Some service implementations were not excerpted, so their internal calls are omitted where the available evidence does not establish them.
Main entry points: services Movement services · router.js Route registry · routes Movement endpoints · create-bulk-receipt-movement.js Bulk create
Components 18
Runtime and routing
- Backend server
src/server.js - Route registry
src/plugins/router.js
Movement workflows
- Versioned journeys
src/routes - Movement endpoints
src/routes - Bulk create
src/routes/create-bulk-receipt-movement.js - Bulk update
src/routes/update-bulk-receipt-movement.js - Movement services
src/services - MongoDB
- Movement history
src/services/movement-update.js
Delivery workflows
- Record delivery
src/routes/beta-2/record-delivery.js - Delivery persistence
src/services/delivery.js - Tracking ID service
Validation and approval
- Request schemas
src/schemas - Schema validation
src/schemas/validate/hapi-validator.js - Organization validation
src/common/helpers - Approval endpoints
src/routes/production-approval-tests.js - Approval scenarios
src/services/production-approval-tests
Other components
- External API
Connections 21
- External API → Backend server: calls internally
README.md - Backend server → Route registry: registers routes
src/server.js - Route registry → Versioned journeys: registers journeys
src/plugins/router.js - Route registry → Movement endpoints: registers endpoints
src/plugins/router.js - Movement endpoints → Movement services: delegates operations
src/routes/beta-1/record-delivery.js - Bulk create → Movement services: creates movements
src/routes/create-bulk-receipt-movement.js - Bulk update → Movement services: updates movements
src/routes/update-bulk-receipt-movement.js - Movement services → MongoDB: persists movements
README.md - Movement services → Movement history: maintains history
README.md - Movement history → MongoDB: stores audit trail
README.md - Record delivery → Delivery persistence: records deliveries
src/routes/beta-2/record-delivery.js - Delivery persistence → MongoDB: writes records
src/services/delivery.js - Record delivery → Movement services: loads movements
src/routes/beta-2/record-delivery.js - Movement services → Tracking ID service: requests identifiers
- Movement endpoints → Schema validation: validates requests
src/routes/beta-2/record-delivery.js - Bulk create → Request schemas: uses bulk schema
src/routes/create-bulk-receipt-movement.js - Schema validation → Request schemas: checks schemas
src/schemas/validate/hapi-validator.js - Movement endpoints → Organization validation: resolves organization
src/routes/beta-2/record-delivery.js - Bulk update → Organization validation: checks organization
src/routes/update-bulk-receipt-movement.js - Route registry → Approval endpoints: registers approval routes
src/plugins/router.js - Approval endpoints → Approval scenarios: runs scenarios
src/routes/production-approval-tests.js