Epic: PingSpider MVP - Distributed Uptime & Latency Monitor
Sprint: 0
Story Points: 5
Description
Implement REST API endpoints for creating, reading, updating, and deleting monitoring endpoints.
Acceptance Criteria
Request/Response Models
Create Endpoint Request
{
"name": "My API",
"url": "https://api.example.com/health",
"check_interval": 60,
"headers": {"Authorization": "Bearer token"},
"expected_status_code": 200,
"content_keyword": "healthy"
}
Endpoint Response
{
"id": "endpoint:xyz",
"name": "My API",
"url": "https://api.example.com/health",
"status": "up",
"last_check": "2025-12-07T12:00:00Z",
"uptime_percentage": 99.9
}
Technical Notes
- Use Axum extractors (Json, Path, State)
- Validate URL format using
url crate
- Check interval min: 30s, max: 3600s
- Store headers as JSON in SurrealDB
Dependencies
- Add
url crate for validation
- Add
validator crate for input validation
Files to Create/Modify
src/rts/endpoints.rs
src/monitoring/validation.rs
src/lib.rs (register routes)
Definition of Done
- All CRUD endpoints implemented
- Input validation works correctly
- Error responses follow consistent format
- Manual API testing completed
- Code reviewed and merged to main
Epic: PingSpider MVP - Distributed Uptime & Latency Monitor
Sprint: 0
Story Points: 5
Description
Implement REST API endpoints for creating, reading, updating, and deleting monitoring endpoints.
Acceptance Criteria
POST /api/endpoints- Create new monitoring endpointGET /api/endpoints- List all monitoring endpointsGET /api/endpoints/{id}- Get specific endpoint detailsPUT /api/endpoints/{id}- Update endpoint configurationDELETE /api/endpoints/{id}- Remove endpoint from monitoringRequest/Response Models
Create Endpoint Request
{ "name": "My API", "url": "https://api.example.com/health", "check_interval": 60, "headers": {"Authorization": "Bearer token"}, "expected_status_code": 200, "content_keyword": "healthy" }Endpoint Response
{ "id": "endpoint:xyz", "name": "My API", "url": "https://api.example.com/health", "status": "up", "last_check": "2025-12-07T12:00:00Z", "uptime_percentage": 99.9 }Technical Notes
urlcrateDependencies
urlcrate for validationvalidatorcrate for input validationFiles to Create/Modify
src/rts/endpoints.rssrc/monitoring/validation.rssrc/lib.rs(register routes)Definition of Done