Commit graph

26 commits

Author SHA1 Message Date
Hoid
6fd707ab64 feat: Add JS minification to build pipeline and expand test coverage
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m51s
Task 1: Add JS minification to build pipeline (fix BUG-053)
- Update scripts/build-html.cjs to minify JS files in-place with terser
- Modified public/src/index.html and status.html to reference original JS files
- Add TDD test to verify JS minification works correctly

Task 2: Expand test coverage for untested routes
- Add tests for /v1/usage endpoint (auth required, admin access checks)
- Add tests for /v1/billing/checkout route (rate limiting, config checks)
- Add tests for rate limit headers on PDF conversion endpoints
- Add tests for 404 handler JSON error format for API vs HTML routes
- All tests follow TDD principles (RED → GREEN)

Task 3: Update swagger-jsdoc to fix npm audit vulnerability
- Upgraded swagger-jsdoc to 7.0.0-rc.6
- Resolved minimatch vulnerability via npm audit fix
- Verified OpenAPI generation still works correctly
- All 52 tests passing, 0 vulnerabilities remaining

Build improvements and security hardening complete.
2026-02-25 10:05:50 +00:00
bc698b66b2 bump: v0.5.1 — includes footer link fix
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m32s
2026-02-24 16:01:15 +00:00
ca72f04b6b Consolidate build system and add JS minification (fixes BUG-084)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Removed dead code: templates/pages/ directory and scripts/build-pages.js
- Updated build:pages script to use build-html.cjs (the actual build used by Dockerfile)
- JS minification now integrated into build-html.cjs for app.js and status.js
- HTML files already reference .min.js files
- Eliminates dual build system that caused deployment confusion
2026-02-22 07:02:59 +00:00
DocFast Bot
1545df9a7b feat: complete OpenAPI docs with all Puppeteer PDF options
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Add scale, pageRanges, preferCSSPageSize, width, height to PdfOptions
- Add headerTemplate, footerTemplate, displayHeaderFooter to docs
- Pass all options through routes to browser service for HTML, Markdown, and URL endpoints
- Export PdfRenderOptions interface for type reuse
- Bump version to 0.4.5
2026-02-21 13:19:31 +00:00
DocFast CEO
8a98710543 bump: v0.4.4 — SDK messaging, sitemap fix, examples nav link
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m33s
2026-02-21 10:02:48 +00:00
DocFast Bot
c35ff2bc97 chore: bump version to 0.4.3
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
Promote to Production / Deploy to Production (push) Failing after 10m5s
2026-02-20 19:00:29 +00:00
DocFast Bot
11fbb10181 chore: bump version to 0.4.2
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 2m35s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m16s
2026-02-20 10:19:57 +00:00
DocFast Bot
8777b1fc3d chore: bump version to 0.4.1
Some checks are pending
Build & Deploy to Staging / Build & Deploy to Staging (push) Waiting to run
Promote to Production / Deploy to Production (push) Successful in 2m12s
2026-02-20 10:01:43 +00:00
825c6562ba 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
- 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
2026-02-20 07:56:56 +00:00
DocFast Bot
792e2d9142 v0.4.1: Code-driven OpenAPI docs via swagger-jsdoc
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Add swagger-jsdoc dependency for auto-generating OpenAPI spec from JSDoc
- Add JSDoc @openapi annotations to all route handlers
- Create scripts/generate-openapi.mjs build step
- OpenAPI spec now auto-generated from code — no manual JSON editing
- All 13 endpoints documented with full parameters
- New demo endpoints documented, signup marked as deprecated
- Updated info description: demo-first, no free tier references
- Dockerfile updated to run openapi generation during build
- Build script updated: npm run build generates spec before compile
2026-02-20 07:54:37 +00:00
DocFast Bot
53755d6093 v0.4.0: Remove free tier, add public demo endpoint with watermark
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m31s
Promote to Production / Deploy to Production (push) Successful in 2m26s
- Remove free account signup flow entirely
- Add POST /v1/demo/html and /v1/demo/markdown (public, no auth)
- Demo: 5 requests/hour per IP, 50KB body limit, watermarked PDFs
- Landing page: interactive playground replaces 'Get Free API Key'
- Pricing: Demo (free) + Pro (€9/mo), no more Free tier
- /v1/signup returns 410 Gone with redirect to demo/pro
- Keep /v1/recover for existing Pro users
- Update JSON-LD, API discovery, verify page text
2026-02-20 07:32:45 +00:00
17c1f00e2b fix(billing): add rate limiting, body size check, and logging to checkout endpoint (BUG-079)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m9s
- Rate limit /checkout to 3 requests per IP per hour via express-rate-limit
- Reject request bodies >1KB (413)
- Log checkout session creation with client IP
- Bump version to 0.3.4
2026-02-20 07:07:27 +00:00
OpenClaw
32a00be0b3 a11y & SEO: aria-labels, focus management, structured data, sitemap update, v0.3.3
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-20 07:03:48 +00:00
37386bfb5c fix: version bump 0.3.2, remove debug log, dynamic /api version, Pro plan 5000 PDFs
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m28s
Promote to Production / Deploy to Production (push) Successful in 2m20s
1. Version bump to 0.3.2
2. Remove debug console.log('CACHE HIT:') from static asset middleware
3. /api endpoint: hardcoded version → dynamic from package.json
4. OpenAPI docs + terms: Pro plan 10,000 → 5,000 PDFs/month
5. Remove .backup files
2026-02-19 14:12:37 +00:00
OpenClaw Deployer
170ed444de Fix version number to 0.2.9 and add Brotli compression support (BUG-054)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-18 18:05:17 +00:00
7037b885e2 fix: BUG-055,058,060,061,067,069,053 - QA low/info fixes
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m35s
- BUG-055: Remove duplicate preconnect tags from homepage
- BUG-058: Add twitter:image meta tag to homepage
- BUG-060: Add og:title/description/url to sub-pages
- BUG-061: Add /status to sitemap.xml
- BUG-067: Add skip-to-content link on all pages
- BUG-069: Add legal footer to /docs page
- BUG-053: Minify app.js with terser
2026-02-17 13:07:43 +00:00
a01fbb0357 feat: website templating system — shared nav/footer partials, build-time HTML assembly
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m55s
- Build script: scripts/build-pages.js (zero dependencies, Node.js only)
- Shared partials: nav.html, footer.html (single source of truth)
- 5 page templates in templates/pages/
- Output is byte-for-byte identical to current production
- Run: npm run build:pages
- Also fixes JSON-LD: 2,500 → 5,000 PDFs/month (was inconsistent)
2026-02-16 18:54:17 +00:00
OpenClaw
aab6bf3bee feat: Pro limit 2,500/mo, website templating, cleanup
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m24s
- Set Pro tier limit to 2,500 PDFs/month (was unlimited/5000)
- Added Pro limit enforcement in usage middleware
- Updated landing page, JSON-LD, and Stripe product description
- Created build-time HTML templating (partials for nav/footer/styles)
- Source files in public/src/, partials in public/partials/
- Build script: node scripts/build-html.cjs
- Deleted stale backup file
- Fixed index.html nav logo to use <a> tag for consistency
2026-02-16 18:46:59 +00:00
DocFast CEO
86f8da62ec v0.2.1: request logging, 404 handler, permissions-policy, SEO improvements, typo fix
Some checks failed
Deploy to Production / Deploy to Server (push) Failing after 20s
2026-02-16 08:32:57 +00:00
OpenClaw
9541ae1826 Backend hardening: structured logging, timeouts, memory leak fixes, compression, XSS fix
Some checks failed
Deploy to Production / Deploy to Server (push) Failing after 20s
- Add pino structured logging with request IDs (X-Request-Id header)
- Add 30s timeout to acquirePage() and renderPdf/renderUrlPdf
- Add verification cache cleanup (every 15min) and rate limit cleanup (every 60s)
- Read version from package.json in health endpoint
- Add compression middleware
- Escape currency in templates (XSS fix)
- Add static asset caching (1h maxAge)
- Remove deprecated docker-compose version field
- Replace all console.log/error with pino logger
2026-02-16 08:27:42 +00:00
DocFast Bot
e9d16bf2a3 Migrate from JSON to PostgreSQL, update SLA to 99.5%
- Replace JSON file storage with PostgreSQL (pg package)
- Add db.ts service for connection pool and schema init
- Rewrite keys.ts, verification.ts, usage.ts for async PostgreSQL
- Update all routes for async function signatures
- Add migration script (scripts/migrate-to-postgres.mjs)
- Update docker-compose.yml with DATABASE_* env vars
- Change SLA from 99.9% to 99.5% in landing page
2026-02-15 10:18:25 +00:00
OpenClaw
d859e9fa60 feat: email change UI, Swagger UI improvements, key recovery link on landing page
- Email change modal: API key + new email → verification code → confirmed
- Swagger UI with proper OpenAPI spec (public/openapi.json + swagger-ui assets)
- Key recovery link prominently on landing page hero section
- Footer link for email change
- Updated docs.html to use swagger-ui bundle
2026-02-14 22:15:31 +00:00
210fb26ec1 fix(BUG-021): remove verification code from API response, send via email
- Replace Resend email service with nodemailer via local postfix relay
- Remove code field from POST /v1/signup/free response
- Send 6-digit verification code via email only (noreply@docfast.dev)
- Add extra_hosts for Docker-to-host SMTP relay
- Fire-and-forget email sending to avoid blocking API response
2026-02-14 19:10:45 +00:00
c12c1176b0 Add Stripe billing integration + update free tier to 100 PDFs/mo 2026-02-14 13:53:19 +00:00
6896b72e0c Add URL→PDF endpoint, usage tracking middleware, free tier limits 2026-02-14 13:02:40 +00:00
feee0317ae Initial MVP: DocFast PDF API
- HTML/Markdown to PDF conversion via Puppeteer
- Invoice and receipt templates
- API key auth + rate limiting
- Dockerfile for deployment
2026-02-14 12:38:06 +00:00