A secret-free UI with a backend that owns all business logic
The frontend reads only BACKEND_URL. Validation, authorization, MySQL, S3, credentials, AI providers, and outbound calls stay in the backend.
MySQLS3 / MinIOAI providersWebhooks
01
Service boundaries
The split prevents secret leakage and centralizes business rules.
- pentascope-fe: Next.js UI and secured backend proxy
- pentascope-be: API, rules, auth, and migrations
- MySQL 8: system of record
- S3/MinIO: documents, attachments, test evidence
- OpenAI/OpenRouter: optional server-side analysis
- External webhooks: allowlisted outbound HTTP
02
Data model
The canonical reference is separate from project overlays.
- Canonical SRS: imports, departments, modules, workflows, stories, links
- Project overlay: edits, additions, history, traceability
- QA runtime: commands, runs, cases, state, events
- Issue delivery: issues, attachments, project records
- Governance: impacts, logs, AI receipts, datasets, evaluations
03
Read/write flow
All sensitive writes pass through the backend.
- Browser → frontend server route → BACKEND_URL
- Bearer credentials are never forwarded to third parties
- Backend validates scope and project ownership
- A database transaction persists related records
- S3 keys remain private behind short signed paths
- Outbound webhook policy applies HTTPS, allowlist, timeout, and redirect controls
04
Scaling principles
The layout supports growth without coupling UI to infrastructure.
- Stateless frontend and backend scale horizontally
- Bounded MySQL pool with UTC connections
- Short canonical-graph cache and safe fallback
- Binary files stay outside MySQL
- Project lists use bounded pagination
- Coolify runs independent webhook-retry and test-schedule workers