8792ffb8a4d8bcf4f8c9cddd7caee690decd6614
- ConsentLog.user_id: nullable=True + ondelete='SET NULL' for Loi 25 art. 28.1
right-to-erasure (audit row survives user deletion, user_id nulled out).
Matches existing pattern in auth_log.py / access_log.py.
- Add ConsentLog.@validates('consent_type') to reject typos at ORM level
(silent typos in audit data are very hard to detect later).
- Rename User.totp_secret -> totp_secret_encrypted (size 64->255 for Fernet
envelope). Self-documenting contract: never assign plaintext to this column.
- init_db.py: drop NOT NULL from totp_enabled migration string for consistency
with every other Boolean column in the file (model-side nullable=False is
sufficient).
- Docs: User class docstring updated to reflect MFA/billing/ordre context;
webauthn_credentials shape documented; version column policy documented.
- Tests: cleaner IntegrityError catch; add survives_user_deletion test
(right-to-erasure); add rejects_invalid_consent_type test (validator).
DictIA — Transcription Audio par IA
Application de transcription audio propulsee par l'intelligence artificielle. Transformez vos enregistrements en texte structure avec identification des locuteurs, resumes automatiques et recherche semantique.
Fonctionnalites
- Transcription automatique avec diarisation (identification des locuteurs)
- Resumes et points d'action generes par IA
- Recherche semantique dans vos transcriptions (mode Inquire)
- Interface web moderne (PWA installable)
- Support multilingue (francais, anglais, allemand, espagnol, russe, chinois)
- Gestion des dossiers, tags et partage
- Conformite Loi 25 (Quebec) — journal d'audit integre
- 100% auto-heberge — vos donnees restent chez vous
Documentation
Licence
AGPL-3.0 — voir LICENSE. Base sur le projet open source Speakr par Murtaza Nasir.
Copyright (C) 2026 InnovA AI
Languages
Python
41.2%
HTML
36.1%
JavaScript
18.9%
CSS
3.3%
Shell
0.4%