How nasa-across/across-server works
NASA ACROSS Server exposes REST APIs for science situational-awareness resources and tools. A client request enters the FastAPI application and versioned API; authentication and authorization protect applicable operations, whose services implement domain behavior and access persisted records. The domain spans observatory/telescope/instrument resources, observation requests and schedules, observations, broker alerts/events, and SSA utilities, alongside user and group access management. The README documents the router–auth–service–data layering; sampled source confirms application setup, database initialization, and selected service behavior. Unsampled subsystem links are limited to documented architecture and the file tree.
Main entry points: v1 Version 1 API · database.py DB sessions · main.py FastAPI app · auth Token authentication
Components 20
API entry
- FastAPI app
across_server/main.py - Version 1 API
across_server/routes/v1
Identity access
- Token authentication
across_server/auth - Role permissions
across_server/auth/strategies.py
Science operations
- Observatory catalog
across_server/routes/v1/observatory - Telescope instruments
across_server/routes/v1/telescope - Observation requests
across_server/routes/v1/observation_request - Schedules
across_server/routes/v1/schedule - Observations
across_server/routes/v1/observation - Broker alerts events
across_server/routes/v1/broker_alert - SSA tools
across_server/routes/v1/tools
Accounts administration
- User accounts
across_server/routes/v1/user - Groups and roles
across_server/routes/v1/group - Service accounts
across_server/routes/v1/system_service_account
Shared infrastructure
- DB sessions
across_server/db/database.py - SQLAlchemy models
across_server/db/models.py - Relational database
- Email delivery
across_server/util/email/service.py
Other components
- API client
- AWS SES
Connections 28
- API client → FastAPI app: sends request
- FastAPI app → Version 1 API: mounts API
- FastAPI app → DB sessions: initializes
- Version 1 API → Token authentication: authenticates
- Version 1 API → Role permissions: checks access
- Version 1 API → Observatory catalog: dispatches
- Version 1 API → Telescope instruments: dispatches
- Version 1 API → Observation requests: dispatches
- Version 1 API → Schedules: dispatches
- Version 1 API → Observations: dispatches
- Version 1 API → Broker alerts events: dispatches
- Version 1 API → SSA tools: dispatches
- Version 1 API → User accounts: dispatches
- Version 1 API → Groups and roles: dispatches
- Version 1 API → Service accounts: dispatches
- Token authentication → DB sessions: queries
- Observatory catalog → DB sessions: queries
- Telescope instruments → DB sessions: queries
- Observation requests → DB sessions: reads and writes
- Schedules → DB sessions: reads and writes
- Observations → DB sessions: queries
- Broker alerts events → DB sessions: reads and writes
- User accounts → DB sessions: uses services
- Groups and roles → DB sessions: uses services
- Service accounts → DB sessions: uses services
- DB sessions → SQLAlchemy models: queries
- SQLAlchemy models → Relational database: maps records
- Email delivery → AWS SES: sends email