feat: wire up swagger-jsdoc dynamic spec, delete static openapi.json
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Create src/swagger.ts config module for swagger-jsdoc
- Add GET /openapi.json dynamic route (generated from @openapi annotations)
- Delete static public/openapi.json (was drifting from code)
- Add @openapi annotation for deprecated /v1/signup/free in index.ts
- Import swaggerSpec into index.ts
- All 12 endpoints now code-driven: demo/html, demo/markdown, convert/html,
convert/markdown, convert/url, templates, templates/{id}/render,
recover, recover/verify, billing/checkout, signup/free, health
This commit is contained in:
parent
792e2d9142
commit
825c6562ba
11 changed files with 624 additions and 1070 deletions
50
dist/routes/health.js
vendored
50
dist/routes/health.js
vendored
|
|
@ -6,6 +6,56 @@ const require = createRequire(import.meta.url);
|
|||
const { version: APP_VERSION } = require("../../package.json");
|
||||
export const healthRouter = Router();
|
||||
const HEALTH_CHECK_TIMEOUT_MS = 3000;
|
||||
/**
|
||||
* @openapi
|
||||
* /health:
|
||||
* get:
|
||||
* tags: [System]
|
||||
* summary: Health check
|
||||
* description: Returns service health status including database connectivity and browser pool stats.
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Service is healthy
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* status:
|
||||
* type: string
|
||||
* enum: [ok, degraded]
|
||||
* version:
|
||||
* type: string
|
||||
* example: '0.4.0'
|
||||
* database:
|
||||
* type: object
|
||||
* properties:
|
||||
* status:
|
||||
* type: string
|
||||
* enum: [ok, error]
|
||||
* version:
|
||||
* type: string
|
||||
* example: 'PostgreSQL 17.4'
|
||||
* pool:
|
||||
* type: object
|
||||
* properties:
|
||||
* size:
|
||||
* type: integer
|
||||
* active:
|
||||
* type: integer
|
||||
* available:
|
||||
* type: integer
|
||||
* queueDepth:
|
||||
* type: integer
|
||||
* pdfCount:
|
||||
* type: integer
|
||||
* restarting:
|
||||
* type: boolean
|
||||
* uptimeSeconds:
|
||||
* type: integer
|
||||
* 503:
|
||||
* description: Service is degraded (database issue)
|
||||
*/
|
||||
healthRouter.get("/", async (_req, res) => {
|
||||
const poolStats = getPoolStats();
|
||||
let databaseStatus;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue