v0.11.0 — TRUSCA (renamed) + public read-only demo
The first post-GA feature release. Headlines: the product is renamed to
TRUSCA, a public read-only demo SaaS deployable to a single Hetzner
server, a UI craft pass (W11–W12), and a hardening sweep from an external
verification campaign.
Renamed — TrustedOSS Portal is now TRUSCA
TRUSCA (Trust + SCA) is the new product name — the SCA tool of the
TrustedOSS initiative. The umbrella initiative keeps the TrustedOSS name; the
tool gets its own. What changes for you:
- Repository:
github.com/trustedoss/trustedoss-portal→
github.com/trustedoss/trusca. Git remotes and old web links redirect
automatically. - Docs site path:
trustedoss.github.io/trustedoss-portal/→
trustedoss.github.io/trusca/(GitHub Pages does not redirect the old
path — update bookmarks). - Container images (BREAKING for upgrades): from 0.11.0 images publish as
ghcr.io/trustedoss/trusca-backend,trusca-backend-worker, and
trusca-frontend. Releases ≤ 0.10.0 keep their old image names, and an
upgrade viagit checkout v0.11.0 && bash scripts/upgrade.shswitches
automatically (the new compose file pins the new names). Only custom
overlays that hardcode the old image names need a manual edit. - Unchanged on purpose: database user/roles, the Celery app name, the
compose network, demo account e-mails, andurn:trustedoss:*problem URNs
are internal identifiers that match the umbrella name and stay as-is. - New brand: the "Hex Check" mark (package hexagon + verification check) and
the first frontend favicon.
Added
- Public read-only demo mode —
DEMO_READ_ONLYmakes the backend serve all
reads but reject every write (allow-listing only the auth login/refresh/logout
flow) with an RFC 7807 403. The SPA surfaces it as a banner, a login-page
credentials hint, and a dedicated "read-only demo" toast on blocked writes. - Hetzner demo provisioning — cloud-init, an operator runbook (EN/KO), an
idempotentseed_demodataset, a dailyreset_demowipe-and-reseed timer, and
a daily backup timer. - Optional SSH-based CD (
deploy-hetzner.yml) — one-click / on-release deploy
to the demo host via the existingupgrade.sh, with strict tag validation and
host-key pinning. - Day-2 operations — opt-in offsite backup (
backup-offsite.sh, rclone), a
backstop uptime canary workflow, and a Korean translation-style linter for the
docs site.
Changed
- Visual & craft pass (W11–W12) — modern-enterprise theme (warm near-black
primary, off-white canvas), Inter/JetBrains-Mono typography system, an
in-house global toast, CSS-only route/motion transitions with a reduced-motion
guard, and richer empty/loading states.
Fixed
- Drawer obligations, CVE deep-links, and the Compliance NOTICE toolbar
(M-20/M-21/M-22). Relative-time displays now always carry an absolute-time title.
Security
- Revoke the entire refresh-token family on reuse detection (C-1).
- Redact embedded
git_urlcredentials on the read API and in audit logs (C-2). - Enforce the project boundary for project-scoped API keys (M-2) and scope
GET /v1/auditreads to the caller's team for team admins (M-3). - Codified five testing-hardening rules and vendored the verification team's
deterministic specs as a nightly regression gate.