4.6 KiB
4.6 KiB
Plan Detail
Step 0: Define the service contract and project architecture for the FastAPI endpoint monitoring service.
- Capability: Specify a FastAPI service design covering monitor resources, CRUD and on-demand check routes, status semantics, in-memory lifecycle, error responses, redacted structured logging, and project structure.
- Plan label: gap
- Reusable capability: False
- Rationale: This specification is specific to the requested service and belongs to its deliverable repository rather than being a standalone registry capability.
- Input schema:
{'goal': 'string', 'constraints': 'object'} - Output schema:
{'service_design': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)
Step 1: Implement the typed monitor CRUD API and concurrency-safe in-memory state according to the service design.
- Capability: Build typed FastAPI CRUD operations for endpoint monitors with concurrency-safe process-local in-memory storage and no authentication.
- Plan label: gap
- Reusable capability: False
- Rationale: This is core implementation content for this one service, not an independently reusable agent or tool.
- Input schema:
{'service_design': 'object'} - Output schema:
{'service_workspace': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)
Step 2: Implement secure on-demand endpoint checks with status updates, latency measurement, robust error handling, and redacted structured logs.
- Capability: Build an HTTP status checker invoked by REST, with bounded timeouts, SSRF defenses across DNS resolution and redirects, latency measurement, atomic current-status updates, robust error mapping, and structured logs with URL query data redacted.
- Plan label: gap
- Reusable capability: False
- Rationale: The checker and its security behavior are integral to the requested application; they should remain clustered with the service deliverable.
- Input schema:
{'service_workspace': 'object'} - Output schema:
{'service_workspace': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)
Step 3: Add operational API endpoints and environment-driven runtime configuration to the monitoring service.
- Capability: Implement health, readiness, and current-status retrieval endpoints plus validated environment-driven runtime settings consistent with a process-local in-memory FastAPI service.
- Plan label: gap
- Reusable capability: False
- Rationale: These are service-specific operational features, not a generic registry capability.
- Input schema:
{'service_workspace': 'object'} - Output schema:
{'service_workspace': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)
Step 4: Create automated tests for the monitoring service.
- Capability: Add unit and API tests for CRUD operations, on-demand checks, status updates, error handling, SSRF blocking across redirects and DNS resolution, and log redaction using mocked outbound HTTP.
- Plan label: gap
- Reusable capability: False
- Rationale: Tests validate this specific deliverable and should reside in the same repository.
- Input schema:
{'service_workspace': 'object'} - Output schema:
{'service_workspace': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)
Step 5: Package the service with Docker and developer documentation.
- Capability: Create dependency metadata, a production-sensible Dockerfile, optional Docker Compose configuration, ignore files, and a README covering project layout, API examples, configuration, testing, and local and container workflows.
- Plan label: gap
- Reusable capability: False
- Rationale: Packaging and documentation are outputs of this project, not standalone reusable capabilities.
- Input schema:
{'service_workspace': 'object'} - Output schema:
{'service_workspace': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)
Step 6: Validate the complete project.
- Capability: Run configured formatting and static checks, automated tests, container image build, container startup, and API smoke tests, then report results and limitations of process-local in-memory operation.
- Plan label: gap
- Reusable capability: False
- Rationale: Final verification is deliverable-specific quality assurance rather than a reusable registry agent.
- Input schema:
{'service_workspace': 'object'} - Output schema:
{'verification_report': 'object'} - Acceptance criteria: (none)
- Success conditions: (none)