Add URL→PDF endpoint, usage tracking middleware, free tier limits

This commit is contained in:
DocFast Bot 2026-02-14 13:02:40 +00:00
parent 8e03b8ab3c
commit 6896b72e0c
5 changed files with 158 additions and 4 deletions

View file

@ -7,6 +7,8 @@ import { convertRouter } from "./routes/convert.js";
import { templatesRouter } from "./routes/templates.js";
import { healthRouter } from "./routes/health.js";
import { authMiddleware } from "./middleware/auth.js";
import { usageMiddleware } from "./middleware/usage.js";
import { getUsageStats } from "./middleware/usage.js";
import { initBrowser, closeBrowser } from "./services/browser.js";
const app = express();
@ -29,8 +31,13 @@ app.use(limiter);
app.use("/health", healthRouter);
// Authenticated
app.use("/v1/convert", authMiddleware, convertRouter);
app.use("/v1/templates", authMiddleware, templatesRouter);
app.use("/v1/convert", authMiddleware, usageMiddleware, convertRouter);
app.use("/v1/templates", authMiddleware, usageMiddleware, templatesRouter);
// Admin: usage stats (protected by auth)
app.get("/v1/usage", authMiddleware, (_req, res) => {
res.json(getUsageStats());
});
// Landing page
const __dirname = path.dirname(fileURLToPath(import.meta.url));
@ -45,6 +52,7 @@ app.get("/api", (_req, res) => {
endpoints: [
"POST /v1/convert/html",
"POST /v1/convert/markdown",
"POST /v1/convert/url",
"POST /v1/templates/:id/render",
"GET /v1/templates",
],