- Add Prometheus metrics for marketplace API throughput and error rates with new dashboard panels - Implement confidential transaction models with encryption support and access control - Add key management system with registration, rotation, and audit logging - Create services and registry routers for service discovery and management - Integrate ZK proof generation for privacy-preserving receipts - Add metrics instru
265 lines
6.4 KiB
JSON
265 lines
6.4 KiB
JSON
{
|
|
"name": "API Compliance Tests",
|
|
"level": "bronze",
|
|
"description": "Tests for core API compliance",
|
|
"tests": [
|
|
{
|
|
"id": "BR-001",
|
|
"name": "Health Check Endpoint",
|
|
"description": "Validate health check endpoint returns proper response",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/health",
|
|
"headers": {
|
|
"Accept": "application/json"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 200,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"status": "healthy",
|
|
"timestamp": "string",
|
|
"version": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-002",
|
|
"name": "Authentication - Bearer Token",
|
|
"description": "Validate bearer token authentication",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/v1/user/profile",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token",
|
|
"Accept": "application/json"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 200,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"id": "string",
|
|
"email": "string",
|
|
"created_at": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-003",
|
|
"name": "Authentication - Invalid Token",
|
|
"description": "Validate proper error for invalid token",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/v1/user/profile",
|
|
"headers": {
|
|
"Authorization": "Bearer invalid-token",
|
|
"Accept": "application/json"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 401,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"error": "AuthenticationError",
|
|
"message": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-004",
|
|
"name": "Create Job - Valid Request",
|
|
"description": "Validate job creation with valid parameters",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/v1/jobs",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token",
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"service_type": "gpu_compute",
|
|
"spec": {
|
|
"gpu_type": "A100",
|
|
"count": 1,
|
|
"duration": 3600
|
|
},
|
|
"metadata": {
|
|
"name": "test-job"
|
|
}
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 201,
|
|
"headers": {
|
|
"Content-Type": "application/json",
|
|
"Location": "string"
|
|
},
|
|
"body": {
|
|
"id": "string",
|
|
"status": "pending",
|
|
"created_at": "string",
|
|
"estimated_completion": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-005",
|
|
"name": "Create Job - Invalid Parameters",
|
|
"description": "Validate proper error for invalid job parameters",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/v1/jobs",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token",
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"service_type": "invalid_service",
|
|
"spec": {}
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 400,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"error": "ValidationError",
|
|
"message": "string",
|
|
"details": {
|
|
"field": "service_type",
|
|
"issue": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-006",
|
|
"name": "Get Job - Valid ID",
|
|
"description": "Validate job retrieval with valid ID",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/v1/jobs/job-123",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token",
|
|
"Accept": "application/json"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 200,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"id": "string",
|
|
"status": "string",
|
|
"created_at": "string",
|
|
"updated_at": "string",
|
|
"spec": "object",
|
|
"result": "object|null"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-007",
|
|
"name": "Get Job - Not Found",
|
|
"description": "Validate proper error for non-existent job",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/v1/jobs/nonexistent",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token",
|
|
"Accept": "application/json"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 404,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"error": "NotFoundError",
|
|
"message": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-008",
|
|
"name": "List Jobs - With Pagination",
|
|
"description": "Validate job listing with pagination",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/v1/jobs?limit=10&offset=0",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token",
|
|
"Accept": "application/json"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 200,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"jobs": "array",
|
|
"total": "number",
|
|
"limit": "number",
|
|
"offset": "number",
|
|
"has_more": "boolean"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-009",
|
|
"name": "Error Response Format",
|
|
"description": "Validate consistent error response format",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/v1/invalid-endpoint",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 404,
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"error": "string",
|
|
"message": "string",
|
|
"request_id": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "BR-010",
|
|
"name": "Rate Limit Headers",
|
|
"description": "Validate rate limit headers are present",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/v1/jobs",
|
|
"headers": {
|
|
"Authorization": "Bearer valid-token"
|
|
}
|
|
},
|
|
"expected": {
|
|
"status": 200,
|
|
"headers": {
|
|
"X-RateLimit-Limit": "string",
|
|
"X-RateLimit-Remaining": "string",
|
|
"X-RateLimit-Reset": "string"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|