# UI-Focused Routers Routers primarily serving the web frontend (ops-db-ui). ```{contents} Table of Contents :depth: 2 :local: true ``` ## Transfer Router **Path**: `/api/transfer` **Purpose**: Data transfer pipeline monitoring **Key endpoints**: - `GET /overview` - Transfer statistics - `GET /raw-packages` - List packages with pagination - `WS /ws/overview` - Real-time WebSocket updates - `POST /data-transfer/{id}/reset` - Reset failed transfer **Authentication**: GitHub OAuth (JWT) **Example**: ```python @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 programs - `POST /` - Create program - `GET /{id}` - Get program details - `PUT /{id}` - Update program ## Sources Router **Path**: `/sources` **Purpose**: Astronomical source catalog queries **Key endpoints**: - `GET /` - List/search sources - `GET /{id}/chip` - Source card view - `GET /{id}/details` - Detailed info - `POST /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 source - `GET /heatmap` - Heatmap data - `POST /precalculate` - Trigger precalculation (admin) **Characteristics**: - Computationally expensive - Heavily cached - Time-based queries ## Next Steps - {doc}`operations-routers` - Operations-focused routers - {doc}`../../architecture/endpoint-categories` - Full categorization