Security: carry GHSA-xcx6-jx8p-x3h5 (MSAL), unreachable from SQL authentication
A privilege a release adds is optional, announced once, and grantable in one step (D184, #599)
Indexterity keeps the MongoDB profiler on for a drop in flight (D183, #596)
Retention follows the organisation's plan alone; RETENTION_DAYS removed (#556)
Retention deletes on each plan's own window (#549)
Say how tenancy is actually enforced, and what sweeps it (#530) The page claimed tenancy was not a filter someone could forget. It is enforced per handler, which is exactly the kind a new route can forget — what makes it hold is the contract-enumerated cross-org sweep.
Security: report to hello@indexterity.alivlad.com The contact address moves onto the product's own domain, matching the dashboard, the README and the LICENCE. The subdomain is also the half of the DNS whose Resend DKIM key is live — the apex's is revoked — so it is the address that can both receive and reply.
A tunnel test is on the trail, and an IPv6-only peering works
The trail records the VPN peerings too
Security: the scripts were not the last unchecked files
Security: say when the chart job runs, now that a release PR always charts
Document the fixed scoped-user name and how to remove it
Document the org-level least-privilege rule and the provided/required/redundant panel (#313)
Connecting a cluster + Security: SQL Server scoped login (#203)
Security: style-src differs under vite dev, and why
Security: style-src carries no unsafe-inline either
Security: the dashboard's CSP, and why style-src is the one relaxation
Security: how the audit gate is itself checked, and the exception list is empty now
Security: the signed-in scan, and the backfill's third guard The ZAP section now records what the scan actually does rather than what it was going to do: it signs in, and it needed a browser spider because the dashboard's pages contain no href at all. 13 URLs to 87. The one alert signing in added is TanStack Router's reload guard in sessionStorage, which was checked rather than assumed. Plans and policy gains the reason the backfill only moves organizations off FREE: without that guard, anything that wrote the plan column without the timestamp — a test, a hand-run UPDATE — looked unchosen and would have been silently downgraded.
Security page (ASVS 5.0 L2 review), and the plan a new org lands on The security review #21 asked for: what CI checks and why the audit gate is not `npm audit`, the ZAP scan's scope, the response headers on both servers, and ASVS chapter by chapter — including what is deliberately not done and the one gap (#134, the dashboard's CSP). Plans and policy gains the DEFAULT_ORG_PLAN section: what a new org lands on now that something reads the variable (#132), why the column lost its DDL default, and the backfill for installs whose orgs predate the fix.