docs(06): create phase 6 plan — performance & production hardening
6 plans across 4 waves covering structlog/Loki observability, Locust load testing, multi-stage Dockerfile hardening, trusted-proxy rate limiting, and RUNBOOK.md. Verification passed (0 blockers). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
b7503cdff4
commit
70c09f6cd4
@@ -845,19 +845,19 @@ locust \
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
## Open Questions (RESOLVED)
|
||||
|
||||
1. **Upload endpoint for load testing**
|
||||
1. **Upload endpoint for load testing** (RESOLVED: 06-03 `<interfaces>` block — use POST /api/documents/upload direct multipart endpoint for load test; presigned flow excluded per D-05)
|
||||
- What we know: `services/extractor.py` uses `tempfile.NamedTemporaryFile`; the upload flow may be two-step (presigned URL) or one-step depending on the current documents.py implementation
|
||||
- What's unclear: Whether Locust needs to implement the three-step presigned flow (upload-url → PUT to MinIO → confirm) or if a simpler direct POST exists
|
||||
- Recommendation: Read `backend/api/documents.py` lines for the upload endpoint before finalizing the locustfile; if two-step, implement the MinIO PUT step using `self.client.put` to MinIO's host:9000
|
||||
|
||||
2. **Load test user bootstrap**
|
||||
2. **Load test user bootstrap** (RESOLVED: 06-03 Task 1 human checkpoint — use `on_start` register-then-login pattern; catch 409 conflict)
|
||||
- What we know: Locust needs a valid user to authenticate; no seed user for load testing exists yet
|
||||
- What's unclear: Whether to create the user via the registration API (on_start) or pre-seed via Alembic
|
||||
- Recommendation: Use `on_start` to register if not exists (catch 409), then login — self-contained, no DB dependency
|
||||
|
||||
3. **Loki tmpfs mount persistence**
|
||||
3. **Loki tmpfs mount persistence** (RESOLVED: 06-02 Task 3 — named volume `loki_data:/loki` used; loki service not subject to read_only)
|
||||
- What we know: Loki service needs a writable `/loki` directory for chunk storage
|
||||
- What's unclear: Whether the named volume `loki_data:/loki` is sufficient or if Loki's own container permissions require a matching UID
|
||||
- Recommendation: Use named volume (not read_only on loki service — it's not a user-facing service)
|
||||
|
||||
Reference in New Issue
Block a user