No description
- Python 85.4%
- HTML 12.6%
- CSS 1.1%
- Shell 0.5%
- JavaScript 0.3%
- Other 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Les pièces déposées par la commande sont des images qu'elle génère : elles passent par l'analyseur de test, le temps du remplissage et pour ce seul processus. En préproduction, clamav injoignable faisait échouer le seeding. Co-Authored-By: Claude <noreply@anthropic.com> |
||
| .github/workflows | ||
| .semgrep | ||
| assets | ||
| config | ||
| deploy | ||
| docs | ||
| sacadoc | ||
| scripts | ||
| static | ||
| templates | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| Dockerfile | ||
| manage.py | ||
| package-lock.json | ||
| package.json | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
Sacadoc v2
Gestion des inscriptions, des dossiers et des camps du Mouvement des Flambeaux. Réécriture complète de l'ancien Sacadoc (fork de Noethysweb), avec la sécurité des données de santé de mineurs comme première priorité.
- Architecture, sécurité, RGPD, comptabilité, roadmap :
docs/ - Déploiement :
deploy/README.md
Démarrer en local
Prérequis : uv et Node.js (pour le CSS). PostgreSQL est optionnel : sans DATABASE_URL, un PostgreSQL embarqué démarre dans var/.
uv sync # dépendances Python (Python 3.14 téléchargé si besoin)
npm ci && npm run build # CSS + scripts vendorisés (aucun CDN)
uv run python scripts/bootstrap_dev.py # .env et clé maîtresse de dev dans .secrets/
uv run python manage.py migrate
uv run python manage.py createcachetable
uv run python manage.py runserver
Pour utiliser le PostgreSQL de dev partagé, ajouter dans .env :
DATABASE_URL=postgresql://devuser:devpassword@dev-postgres:5432/devdb
Premier admin : créer un compte sur /compte/signup/ (le code de vérification s'affiche dans la console), puis :
uv run python manage.py bootstrap_national --name "Mouvement des Flambeaux" --admin-email vous@example.org
L'interface équipe (/equipe/) exige ensuite d'activer la double authentification.
Tests et contrôles
uv run pytest # toute la suite tourne sous le rôle applicatif, donc sous la RLS
uv run ruff check . && uv run ruff format --check .
uv run bandit -c pyproject.toml -r sacadoc config -x '*/migrations/*'
Règles du dépôt (extrait de docs/SECURITY.md)
- Jamais de données de production sur un poste de dev ni dans un outil d'IA. Les données de test sont synthétiques.
- Toute vue hérite de
PublicView,FamilyViewouStaffView(sacadoc/core/access.py). Un test échoue sinon. - Les modèles sensibles se lisent via
.for_family(user)ou.for_staff(user). Une requête non scopée lève une erreur. - Toute nouvelle table sensible a ses politiques RLS dans sa migration, et ses tests dans
tests/test_rls.py. - Les valeurs sensibles utilisent
EncryptedTextField/EncryptedJSONField(sacadoc/core/fields.py). - Pas de
|safe, pas demark_safe, pas defields = "__all__", pas de SQL formaté (règles semgrep dans.semgrep/).