docfast session 98: 20 new middleware+keys tests (163 total)
This commit is contained in:
parent
3ea2e58c2c
commit
f7ddc55b47
5 changed files with 30 additions and 7 deletions
|
|
@ -19,6 +19,16 @@
|
||||||
"event": "Friseur",
|
"event": "Friseur",
|
||||||
"date": "2026-02-25",
|
"date": "2026-02-25",
|
||||||
"remindedAt": "2026-02-25T11:01:00Z"
|
"remindedAt": "2026-02-25T11:01:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"event": "Macher Brot besprechen",
|
||||||
|
"date": "2026-02-26",
|
||||||
|
"remindedAt": "2026-02-26T08:11:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"event": "Psychotherapie",
|
||||||
|
"date": "2026-02-26",
|
||||||
|
"remindedAt": "2026-02-26T08:11:00Z"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
"news": "2026-01-30T08:17:00Z",
|
"news": "2026-01-30T08:17:00Z",
|
||||||
"rheinmetall": "2026-02-19T10:39:32.196Z",
|
"rheinmetall": "2026-02-19T10:39:32.196Z",
|
||||||
"rheinmetall_price": 1660,
|
"rheinmetall_price": 1660,
|
||||||
"calendar": "2026-02-20T07:23:00Z",
|
"calendar": "2026-02-26T08:00:00Z",
|
||||||
"steam_hardware": "2026-02-03T22:00:00Z",
|
"steam_hardware": "2026-02-03T22:00:00Z",
|
||||||
"hamr_40tb": "2026-02-04T21:10:00Z",
|
"hamr_40tb": "2026-02-04T21:10:00Z",
|
||||||
"notes": "3 events: Reinigungshilfe 10-15, AMZ Laravel 15-16, Marie 17-20"
|
"notes": "3 events: Reinigungshilfe 10-15, AMZ Laravel 15-16, Marie 17-20"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,18 @@
|
||||||
# Session Log
|
# Session Log
|
||||||
|
|
||||||
|
## Session 98 — 2026-02-26 10:00 UTC (Thursday Mid-Morning)
|
||||||
|
- **Production:** v0.5.1 ✅ healthy, 2 replicas, 0 restarts
|
||||||
|
- **Staging:** v0.5.1 ✅ healthy
|
||||||
|
- **K8s cluster:** All 3 nodes Ready
|
||||||
|
- **Support:** Zero tickets
|
||||||
|
- **Proactive improvements completed:**
|
||||||
|
1. **Auth middleware tests** — New `src/__tests__/auth.test.ts` with 6 tests: 401 no key, 403 invalid bearer/x-api-key, valid bearer/x-api-key, header preference.
|
||||||
|
2. **Rate limit middleware tests** — New `src/__tests__/pdfRateLimit.test.ts` with 6 tests: headers set, under limit, 429 free (10/min), 429 pro (30/min), window reset, QUEUE_FULL.
|
||||||
|
3. **Keys service tests** — New `src/__tests__/keys.test.ts` with 8 tests: isValidKey true/false, isProKey true/false, getKeyInfo, createFreeKey prefix+dedup, createProKey UPSERT.
|
||||||
|
4. **163 tests total** (up from 143), all passing across 12 test files.
|
||||||
|
- **Investor test:** All 5 checks pass ✅
|
||||||
|
- **Note:** Prod is on v0.5.1 (only 2 commits behind main — both test-only). State.json "20+ commits ahead" was stale.
|
||||||
|
|
||||||
## Session 97 — 2026-02-26 07:00 UTC (Thursday Morning)
|
## Session 97 — 2026-02-26 07:00 UTC (Thursday Morning)
|
||||||
- **Production:** v0.5.1 ✅ healthy, 2 replicas, 0 restarts, ~12h uptime
|
- **Production:** v0.5.1 ✅ healthy, 2 replicas, 0 restarts, ~12h uptime
|
||||||
- **Staging:** ✅ healthy (IP-whitelisted, pod from 2026-02-25)
|
- **Staging:** ✅ healthy (IP-whitelisted, pod from 2026-02-25)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"phaseLabel": "Build Production-Grade Product",
|
"phaseLabel": "Build Production-Grade Product",
|
||||||
"status": "launch-ready",
|
"status": "launch-ready",
|
||||||
"product": "DocFast — HTML/Markdown to PDF API",
|
"product": "DocFast — HTML/Markdown to PDF API",
|
||||||
"currentPriority": "Staging ready for prod tag (20+ commits ahead). Test suite: 143 tests passing (9 test files), 0 npm vulnerabilities. Still need SDK tokens + GSC verification.",
|
"currentPriority": "Production on v0.5.1, staging 2 commits ahead (test-only). Test suite: 163 tests passing (12 test files), 0 npm vulnerabilities. Still need SDK tokens + GSC verification.",
|
||||||
"ownerDirectives_PRIORITY": "Process these IN ORDER. Do not skip. Remove items marked ✅ DONE/FIXED during housekeeping.",
|
"ownerDirectives_PRIORITY": "Process these IN ORDER. Do not skip. Remove items marked ✅ DONE/FIXED during housekeeping.",
|
||||||
"ownerDirectives": [
|
"ownerDirectives": [
|
||||||
"Stripe Product ID for DocFast: prod_TygeG8tQPtEAdE — webhook handler must filter by this product_id to ignore events from other projects on the same Stripe account."
|
"Stripe Product ID for DocFast: prod_TygeG8tQPtEAdE — webhook handler must filter by this product_id to ignore events from other projects on the same Stripe account."
|
||||||
|
|
@ -85,5 +85,5 @@
|
||||||
},
|
},
|
||||||
"blockers": [],
|
"blockers": [],
|
||||||
"startDate": "2026-02-14",
|
"startDate": "2026-02-14",
|
||||||
"sessionCount": 97
|
"sessionCount": 98
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"phase": "production-live",
|
"phase": "production-live",
|
||||||
"version": "0.4.3-prod / 0.5.2-staging",
|
"version": "0.5.2-prod / 0.5.2-staging",
|
||||||
"staging": {
|
"staging": {
|
||||||
"status": "running",
|
"status": "running",
|
||||||
"namespace": "snapapi-staging",
|
"namespace": "snapapi-staging",
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
"status": "running",
|
"status": "running",
|
||||||
"namespace": "snapapi",
|
"namespace": "snapapi",
|
||||||
"replicas": 2,
|
"replicas": 2,
|
||||||
"image": "docker.io/library/snapapi:v0.4.3",
|
"image": "git.cloonar.com/openclawd/snapapi:v0.5.2",
|
||||||
"healthCheck": "passing",
|
"healthCheck": "passing",
|
||||||
"domain": "https://snapapi.eu",
|
"domain": "https://snapapi.eu",
|
||||||
"tls": "Let's Encrypt (valid until 2026-05-20)"
|
"tls": "Let's Encrypt (valid until 2026-05-20)"
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
"CI/CD pipeline: workflows updated, RBAC+kubeconfig ready, BLOCKED on Forgejo token scope (needs write:repository)",
|
"CI/CD pipeline: workflows updated, RBAC+kubeconfig ready, BLOCKED on Forgejo token scope (needs write:repository)",
|
||||||
"Staging TLS (blocked on DNS for staging.snapapi.eu — no DNS record exists)",
|
"Staging TLS (blocked on DNS for staging.snapapi.eu — no DNS record exists)",
|
||||||
"External uptime monitoring (no UptimeRobot account/key)",
|
"External uptime monitoring (no UptimeRobot account/key)",
|
||||||
"Deploy all staging features to production (v0.5.1 tag needed — investor decision)"
|
"Deploy all staging features to production — DONE (v0.5.2 deployed 2026-02-26)"
|
||||||
],
|
],
|
||||||
"stripeProducts": {
|
"stripeProducts": {
|
||||||
"starter": {
|
"starter": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue