Commit graph

147 commits

Author SHA1 Message Date
DocFast Dev
4aeac959c3 Fix CSP-blocked inline onclick handlers
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 10m51s
- Remove onclick from API key recovery modal Copy button (templates/pages/index.html)
- Event listener already exists in app.js (line 295)
- Remove onclick from server-rendered API key display (src/index.ts line 207)
- Remove onclick from billing success page Copy button (src/routes/billing.ts line 181)
- Create public/copy-helper.js to handle all [data-copy] elements via external JS
- All copy functionality now CSP-compliant (script-src 'self')
2026-02-21 16:04:15 +00:00
DocFast Bot
0e04fb5523 feat: add Go, PHP, Laravel examples to examples page and update landing copy
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m15s
2026-02-21 13:31:02 +00:00
DocFast Bot
bc67c52d3a feat: add Go, PHP, and Laravel SDKs
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Go SDK: zero deps, functional options pattern, full endpoint coverage
- PHP SDK: PHP 8.1+, curl-based, PdfOptions class, PSR-4 autoloading
- Laravel package: ServiceProvider, Facade, config publishing
- All SDKs document complete PDF options including new v0.4.5 params
2026-02-21 13:29:48 +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 Dev
f332d425ec Fix heading hierarchy (h3→h2) and add FAQ structured data for SEO
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m12s
- Changed 'Hosted in the EU' from h3 to h2 (WCAG compliance)
- Added FAQPage JSON-LD schema with 5 developer-focused questions
- Improves accessibility and Google rich results eligibility
2026-02-21 13:03:06 +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
bc948c4711 fix: remove /signup from sitemap (404 page)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-21 10:01:44 +00:00
OpenClaw Agent
a5f3683e30 Build pages with updated SDK messaging
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m31s
2026-02-21 07:03:27 +00:00
OpenClaw Agent
7ab371a40b Update landing page copy: replace 'No SDKs' with SDK availability messaging
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-21 07:02:20 +00:00
DocFast Bot
0d66341f22 feat: update examples page with SDK examples, fix API URLs
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m25s
- Node.js and Python examples now show SDK usage (recommended) + raw HTTP
- Fix api.docfast.dev → docfast.dev in all curl examples
- Update features subtitle to mention official SDKs
2026-02-20 20:26:58 +00:00
DocFast Bot
2e29d564ab feat: add official Node.js and Python SDKs
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Node.js SDK (sdk/nodejs/): TypeScript, zero deps, native fetch, Node 18+
- Python SDK (sdk/python/): sync + async clients via httpx, Python 3.8+
- Both wrap all conversion endpoints (html, markdown, url, templates)
- Proper error handling with DocFastError
- Full README documentation for each
2026-02-20 20:25:43 +00:00
DocFast Bot
45b5be248c docs: remove free tier, update rate limits and auth for demo+pro model
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m58s
Promote to Production / Deploy to Production (push) Successful in 2m21s
- Remove free tier from rate limits, add Demo (5/hour, watermarked)
- Update auth section: remove free-tier key mention, link to docfast.dev
- Update getting started: demo → upgrade to Pro → use API key
- Add deprecated: true to /v1/signup/free swagger annotation
- Regenerate openapi.json
2026-02-20 19:10:25 +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
e9440a4e6a fix: webhook idempotency — unique index on stripe_customer_id + UPSERT + DB dedup on success page
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m44s
- Add partial unique index on api_keys(stripe_customer_id) WHERE NOT NULL
- Use INSERT ... ON CONFLICT in createProKey for cross-pod dedup
- Add findKeyByCustomerId() to query DB directly
- Success page checks DB before creating key (survives pod restarts)
- Refresh in-memory cache after UPSERT
2026-02-20 16:03:17 +00:00
DocFast Bot
e074562f73 fix: use commit SHA instead of latest tag to prevent race condition in promote workflow
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
The promote workflow previously pulled :latest, which could be stale if the
staging build hadn't finished yet. Now it pulls the exact :SHA image that
deploy.yml produces, with retry logic (up to 10min) if staging is still building.
2026-02-20 16:01:03 +00:00
DocFast Bot
e787923908 feat: add IndexNow key for Bing/Yandex search indexing
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 54s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m15s
2026-02-20 13:03:56 +00:00
DocFast Bot
cb1765c758 ci: retrigger staging build for v0.4.2
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-20 13:03:16 +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
087e429344 Add /examples route to server
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 29s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m40s
2026-02-20 10:05:56 +00:00
DocFast Bot
1d97f5e2aa Add /examples page with code examples for common use cases
Some checks are pending
Build & Deploy to Staging / Build & Deploy to Staging (push) Waiting to run
2026-02-20 10:04:45 +00:00
DocFast Bot
6b0d9d8f40 fix: use SVG background-repeat for reliable diagonal watermark tiling
Some checks are pending
Build & Deploy to Staging / Build & Deploy to Staging (push) Waiting to run
HTML div tiles were too faint. SVG background pattern renders
reliably in Chromium print mode with consistent coverage.
2026-02-20 10:02:35 +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
c7ee2a8d74 ci: retrigger build
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-20 09:59:59 +00:00
3ae4f0e2a9 feat: prominent diagonal tiled watermark on demo PDFs
Some checks are pending
Build & Deploy to Staging / Build & Deploy to Staging (push) Waiting to run
Replace easily-croppable bottom bar with full-page diagonal
repeating 'DEMO — docfast.dev' watermark pattern (80 tiles,
rotated -35deg, 18% opacity). Bottom bar retained for branding.
Content remains readable but watermark cannot be cropped out.
2026-02-20 09:59:40 +00:00
DocFast CEO
2e928c1f90 fix: update templates source for rate limit de-emphasis
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
Previous commit only updated generated public/ files. CI rebuilds
from templates/, so must update source templates too.
2026-02-20 09:55:17 +00:00
DocFast CEO
432a24dd81 fix: download button in playground + de-emphasize rate limits
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Fix download button: exclude #demoDownload from smooth scroll handler
  that was calling preventDefault() on blob: URLs after PDF generation
- Replace '5,000 PDFs per month' with 'High-volume PDF generation' in pricing
- Update schema.org structured data to remove specific limits
2026-02-20 09:51:20 +00:00
ca070520b4 Remove rate limiting mention from landing page
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
Rate limiting is a technical constraint, not a feature to advertise.
Focus on what customers get: security, zero storage, streaming.
2026-02-20 09:46:40 +00:00
dabf3c1004 Redesign playground: template tabs, live preview, split pane, mobile responsive
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m8s
- Add 3 pre-built templates (Invoice, Report, Custom HTML)
- Split-pane editor with live HTML preview (updates as you type)
- Generation timer shows actual response time
- Before/after comparison (free watermarked vs Pro clean)
- Pro CTA integrated into result panel
- Fully responsive: stacks on mobile
- Professional polish matching site design language
2026-02-20 09:32:25 +00:00
DocFast CEO
a178a1b06d fix(landing): update Docker build sources for BUG-080
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m59s
- Update public/src/index.html (Docker build source)
- Remove signup modal partial include
- Remove Free tier, add playground, update CTAs
- Update structured data
2026-02-20 08:10:29 +00:00
DocFast CEO
0295dc1dae fix(landing): remove Free tier, add playground, update CTAs (BUG-080)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Remove Free tier pricing card entirely
- Remove signup modal (no more free signups)
- Add interactive playground section (paste HTML → watermarked PDF)
- Hero CTAs: 'Try Demo →' and 'Get Pro API Key — €9/mo'
- Pricing: single Pro card at €9/mo
- Update structured data to remove Free offer
2026-02-20 08:07:17 +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
9095175141 a11y & SEO: fix source files - aria-labels, focus management, canonical, WebApplication schema, focus-visible
Some checks failed
Promote to Production / Deploy to Production (push) Successful in 2m43s
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-20 07:22:01 +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
fb05989b3b fix: SEO + accessibility + consistency fixes (BUG-056,062,063,064,065,066,067,068)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m8s
2026-02-19 08:39:56 +00:00
OpenClaw Deployer
c6af7cd864 fix: disable buildx cache + simplify compression middleware
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m9s
Promote to Production / Deploy to Production (push) Successful in 2m15s
2026-02-19 08:09:59 +00:00
OpenClaw Deployer
2332aa9f1f fix: use compression package for proper static file compression
Some checks failed
Promote to Production / Deploy to Production (push) Successful in 1m16s
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-19 08:02:44 +00:00
OpenClaw Deployer
9c8dc237c3 Trigger CI/CD pipeline for version 0.2.9
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m47s
2026-02-18 18:08:17 +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
OpenClaw Deployer
e611609580 fix: compile TypeScript in Docker build — dist/ was never built in CI, connection resilience code was missing from images
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 10m59s
Promote to Production / Deploy to Production (push) Successful in 1m15s
2026-02-18 16:19:59 +00:00
OpenClaw Deployer
95ca10175f fix: destroy dead pool connections on transient errors (proper failover)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 9m48s
Promote to Production / Deploy to Production (push) Failing after 3m46s
- queryWithRetry now uses explicit client checkout; on transient error,
  calls client.release(true) to DESTROY the dead connection instead of
  returning it to pool. Fresh connections are created on retry.
- connectWithRetry validates connections with SELECT 1 before returning
- Health check destroys bad connections on failure
- Reduced idleTimeoutMillis from 30s to 10s for faster stale connection eviction
- Fixes BUG-075: pool kept reusing dead TCP sockets after PgBouncer pod restart
2026-02-18 14:28:47 +00:00
OpenClaw Deployer
8d88a9c235 fix: database connection resilience — retry on transient errors, TCP keepalive, health check timeout
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 9m25s
Promote to Production / Deploy to Production (push) Successful in 1m36s
- Enable TCP keepalive on pg.Pool to detect dead connections
- Add connectionTimeoutMillis (5s) to prevent hanging on stale connections
- Add queryWithRetry() with exponential backoff for transient DB errors
- Add connectWithRetry() for transaction-based operations
- Detect PgBouncer "no available server" and other transient errors
- Health check has 3s timeout and returns 503 on DB failure
- All DB operations in keys, verification, usage use retry logic

Fixes BUG-075: PgBouncer failover causes permanent pod failures
2026-02-18 14:08:29 +00:00
OpenClaw Deployer
97744897f0 fix: move /docs route before express.static to fix CSP headers
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 1m15s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 9m8s
express.static was serving docs.html before the /docs route handler,
causing Helmet default CSP to be used instead of the custom Swagger UI CSP.
This blocked unsafe-eval and blob: workers needed by Swagger UI.
2026-02-18 13:51:35 +00:00
OpenClaw Deployer
a45d7704ab fix: relax CSP for /docs page — allow unsafe-eval for Swagger UI 5.x (ajv)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 8m41s
Swagger UI 5.x uses new Function() via ajv for JSON schema validation.
Helmet default CSP (script-src self) blocks this in Firefox, causing
TypeError: NetworkError when attempting to fetch resource on Try It.
Override CSP on /docs route to allow unsafe-eval.
2026-02-18 13:33:26 +00:00
OpenClaw Deployer
a996c76c11 fix: align Pro plan quota to 5,000 PDFs/month (matches code + Stripe)
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 2m0s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 9m5s
2026-02-18 13:10:20 +00:00
OpenClaw Deployer
0902e1e437 feat: add SMTP auth support for K3s migration
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m3s
Promote to Production / Deploy to Production (push) Successful in 3m23s
- Support SMTP_USER/SMTP_PASS env vars for authenticated SMTP
- Support SMTP_FROM env var for configurable sender address
- Auto-detect secure mode for port 465
- Backwards compatible: falls back to unauthenticated local relay
2026-02-18 12:47:33 +00:00
OpenClaw Deployer
02b2408772 ci: staged deployment — push to main→staging, git tag→prod
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Push to main builds ARM64 image and deploys to docfast-staging namespace
- Push a version tag (v*) promotes latest image to docfast namespace (prod)
- Both use same deployer SA with namespace-scoped RBAC
2026-02-18 12:40:00 +00:00