conductor/docs/RELEASE_VALIDATION.md

53 lines
2.7 KiB
Markdown

# Conductor v0.1.0 Release Validation
## Release-critical layers
The release gate uses five complementary layers:
1. Frontend unit and integration tests cover component rendering, visual authoring, JSON diagnostics, request templates, runtime state, actions, bindings, variables, failure recovery, and the deterministic MVP workflows.
2. Backend unit tests cover schema and semantic validation, authentication, encryption, proxy destination/header/redirect/transport/response policy, and safe logging.
3. Backend HTTP integration tests run an isolated server, SQLite database, and controlled upstream to cover health, CRUD, invalid-update atomicity, canonical round trips, all five authentication modes, proxy success/upstream/policy outcomes, history redaction/cleanup, and secret lifecycle.
4. Playwright browser tests exercise the real frontend and backend through Docker Compose using the controlled repository mock server. They cover the workflow launcher, dependent data, dashboard refresh/selection, save, reload, and rerun readiness.
5. The schema matrix, TypeScript checks, production builds, Docker restart/persistence, database backup/restore, and security regression checks prove packaging and operational behavior.
Passing automation does not replace proportional manual acceptance. Human verification remains required for usability, visual state, browser-visible redaction, and the complete six-workflow release checklist.
## Deterministic test environment
The release demo is `examples/project-definitions/valid-release-demo.json`. It uses only `http://mock-api:8787`, supplied by `examples/mock-server/conductor-mock-server.js` through the existing Compose override:
```bash
docker compose -f docker-compose.yml -f docker-compose.manual-test.yml up -d --build
npm run test:e2e
```
The override grants the backend only the exact internal origin `http://mock-api:8787`. The normal Compose definition remains default-deny and contains no internal exception.
## Automated commands
Run with Node 20 and npm 10:
```bash
cd frontend
npm ci
npx tsc --noEmit
npm test -- --watchAll=false --runInBand
npm run build
cd ../backend
npm ci
npm test
cd ..
npm ci
npm run test:schema
docker compose -f docker-compose.yml -f docker-compose.manual-test.yml up -d --build
npm run test:e2e
```
The backend integration suite binds isolated localhost ports. In restricted command sandboxes it may require explicit permission for local listening sockets.
## Manual gate
Manual acceptance begins only after all automated commands, Docker restart and persistence, backup/restore, repository credential scan, and cleanup checks pass. The manual checklist must cover all six workflows in `MVP_SCOPE.md`, including all authentication modes and failure recovery, and record any accepted limitations or defects.