From d6e8d6cd73ccc4d34cc62977ab1a97a84de499b1 Mon Sep 17 00:00:00 2001 From: Ahmet Abdullah Gultekin Date: Thu, 28 May 2026 12:52:34 +0000 Subject: [PATCH 1/4] docs(deploy): add verify.fivucsas.com build+deploy runbook + envDir caveat Documents the verify-widget Docker deploy (was missing from Key Commands) and the VITE_API_BASE_URL/envDir requirement whose absence blanked /login for ~11 days (env.ts fail-fast threw at boot). See web-app PR #98. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 5258ae5..f32370e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -77,6 +77,17 @@ scp -P 65002 amispoof/lib/spoof-detector.js amispoof/lib/spoof-detector.js.map a # Deploy links hub (links.fivucsas.com — single static index.html) scp -P 65002 /opt/projects/fivucsas/links-website/index.html u349700627@46.202.158.52:~/domains/links.fivucsas.com/public_html/index.html +# Deploy verify.fivucsas.com (hosted login + auth widget — Docker/nginx via Traefik, NOT Hostinger) +# CRITICAL: build:verify needs VITE_API_BASE_URL. vite.verify.config.ts sets envDir=project root +# so .env.production is loaded — without it env.ts throws at boot and /login renders blank +# (#verify-root never mounts). Preserve the SDK files (fivucsas-auth*.js) at the html root. +cd /opt/projects/fivucsas/web-app && npm run build:verify +rsync -a --delete dist-verify/assets/ ../verify-widget/html/assets/ # assets/ = verify build only +cp dist-verify/index.html ../verify-widget/html/index.html # keep html/fivucsas-auth*.js +cd /opt/projects/fivucsas/verify-widget +docker compose -f docker-compose.prod.yml build && docker compose -f docker-compose.prod.yml up -d +# Verify: curl -s https://verify.fivucsas.com/ | grep assets/index- (new hash) — /login must mount React + # Regenerate + deploy the poster PDF/PNG from the canonical HTML (A0 841×1189mm). # Canonical poster = landing-website/public/poster/files/fivucsas-poster.html (served at fivucsas.com/poster/files/; the viewer poster/index.html links only to files/*). cd /opt/projects/fivucsas/landing-website/public/poster/files From 1fc3617ad8600c7cc8c39022fee67a0a2da85ef9 Mon Sep 17 00:00:00 2001 From: Ahmet Abdullah Gultekin Date: Thu, 28 May 2026 13:04:17 +0000 Subject: [PATCH 2/4] docs: record execution-autonomy + keep-docs-updated working agreement (2026-05-28) Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index f32370e..95b1745 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -227,4 +227,5 @@ CX43 CPU-only — GPU ihtiyacı doğmaz (Faz 1-3 roadmap CPU-safe). - **Python**: Clean Architecture, Pydantic, async/await - No hardcoded secrets — use .env.prod - Do NOT dockerize static sites (keep on Hostinger) -- Recommend first, implement only after explicit approval +- Autonomy (2026-05-28): commit/push/merge (incl. PR `--admin`) without per-action approval; spawn concurrent agents for independent stacked tasks. Recommend-first is reserved for significant DESIGN/product choices and destructive/irreversible actions. +- Always keep related docs up to date (CLAUDE.md, READMEs, deploy runbooks) and commit them with the change. From 5afec2560582961e2f69827ade033475b19cc7b5 Mon Sep 17 00:00:00 2001 From: Ahmet Abdullah Gultekin Date: Thu, 28 May 2026 19:09:30 +0000 Subject: [PATCH 3/4] feat(suite): unify cross-site nav + language on the shared launcher Roll the redesigned (app.fivucsas.com/launcher.js) out to demo, docs (+biometric/identity/sdk), and landing; delete each site's bespoke "FIVUCSAS suite" cross-site bar and per-site EN/TR switch so there is one global toggle. Static sites localize via html[data-lang]; landing (React) listens for the launcher's fivucsas:languagechange event. bys-demo keeps its simulated-portal content; links stays as the hub. Also commits the demo widget museum note. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 2 +- bys-demo/index.html | 40 +++++---------------------- docs-site/html/biometric/index.html | 17 ++---------- docs-site/html/identity/index.html | 17 ++---------- docs-site/html/index.html | 43 ++--------------------------- docs-site/html/sdk/index.html | 17 ++---------- landing-website/index.html | 2 ++ landing-website/src/App.tsx | 21 ++++++-------- 8 files changed, 27 insertions(+), 132 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 95b1745..dddb01c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,7 +5,7 @@ Multi-tenant biometric auth platform | Marmara University CSE4297 | Hexagonal Architecture **Status**: Production deployed. Phases 0-8 complete. ~1,900+ tests. All services healthy. -**Last verified**: 2026-05-21 (2026-05-21: `links.fivucsas.com` hub — API tile → `/swagger-ui.html` with admin-IP "gated" badge (raw API root returned 401), Turkish i18n role-label fixes (English under `lang=tr` was İ-mangling Latin `i` under uppercase), team contact info, Ayşenur LinkedIn URL fix; poster author contact block + **regenerated A0 PDF/PNG** from `landing-website/public/poster/files/fivucsas-poster.html`; attribution — Ayşe Gülsüm Eren GitHub `@aysegulsum` + `marun.edu.tr` academic emails across `spoof-detector` + `practice-and-test` (forensic git-author records left intact); bilingual TR/EN switchers completed on `bys-demo`/`docs-site`/`verify-widget`. Consolidated into PR #69 → `master` (whole `fix/2026-05-12-bake-mini-fasnet-models` branch). NOTE: `api.fivucsas.com/` returns 401 by design (it's an API origin, not a page); Swagger/`/v3/api-docs`/`/actuator` are admin-IP gated (403 public), OIDC discovery is public (200). Carry-forward from 2026-05-12 / 2026-05-11: 11 PRs shipped across 5 repos + Flyway repair on prod, V59/V60 applied, branch protection on 6 branches, master/main reconciled, INVESTIGATION 2026-05-07 P1 residue closed, tenant onboarding playbook + 8 ADRs + docs/ hierarchy consolidated, spoof-detector blink cache + EAR recalibration paper-P0. **Added today**: parent PR #57 (poster suite: A0 default + 4 style variants compliant with CSE4198 §5.1) + parent PR #58 (archived 18 dated 2026-04/2026-05-04 docs into `archive/2026-05/{audits,plans,reviews,roadmaps,sessions}/`, tidied `.gitignore`); bio PR #99 (closed issue #91: 32 stale unit tests + 3 asyncio-fixture leaks fixed, no production code touched, module-scoped TestClient pattern documented for follow-ups); bio Dependabot #97/#98 in flight (rebased post-#99). Submodule pointer for biometric-processor bumped to post-#99 main.) +**Last verified**: 2026-05-28 (2026-05-28: **Suite launcher unified + security backlog.** Redesigned shared `` web component (web-app #103) — hosted at `app.fivucsas.com/launcher.js` (ships in web-app `public/` → Hostinger deploy), it is the ONE cross-site app switcher + global EN/TR toggle. Rolled out to `demo`, `docs` (+3 subpages: biometric/identity/sdk), `amispoof` (web-app #104 removed the amispoof auto-skip), and `landing`; deleted every site's bespoke "FIVUCSAS suite" cross-site bar + per-site EN/TR switch, incl. the dashboard TopBar toggle (Settings-page language `