Entry point for 3D operations — ingest, delete, update, publish/unpublish. It validates incoming requests (light & fast) and triggers the corresponding Jobnik jobs. Successor to the legacy 3d-gateway (and, in the near future, store-trigger).
Epic: MAPCO-11833 · Design: 3D Ingestion High level architecture · See docs/PRD.md
| Endpoint | Method | Summary |
|---|---|---|
/record |
POST | Start an ingestion flow (validate, create Jobnik ingestion job) |
/record/{id} |
DELETE | Validate deletability, create Jobnik delete job |
/record/{id} |
PATCH | Update metadata for a record |
/record/status/{id} |
PATCH | Publish / unpublish a record |
Full OpenAPI spec: openapi3.yaml. Regenerate types on spec change with npm run generate:openapi-types.
- Node.js ≥ 24 (required by
@map-colonies/jobnik-sdk). Use the pinned version vianvm use.
npm installDuring development this service consumes
@map-colonies/3d-shared(and, later, mc-models v2) via localfile:links until those packages are published to npm.
npm run start # build + run
npm run start:dev # offline config + source mapsnpm run test # all
npm run test:unit # unit only
npm run test:integration # integration only- eslint / prettier via
@map-colonies/eslint-configand@map-colonies/prettier-config - vitest for tests
- OpenAPI request validation at the middleware layer
- config via node-config
- tracing & metrics via
@map-colonies/telemetry