UI-Focused Routers#
Routers primarily serving the web frontend (ops-db-ui).
Transfer Router#
Path: /api/transfer
Purpose: Data transfer pipeline monitoring
Key endpoints:
GET /overview- Transfer statisticsGET /raw-packages- List packages with paginationWS /ws/overview- Real-time WebSocket updatesPOST /data-transfer/{id}/reset- Reset failed transfer
Authentication: GitHub OAuth (JWT)
Example:
@router.get("/api/transfer/overview")
async def get_transfer_overview(
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
):
return {
"total_packages": db.query(RawDataPackage).count(),
"active_transfers": db.query(DataTransfer).filter(
DataTransfer.status == "active"
).count()
}
Observing Program Router#
Path: /observing_program
Purpose: Manage observation programs
Key endpoints:
GET /- List programsPOST /- Create programGET /{id}- Get program detailsPUT /{id}- Update program
Sources Router#
Path: /sources
Purpose: Astronomical source catalog queries
Key endpoints:
GET /- List/search sourcesGET /{id}/chip- Source card viewGET /{id}/details- Detailed infoPOST /resolve- Name resolution
Features:
Cone search by coordinates
Name resolution (SIMBAD/NED)
Multiple detail levels
Visibility Router#
Path: /visibility
Purpose: Source visibility calculations
Key endpoints:
GET /{source_id}- Visibility for sourceGET /heatmap- Heatmap dataPOST /precalculate- Trigger precalculation (admin)
Characteristics:
Computationally expensive
Heavily cached
Time-based queries
Next Steps#
Operations-Focused Routers - Operations-focused routers
Endpoint Categories - Full categorization