- Lot 1 (S8786, ReDoS) : 5 sites documentes NOSONAR apres preuve empirique (script reproductible docs/redos_probe_s8786.js), aucune reecriture defensive necessaire. - Lot 2 (S2703, variable globale implicite) : bug reel trouve et corrige (SCENE_OBJECT_NAMES en const au lieu de let, cassait la reassignation cross-script depuis scene-editor.js) + test de non-regression ; 4 autres sites confirmes surs et documentes. - Lot 3 (S2486, exceptions avalees) : 6 sites confirmes surs et documentes ; 2 sites (config sprite JSON invalide) corriges avec un console.warn devtools, comportement joueur inchange, couverts par un nouveau test. - Retrait du job CI sonarqube (.gitea/workflows/deploy.yml) et du service prod sonarqube/sonar-postgres (docker-compose.prod.yml) : acces dashboard bloque par des soucis d'infrastructure reseau (WSL2/pare-feu Hyper-V en local, reseau Docker partage avec Caddy pas en place en prod), sans lien avec le code du moteur - mis de cote plutot que de continuer a bloquer sur de l'infra. Les lots 4+ de modernisation JS dependent de scores Sonar exacts et sont donc egalement en pause (voir CODE_QUALITY.md). SKIP=djlint : H021 (styles inline, 49 occurrences) est un backlog deja documente et assume (CODE_QUALITY.md section 6), sur des templates non touches par ce commit - deja exclu de la CI pour la meme raison. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
1.2 KiB
YAML
30 lines
1.2 KiB
YAML
services:
|
|
forge-engine:
|
|
image: ${REGISTRY_IMAGE:?REGISTRY_IMAGE is required}:${IMAGE_TAG:-latest}
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT:-5050}:5050"
|
|
volumes:
|
|
- forge_projects:/app/projects
|
|
# Base des comptes créateurs (auth/connection.py, data/users.db) et
|
|
# clé de session Flask (core/flask_app.py, data/secret_key) —
|
|
# jusqu'ici ni l'un ni l'autre n'était persisté : chaque déploiement
|
|
# (nouveau conteneur) repartait d'un data/ vide, donc d'une base de
|
|
# comptes vide ("premier compte = admin" recommençait à zéro) et
|
|
# d'une nouvelle clé de session (tout le monde déconnecté).
|
|
- forge_data:/app/data
|
|
environment:
|
|
# Réinitialisation de mot de passe par email (voir auth/send_email.py)
|
|
# — laissés vides ici tant qu'ils ne sont pas définis dans le .env du
|
|
# serveur : l'appli continue de fonctionner sans, l'envoi d'email
|
|
# échoue juste silencieusement côté utilisateur (logué côté serveur).
|
|
SMTP_HOST: ${SMTP_HOST:-}
|
|
SMTP_PORT: ${SMTP_PORT:-587}
|
|
SMTP_USER: ${SMTP_USER:-}
|
|
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
|
|
SMTP_FROM: ${SMTP_FROM:-}
|
|
|
|
volumes:
|
|
forge_projects:
|
|
forge_data:
|