ALT-AI applies HMAC-SHA256 pseudonymisation to all personal identifiers by default:
_id — statement IDEntityId — learner/teacher identifierEntityUaiCode — institution codeActivitySessionId — session identifierThe hash is keyed with AFFECTLOG_HASH_SECRET (set in .env).
allow_raw_identifiers defaults to false in all recipes and configs.The CI pipeline runs:
bandit — Python static security analysispip-audit — dependency vulnerability scanningcodeql — GitHub Advanced SecurityAFFECTLOG_HASH_SECRET — must be set in production; never logged or exported.AFFECTLOG_PDC_TOKEN — never logged..env file is git-ignored.Pseudonymisation does not guarantee anonymisation. For small datasets or datasets with rare attribute combinations:
privacy_report.json risk score before publication.