chore: decommission ScanA11y (sa-core scanner, both vhosts, LDAP tenant, mail + nb references) #243
Labels
No labels
bug
enhancement
in-progress
needs-info
needs-triage
p0
ready-for-agent
ready-for-human
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/nixos#243
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Retire ScanA11y across the fleet: the sa-core scanner on
web-arm, both nginx vhosts, thedc=scana11y,dc=comLDAP tenant onmail, and the leftover references onnb. Scanning capability ends outright — no replacement, and the (dead) pa11y/a11ywatch dashboards that would have been the obvious replacement go with it.Decided in a design review on 2026-07-30; scope, sequencing and accepted risks below are settled, not open questions.
Repo changes — one PR, merge held (see gate)
web-arm
hosts/web-arm/modules/sa-core.nix(theservices.sa-coremodule: monthly timer/service per instance, userscana11y_com,sops.secrets.sa-core-mailpw)hosts/web-arm/modules/scana11y.nix(the only instance:wohnservice-wien.at, monthly, report to dominik.polakovics@cloonar.com)hosts/web-arm/pkgs/sa-core.nixand drop thesa-coreline fromhosts/web-arm/overlays/packages.nixhosts/web-arm/sites/scana11y.com.nixandhosts/web-arm/sites/stage.scana11y.com.nix; drop both imports fromhosts/web-arm/sites/default.nixhosts/web-arm/configuration.nix: drop both module imports, the now-pointless "comment out for first build" note above them (it existed only because sa-core built from the privateScanA11y/sa-corerepo at eval time), and the commented-out# ./modules/a11ywatch.nixhosts/web-arm/modules/pa11y.nixandhosts/web-arm/modules/a11ywatch.nix— byte-identical duplicates, neither importedmail
hosts/mail/modules/openldap.nix: drop{ suffix = "dc=scana11y,dc=com"; }fromtenants. Rewrite the index comment to state the real rule (lib.imap1 (i: mkTenant (i + 2))→ index = position + 2, so{03}–{06}after removal) instead of patching the numbers: the existing comment claims{03} {04} {06} {08} {09}, which the code has not produced for some time.hosts/mail/modules/dovecot.nix: drop thedoveadm user *@scana11y.comsync blockvirtual_mailbox_domainsis LDAP-driven, so mail acceptance stops on its ownnb / shared
hosts/nb/users/dominik.nix: remove theoffice@scana11y.comThunderbird accountutils/home-manager/development/default.nix: remove theScanA11y/sa-coreclone linehosts/nb/users/configs/project_history.json: remove thescana11y/sa-coreentry (leave the wohnservice entries — unrelated project)Deliberately untouched
hosts/web-arm/secrets.yaml—sa-core-mailpwis removed by hand viasops(see checklist)docs/adr/0016— its SPF-domain list mentions scana11y.com as a historical recordMerge gate (human, on mail, before merge)
All tenants share one LMDB environment (CONTEXT.md:26), so dropping an
olcDatabaseleaves its entries on disk but unreachable —dc=optiprot,dc=euanddc=ghetto,dc=atare already in that state. To avoid a third orphan, purge the subtree while the tenant is still served:Only then merge. Merging deploys to web-arm, mail and nb within ~5 min via bento.
Post-deploy cleanup (host state NixOS will not remove)
rm -rf /var/www/scana11y.com /var/www/stage.scana11y.com(includes all report PDFs)userdel/groupdelscana11y_comandstage_scana11y_com— orphaned UIDs can otherwise be handed to a future site userrm -rf /var/lib/acme/scana11y.com /var/lib/acme/stage.scana11y.comdocker rmi cloonar/sa-core:v0.1.3— docker itself stays enabled,modules/rustdesk.nixalso setsvirtualisation.docker.enablerm /var/lib/rspamd/dkim/scana11y.com.*— rspamd signs from a per-domain templated path, so the key file is host state with no repo referencenix-shell -p sops --run 'sops hosts/web-arm/secrets.yaml'→ removesa-core-mailpwgit.cloonar.com/ScanA11y/sa-coreonce nothing references itAccepted risks
*@scana11y.comand the LDAP entries are deleted, not exported. Report PDFs are deleted;https://scana11y.com/reportslinks in already-sent reports will die./var/lib/openldap/slapd.dturns out to be mutable rather than regenerated from the Nixsettingson start, the next tenant appended after this lands on the index scana11y vacated and could inherit its staleolcDatabase. Worth aslapcat -n0 | grep olcDatabasecheck at some point.Validation
.forgejo/workflows/deploy.ymlonly runs on push tomainand does not build; the PR-timeverify.ymlwas removed (still referenced in itspaths-ignore), so the pre-commit hook is the only in-repo dry-build gate. If no dry-build check appears on the PR, run./scripts/test-configuration web-arm,mailandnbfrom a nix-capable checkout before merging —nbbecauseutils/counts as a shared path.