How spinalcom/spinal-organ-api-server works
spinal-organ-api-server is a REST API for querying and managing SpinalHub digital-twin data. Clients send requests through the Express server and registered route handlers, which expose spatial/BIM information, IoT networks and time series, analytics, workflow tickets, and organizational and user data. A separate startup path can preload graph nodes from a snapshot, while the server also supports socket access and optional monitoring. The tree and excerpts identify these subsystems; detailed wiring within unsampled route families is not asserted.
Main entry points: routes.ts Route registration · api-server.ts Express API · spinalAPIMiddleware.ts Graph middleware · snapshot Node snapshots
Components 22
API runtime
- Express API
src/api-server.ts - Route registration
src/routes/routes.ts - Graph middleware
src/spinalAPIMiddleware.ts
Twin data
- Spatial contexts
src/routes/geographicContext - BIM and scenes
src/routes/BIM - IoT networks
src/routes/IoTNetwork - Time series
src/routes/IoTNetwork/timeSeries - Graph nodes
src/routes/nodes - Attributes
src/routes/attributs
Operations
- Analytics
src/routes/analysis - Tickets and workflows
src/routes/tickets - Calendar events
src/routes/calendar - Room commands
src/routes/command
Organization and users
- Organization
src/routes/organization - Users and groups
src/routes/user
Preload and integration
- Node snapshots
src/routes/snapshot - Preload runner
src/preloadingScript/runPreloading.ts - Request activity
src/preloadingScript/requestActivity.ts - Socket service
src/lib/index.ts
Other components
- API client
- SpinalHub graph
- Monitoring service
Connections 24
- API client → Express API: sends requests
- Express API → Route registration: registers routes
- Route registration → Spatial contexts: registers handlers
- Route registration → BIM and scenes: registers handlers
- Route registration → IoT networks: registers handlers
- Route registration → Analytics: registers handlers
- Route registration → Tickets and workflows: registers handlers
- Route registration → Calendar events: registers handlers
- Route registration → Room commands: registers handlers
- Route registration → Organization: registers handlers
- Route registration → Users and groups: registers handlers
- Route registration → Node snapshots: registers handlers
- Route registration → Graph nodes: registers handlers
- Route registration → Attributes: registers handlers
- Express API → Graph middleware: uses graph access
- Spatial contexts → Graph middleware: reads graph
- IoT networks → Time series: serves series routes
- Time series → SpinalHub graph: reads and writes
- Graph middleware → SpinalHub graph: connects to graph
- Node snapshots → SpinalHub graph: enumerates loaded nodes
- Preload runner → Node snapshots: loads snapshot
- Preload runner → Request activity: waits for idle
- Express API → Socket service: starts socket service
- Express API → Monitoring service: initializes optionally