Highlights
API / OpenAPI
- SSH & external routes now document request/response schemas (
/ssh/*,/external/*,/external/ssh/*). Generated clients (e.g.openapi-python-client) get typed request bodies instead of body-less stubs. (TASK-207) - The
/api/v1spec no longer advertises unreachable URLs — root-mounted public trust-material/KRL/CRL/CA-download routes and/trpc/{path}are hidden from the document. (TASK-208) - External issuer validation failures now return the standard
{error:{code,message}}shape.
Deployment
docker/nginx.confsingle-origin edge proxy routes the public/ssh/*and/krl/*trust-material paths to the backend while the SPA keeps its/ssh/*UI routes — fixes trust material being shadowed by the frontend on single-origin deployments. Documented inDEPLOYMENT.md. (TASK-209)
Fixes
generateCSRnow applies X.509 extensions (node-forgesetAttributes) — previously every CSR extension threw during ASN.1 serialization.
Testing
pnpm testauto-provisions a migrated, isolateddata/test.db— no manualdb:migrateneeded. Suite: 620 passed / 0 failed / 0 skipped (backend), 45 passed (frontend).
Full history: PR #5.
What's Changed
- fix(api): SSH/external OpenAPI schemas, root-route hiding, edge proxy + test-suite health by @oriolrius in #5
Full Changelog: v3.8.0...v3.9.0