Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0b1 - 2025-10-05#
⚠️ Beta Release - Feature complete, ready for testing. API may still change before 1.0.
Added
Multiple user groups support via
MASKED_GROUPSconfigurationEnvironment variable configuration following 12-factor principles
Comprehensive documentation with examples and deployment guides
Changed
Improved documentation structure and clarity
Contributing and changelog docs use RST include directives for single source of truth
Migrated from flake8/black/isort to Ruff for faster, unified linting and formatting
Fixed
ALLOW_CUSTOM_FUNCTIONSsetting now properly controls validationENABLE_LOGGINGsetting now properly controls operation loggingVALIDATE_FUNCTIONSsetting now properly controls function validation in management commandsAPI reference now documents only public-facing functions (
get_anon_setting,validate_anon_extension)
Removed
database_role()context manager - unsafe arbitrary role switching@database_role_required()decorator - potential security riskDirect role manipulation utilities - use
anonymized_data()insteadAUTO_APPLY_RULESsetting - feature was never implemented, removed to avoid confusion
0.1.0-alpha.1 - 2025-09-20#
⚠️ Alpha Release - Initial preview release.
Core Features
Django models:
MaskingRule,MaskingPreset,MaskedRole,MaskingLogManagement commands:
anon_init,anon_apply,anon_status,anon_dump,anon_validate,anon_load_yaml,anon_drop,anon_fix_permissionsMiddleware (
AnonRoleMiddleware) for automatic role switching based on user groupsContext managers (
anonymized_data) for manual controlDecorators (
@use_anonymized_data) for view-level anonymizationClass-based view mixins (
AnonymizedDataMixin)Django admin integration with bulk actions
Pre-built Presets
Django Auth, E-commerce, Healthcare, Finance, Social Media, Education
Security
SQL injection prevention with function validation
Role-based access control
Audit logging
Parameterized queries
Requirements
Python 3.8+
Django 3.2+
PostgreSQL 12+ with Anonymizer extension