j/k naviguer • Ctrl+Home début

📋 Sommaire

📋 Projet

Nom MY-IA v3.0
Description Chatbot RAG avec FastAPI
Identifiant 0b0a68a8-b60e-4d24-b5bd-2df45d868bb2
Chemin DEMO - MY-IA

📋 Périmètre de l'audit

Langages html, javascript, python
Extensions scannées python: .py
javascript: .js, .jsx, .ts, .tsx, .mjs
html: .html, .htm, .xhtml, .shtml, .vue, .svelte, .ejs, .hbs, .njk, .jinja, .jinja2, .twig, .liquid, .mustache, .phtml, .erb, .jsp, .asp, .aspx, .cshtml
Dossiers analysés app/ UI-FRONT/ UI-BACK/ UI-SHARED/
Patterns exclus node_modules/ vendor/ .venv/ __pycache__/ alembic/ *.min.js *.bundle.js alembic/
Mode Complet
Catégorie filtrée tous
Règles désactivées aucun
Catégories ✓ Sécurité (×3) ✓ Architecture (×2) ✓ Interface (×1) ✓ Expérience utilisateur (×1) ✓ Maintenance (×1)

⚙️ Options CLI

--quick Mode rapide — sécurité uniquement
--fail-on-high Exit code 1 si vulnérabilités HIGH détectées
--validate-fixtures Validation des fixtures (exit code 2 si invalides)
--with-database Audit du schéma PostgreSQL activé
--skip-tests Tests unitaires désactivés
--skip-deps Scans de dépendances désactivés
--skip-cicd Audit des pipelines CI/CD désactivé
--debug Journalisation debug (niveaux : info, detail, trace)
--debug-format=text Format de sortie debug (text ou json NDJSON)
--verbose Mode verbose (détails supplémentaires)
--only-category Exécution limitée à une seule catégorie
--disable-rule Règles spécifiques désactivées
--script-lang fr Langue de la console
--report-lang fr Langue du rapport
--output DEMO - MY-IA/docs/audit-reports Dossier de sortie personnalisé
--sarif Export SARIF 2.1.0 (GitHub Code Scanning, GitLab SAST)
--sbom Génération SBOM CycloneDX (inventaire des dépendances)
--retention-dry-run Aperçu du nettoyage des rapports sans suppression
--git-blame Résoudre l'auteur git pour chaque finding
--demo Rapport démo sanitisé (aucune donnée sensible)

📊 Visualisation ↑ Sommaire

Répartition par Sévérité

Problèmes par Catégorie

Code Métier vs Dépendances

🧪 Tests Unitaires

🔬 Validation Fixtures

⏱️ Temps d'analyse

📦 Dépendances

🗄️ Schéma Base de Données

📈 Évolution des Problèmes

HIGH / MEDIUM / LOW sur 10 audits

🧪 Évolution des Tests

Taux de succès et nombre de tests

🗄️ Évolution du Schéma

Tables, colonnes et changements sur 10 audits

⏱️ Évolution des temps

Temps total sur les 10 derniers audits

📋 Résumé ↑ Sommaire

96
Critiques (CRITICAL)
116
Importants (HIGH)
348
Mineurs (LOW)
39
Bonnes Pratiques Vérifiées
559
📦 Code métier
1
🔗 Dépendances
93.6%
🧪 Tests (1805)
100.0%
🔬 Fixtures (222)
146.16s
⏱️ Durée de l'audit

Score de Santé Global : 9%

Top 10 Fichiers Problématiques

path_to/sources.html XX
path_to/conversations.js XX
path_to/index.html XX
path_to/streaming.js XX
path_to/service.py XX
path_to/service.py XX
path_to/draggable.js XX
path_to/llm.js XX
path_to/upload.js XX
path_to/user-form.html XX

🧪 Tests Unitaires ↑ Sommaire

1689
Réussis
40
Échoués
76
Erreurs
0
Ignorés
93.6%
Taux de réussite

❌ Tests échoués :

test_***
test_***
test_***
test_***
test_***
test_***
test_***
test_***
test_***
test_***

⚠️ Tests en erreur :

test_***
test_***
test_***
test_***
test_***
test_***
test_***
test_***
test_***
test_***

⏱️ Durée d'exécution : 0.0s

🔬 Validation des Fixtures ↑ Sommaire

Chaque règle de détection est testée contre deux types de fichiers de test (fixtures) : les fixtures vulnérables contiennent un pattern de sécurité connu et doivent déclencher une détection, tandis que les fixtures clean contiennent du code sain et ne doivent déclencher aucune alerte. Cette section mesure la fiabilité de chaque règle.

Toutes les fixtures sont correctement détectées
115/115 vulnérables détectés, 107/107 clean validés
115
Vrais positifs
Fixtures vulnérables correctement détectées par la règle
107
Vrais négatifs
Fixtures clean correctement ignorées (aucune fausse alerte)
0
Faux négatifs
Fixtures vulnérables non détectées (échec de détection)
0
Faux positifs
Fixtures clean signalées à tort (fausse alerte)
🧪

Détail des 222 fixtures testées

Fixture Type Règle attendue Statut
batch_quer... Clean ------ ✓ Clean (attendu)
button_wit... Clean ------ ✓ Clean (attendu)
button_wit... Clean ------ ✓ Clean (attendu)
class_mani... Clean ------ ✓ Clean (attendu)
correct_ta... Clean ------ ✓ Clean (attendu)
db_in_serv... Clean ------ ✓ Clean (attendu)
debug_fals... Clean ------ ✓ Clean (attendu)
destructiv... Clean ------ ✓ Clean (attendu)
django_cle... Clean ------ ✓ Clean (attendu)
env_aws_ke... Clean ------ ✓ Clean (attendu)
env_github... Clean ------ ✓ Clean (attendu)
event_list... Clean ------ ✓ Clean (attendu)
exposed_te... Clean ------ ✓ Clean (attendu)
express_cl... Clean ------ ✓ Clean (attendu)
file_short... Clean ------ ✓ Clean (attendu)
flask_clea... Clean ------ ✓ Clean (attendu)
focus_outl... Clean ------ ✓ Clean (attendu)
hardcoded_... Clean ------ ✓ Clean (attendu)
http_local... Clean ------ ✓ Clean (attendu)
https_url.... Clean ------ ✓ Clean (attendu)
img_with_a... Clean ------ ✓ Clean (attendu)
input_with... Clean ------ ✓ Clean (attendu)
insecure_c... Clean ------ ✓ Clean (attendu)
insecure_l... Clean ------ ✓ Clean (attendu)
ldap_java_... Clean ------ ✓ Clean (attendu)
ldap_pytho... Clean ------ ✓ Clean (attendu)
local_time... Clean ------ ✓ Clean (attendu)
missing_au... Clean ------ ✓ Clean (attendu)
missing_ch... Clean ------ ✓ Clean (attendu)
missing_cs... Clean ------ ✓ Clean (attendu)
missing_he... Clean ------ ✓ Clean (attendu)
missing_mo... Clean ------ ✓ Clean (attendu)
missing_se... Clean ------ ✓ Clean (attendu)
modern_api... Clean ------ ✓ Clean (attendu)
no_autopla... Clean ------ ✓ Clean (attendu)
normal_com... Clean ------ ✓ Clean (attendu)
path_trave... Clean ------ ✓ Clean (attendu)
path_trave... Clean ------ ✓ Clean (attendu)
path_trave... Clean ------ ✓ Clean (attendu)
path_trave... Clean ------ ✓ Clean (attendu)
pii_in_tes... Clean ------ ✓ Clean (attendu)
pinned_com... Clean ------ ✓ Clean (attendu)
pinned_csp... Clean ------ ✓ Clean (attendu)
pinned_pac... Clean ------ ✓ Clean (attendu)
pinned_pom... Clean ------ ✓ Clean (attendu)
pinned_pyp... Clean ------ ✓ Clean (attendu)
pinned_req... Clean ------ ✓ Clean (attendu)
privilege_... Clean ------ ✓ Clean (attendu)
protected_... Clean ------ ✓ Clean (attendu)
query_in_s... Clean ------ ✓ Clean (attendu)
safe_deser... Clean ------ ✓ Clean (attendu)
safe_excep... Clean ------ ✓ Clean (attendu)
safe_file_... Clean ------ ✓ Clean (attendu)
safe_impor... Clean ------ ✓ Clean (attendu)
safe_no_ev... Clean ------ ✓ Clean (attendu)
sample_cic... Clean ------ ✓ Clean (attendu)
sample_csh... Clean ------ ✓ Clean (attendu)
sample_dat... Clean ------ ✓ Clean (attendu)
sample_dep... Clean ------ ✓ Clean (attendu)
sample_dep... Clean ------ ✓ Clean (attendu)
sample_dep... Clean ------ ✓ Clean (attendu)
sample_dep... Clean ------ ✓ Clean (attendu)
sample_doc... Clean ------ ✓ Clean (attendu)
sample_fro... Clean ------ ✓ Clean (attendu)
sample_git... Clean ------ ✓ Clean (attendu)
sample_har... Clean ------ ✓ Clean (attendu)
sample_har... Clean ------ ✓ Clean (attendu)
sample_jav... Clean ------ ✓ Clean (attendu)
sample_mfa... Clean ------ ✓ Clean (attendu)
sample_mfa... Clean ------ ✓ Clean (attendu)
sample_mfa... Clean ------ ✓ Clean (attendu)
sample_mfa... Clean ------ ✓ Clean (attendu)
sample_mfa... Clean ------ ✓ Clean (attendu)
sample_orm... Clean ------ ✓ Clean (attendu)
sample_orm... Clean ------ ✓ Clean (attendu)
sample_php... Clean ------ ✓ Clean (attendu)
sample_pii... Clean ------ ✓ Clean (attendu)
sample_sve... Clean ------ ✓ Clean (attendu)
sample_vue... Clean ------ ✓ Clean (attendu)
secret_exa... Clean ------ ✓ Clean (attendu)
secret_in_... Clean ------ ✓ Clean (attendu)
secret_mas... Clean ------ ✓ Clean (attendu)
secret_not... Clean ------ ✓ Clean (attendu)
secure_aut... Clean ------ ✓ Clean (attendu)
secure_coo... Clean ------ ✓ Clean (attendu)
secure_coo... Clean ------ ✓ Clean (attendu)
secure_coo... Clean ------ ✓ Clean (attendu)
secure_ran... Clean ------ ✓ Clean (attendu)
secure_ses... Clean ------ ✓ Clean (attendu)
server_sid... Clean ------ ✓ Clean (attendu)
specific_e... Clean ------ ✓ Clean (attendu)
sql_parame... Clean ------ ✓ Clean (attendu)
sql_static... Clean ------ ✓ Clean (attendu)
ssrf_cshar... Clean ------ ✓ Clean (attendu)
ssrf_java_... Clean ------ ✓ Clean (attendu)
ssrf_javas... Clean ------ ✓ Clean (attendu)
ssrf_php_c... Clean ------ ✓ Clean (attendu)
ssrf_pytho... Clean ------ ✓ Clean (attendu)
strong_cry... Clean ------ ✓ Clean (attendu)
toast_erro... Clean ------ ✓ Clean (attendu)
toast_tran... Clean ------ ✓ Clean (attendu)
unbounded_... Clean ------ ✓ Clean (attendu)
unencrypte... Clean ------ ✓ Clean (attendu)
unreviewed... Clean ------ ✓ Clean (attendu)
validated_... Clean ------ ✓ Clean (attendu)
xss_with_i... Clean ------ ✓ Clean (attendu)
xss_with_t... Clean ------ ✓ Clean (attendu)
autoplay_m... Vulnérable ------ ✓ Détecté (attendu)
button_no_... Vulnérable ------ ✓ Détecté (attendu)
catch_all_... Vulnérable ------ ✓ Détecté (attendu)
client_sid... Vulnérable ------ ✓ Détecté (attendu)
console_lo... Vulnérable ------ ✓ Détecté (attendu)
create_ele... Vulnérable ------ ✓ Détecté (attendu)
dangerous_... Vulnérable ------ ✓ Détecté (attendu)
db_in_rout... Vulnérable ------ ✓ Détecté (attendu)
debug_mode... Vulnérable ------ ✓ Détecté (attendu)
deprecated... Vulnérable ------ ✓ Détecté (attendu)
destructiv... Vulnérable ------ ✓ Détecté (attendu)
django_vul... Vulnérable ------ ✓ Détecté (attendu)
dom_in_loo... Vulnérable ------ ✓ Détecté (attendu)
dynamic_im... Vulnérable ------ ✓ Détecté (attendu)
event_list... Vulnérable ------ ✓ Détecté (attendu)
exposed_te... Vulnérable ------ ✓ Détecté (attendu)
express_vu... Vulnérable ------ ✓ Détecté (attendu)
file_too_l... Vulnérable ------ ✓ Détecté (attendu)
fixme_comm... Vulnérable ------ ✓ Détecté (attendu)
flask_vuln... Vulnérable ------ ✓ Détecté (attendu)
focus_outl... Vulnérable ------ ✓ Détecté (attendu)
hack_comme... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
hardcoded_... Vulnérable ------ ✓ Détecté (attendu)
homebrew_a... Vulnérable ------ ✓ Détecté (attendu)
http_witho... Vulnérable ------ ✓ Détecté (attendu)
img_no_alt... Vulnérable ------ ✓ Détecté (attendu)
input_no_l... Vulnérable ------ ✓ Détecté (attendu)
insecure_c... Vulnérable ------ ✓ Détecté (attendu)
insecure_c... Vulnérable ------ ✓ Détecté (attendu)
insecure_c... Vulnérable ------ ✓ Détecté (attendu)
insecure_c... Vulnérable ------ ✓ Détecté (attendu)
insecure_c... Vulnérable ------ ✓ Détecté (attendu)
insecure_c... Vulnérable ------ ✓ Détecté (attendu)
insecure_l... Vulnérable ------ ✓ Détecté (attendu)
insecure_r... Vulnérable ------ ✓ Détecté (attendu)
ldap_injec... Vulnérable ------ ✓ Détecté (attendu)
ldap_injec... Vulnérable ------ ✓ Détecté (attendu)
local_time... Vulnérable ------ ✓ Détecté (attendu)
missing_au... Vulnérable ------ ✓ Détecté (attendu)
missing_ch... Vulnérable ------ ✓ Détecté (attendu)
missing_cs... Vulnérable ------ ✓ Détecté (attendu)
missing_he... Vulnérable ------ ✓ Détecté (attendu)
missing_mo... Vulnérable ------ ✓ Détecté (attendu)
missing_se... Vulnérable ------ ✓ Détecté (attendu)
n1_query.p... Vulnérable ------ ✓ Détecté (attendu)
path_trave... Vulnérable ------ ✓ Détecté (attendu)
path_trave... Vulnérable ------ ✓ Détecté (attendu)
path_trave... Vulnérable ------ ✓ Détecté (attendu)
path_trave... Vulnérable ------ ✓ Détecté (attendu)
pii_in_tes... Vulnérable ------ ✓ Détecté (attendu)
positive_t... Vulnérable ------ ✓ Détecté (attendu)
predictabl... Vulnérable ------ ✓ Détecté (attendu)
privilege_... Vulnérable ------ ✓ Détecté (attendu)
query_in_r... Vulnérable ------ ✓ Détecté (attendu)
race_condi... Vulnérable ------ ✓ Détecté (attendu)
sample_cic... Vulnérable ------ ✓ Détecté (attendu)
sample_csh... Vulnérable ------ ✓ Détecté (attendu)
sample_dat... Vulnérable ------ ✓ Détecté (attendu)
sample_dep... Vulnérable ------ ✓ Détecté (attendu)
sample_dep... Vulnérable ------ ✓ Détecté (attendu)
sample_dep... Vulnérable ------ ✓ Détecté (attendu)
sample_dep... Vulnérable ------ ✓ Détecté (attendu)
sample_doc... Vulnérable ------ ✓ Détecté (attendu)
sample_fro... Vulnérable ------ ✓ Détecté (attendu)
sample_git... Vulnérable ------ ✓ Détecté (attendu)
sample_har... Vulnérable ------ ✓ Détecté (attendu)
sample_har... Vulnérable ------ ✓ Détecté (attendu)
sample_jav... Vulnérable ------ ✓ Détecté (attendu)
sample_mfa... Vulnérable ------ ✓ Détecté (attendu)
sample_mfa... Vulnérable ------ ✓ Détecté (attendu)
sample_mfa... Vulnérable ------ ✓ Détecté (attendu)
sample_mfa... Vulnérable ------ ✓ Détecté (attendu)
sample_mfa... Vulnérable ------ ✓ Détecté (attendu)
sample_orm... Vulnérable ------ ✓ Détecté (attendu)
sample_orm... Vulnérable ------ ✓ Détecté (attendu)
sample_php... Vulnérable ------ ✓ Détecté (attendu)
sample_pii... Vulnérable ------ ✓ Détecté (attendu)
sample_sve... Vulnérable ------ ✓ Détecté (attendu)
sample_vue... Vulnérable ------ ✓ Détecté (attendu)
secret_log... Vulnérable ------ ✓ Détecté (attendu)
secret_log... Vulnérable ------ ✓ Détecté (attendu)
sql_inject... Vulnérable ------ ✓ Détecté (attendu)
sql_inject... Vulnérable ------ ✓ Détecté (attendu)
ssrf_cshar... Vulnérable ------ ✓ Détecté (attendu)
ssrf_java.... Vulnérable ------ ✓ Détecté (attendu)
ssrf_javas... Vulnérable ------ ✓ Détecté (attendu)
ssrf_php.p... Vulnérable ------ ✓ Détecté (attendu)
ssrf_pytho... Vulnérable ------ ✓ Détecté (attendu)
style_inli... Vulnérable ------ ✓ Détecté (attendu)
svg_inline... Vulnérable ------ ✓ Détecté (attendu)
toast_erro... Vulnérable ------ ✓ Détecté (attendu)
toast_hard... Vulnérable ------ ✓ Détecté (attendu)
toast_not_... Vulnérable ------ ✓ Détecté (attendu)
todo_comme... Vulnérable ------ ✓ Détecté (attendu)
unbounded_... Vulnérable ------ ✓ Détecté (attendu)
unencrypte... Vulnérable ------ ✓ Détecté (attendu)
unpinned_c... Vulnérable ------ ✓ Détecté (attendu)
unpinned_c... Vulnérable ------ ✓ Détecté (attendu)
unpinned_p... Vulnérable ------ ✓ Détecté (attendu)
unpinned_p... Vulnérable ------ ✓ Détecté (attendu)
unpinned_r... Vulnérable ------ ✓ Détecté (attendu)
unprotecte... Vulnérable ------ ✓ Détecté (attendu)
unreviewed... Vulnérable ------ ✓ Détecté (attendu)
unsafe_des... Vulnérable ------ ✓ Détecté (attendu)
unvalidate... Vulnérable ------ ✓ Détecté (attendu)
verbose_ex... Vulnérable ------ ✓ Détecté (attendu)
vulnerable... Vulnérable ------ ✓ Détecté (attendu)
vulnerable... Vulnérable ------ ✓ Détecté (attendu)
vulnerable... Vulnérable ------ ✓ Détecté (attendu)
weak_crypt... Vulnérable ------ ✓ Détecté (attendu)
xss_innerh... Vulnérable ------ ✓ Détecté (attendu)

📦 Dépendances ↑ Sommaire

37
Analysées
0
Vulnérables
1
Non verrouillées
36
OK
⚠️
Avertissements
  • pip-auditDEMO - MY-IA/requirements.txt : ERROR: No matching distribution found for unstructured==0.15.13
    Dépendance incompatible avec la version Python du .venv d'audit. Le scan CVE a été interrompu.
    → Mettre à jour la dépendance vers une version compatible, ou exécuter pip-audit avec une version Python compatible avec le projet.
Problèmes détectés
  • 🔴 Dépendance non verrouilléerequirements.txt:1
    fastapi
    Une dépendance sans version fixée peut installer silencieusement des versions vulnérables.
    → Fixer les versions exactes dans requirements.txt (package==x.y.z) ou package-lock.json.

🗄️ Schéma Base de Données ↑ Sommaire

31
Tables
290
Colonnes
67
Index
2
Enums
+0
Ajouts
-0
Suppressions
~0
Modifiés
100%
Stabilité

📋 Matrice de conformité ISO 27001 ↑ Sommaire

Cette matrice indique quels contrôles de l'Annexe A sont testables par analyse statique de code. Elle ne certifie pas la conformité complète à ISO 27001 — les contrôles organisationnels, physiques et procéduraux nécessitent une évaluation séparée.

Couverture Annexe A 44/93 contrôles couverts (47%)

📋 Couverture globale

📊 Couverture par thème

🕸️ Profil de maturité

📊 Statut des contrôles

🏢 Contrôles organisationnels (A.5) 10/37

Contrôle Nom Statut Règles Findings
A.5.1 Policies for information security Couvert 1
A.5.10 Acceptable use of information and other associated assets Non applicable 0
A.5.11 Return of assets Non applicable 0
A.5.12 Classification of information Non applicable 0
A.5.13 Labelling of information Non applicable 0
A.5.14 Information transfer Problèmes détectés 1 1
A.5.15 Access control Couvert 1
A.5.16 Identity management Non applicable 0
A.5.17 Authentication information Non applicable 0
A.5.18 Access rights Couvert 1
A.5.19 Information security in supplier relationships Non applicable 0
A.5.2 Information security roles and responsibilities Non applicable 0
A.5.20 Addressing information security within supplier agreements Non applicable 0
A.5.21 Managing information security in the ICT supply chain Problèmes détectés 5 1
A.5.22 Monitoring, review and change management of supplier services Non applicable 0
A.5.23 Information security for use of cloud services Couvert 1
A.5.24 Information security incident management planning and preparation Non applicable 0
A.5.25 Assessment and decision on information security events Non applicable 0
A.5.26 Response to information security incidents Non applicable 0
A.5.27 Learning from information security incidents Non applicable 0
A.5.28 Collection of evidence Non applicable 0
A.5.29 Information security during disruption Non applicable 0
A.5.3 Segregation of duties Non applicable 0
A.5.30 ICT readiness for business continuity Non applicable 0
A.5.31 Legal, statutory, regulatory and contractual requirements Non applicable 0
A.5.32 Intellectual property rights Couvert 1
A.5.33 Protection of records Couvert 1
A.5.34 Privacy and protection of PII Problèmes détectés 2 42
A.5.35 Independent review of information security Non applicable 0
A.5.36 Compliance with policies, rules and standards for information security Non applicable 0
A.5.37 Documented operating procedures Couvert 1
A.5.4 Management responsibilities Non applicable 0
A.5.5 Contact with authorities Non applicable 0
A.5.6 Contact with special interest groups Non applicable 0
A.5.7 Threat intelligence Non applicable 0
A.5.8 Information security in project management Non applicable 0
A.5.9 Inventory of information and other associated assets Non applicable 0

👥 Contrôles relatifs aux personnes (A.6) 0/8

Contrôle Nom Statut Règles Findings
A.6.1 Screening Non applicable 0
A.6.2 Terms and conditions of employment Non applicable 0
A.6.3 Information security awareness, education and training Non applicable 0
A.6.4 Disciplinary process Non applicable 0
A.6.5 Responsibilities after termination or change of employment Non applicable 0
A.6.6 Confidentiality or non-disclosure agreements Non applicable 0
A.6.7 Remote working Non applicable 0
A.6.8 Information security event reporting Non applicable 0

🏗️ Contrôles physiques (A.7) 0/14

Contrôle Nom Statut Règles Findings
A.7.1 Physical security perimeters Non applicable 0
A.7.10 Storage media Non applicable 0
A.7.11 Supporting utilities Non applicable 0
A.7.12 Cabling security Non applicable 0
A.7.13 Equipment maintenance Non applicable 0
A.7.14 Secure disposal or re-use of equipment Non applicable 0
A.7.2 Physical entry Non applicable 0
A.7.3 Securing offices, rooms and facilities Non applicable 0
A.7.4 Physical security monitoring Non applicable 0
A.7.5 Protecting against physical and environmental threats Non applicable 0
A.7.6 Working in secure areas Non applicable 0
A.7.7 Clear desk and clear screen Non applicable 0
A.7.8 Equipment siting and protection Non applicable 0
A.7.9 Security of assets off-premises Non applicable 0

💻 Contrôles technologiques (A.8) 34/34

Contrôle Nom Statut Règles Findings
A.8.1 User endpoint devices Couvert 1
A.8.10 Information deletion Couvert 1
A.8.11 Data masking Problèmes détectés 1 42
A.8.12 Data leakage prevention Problèmes détectés 16 64
A.8.13 Information backup Couvert 1
A.8.14 Redundancy of information processing facilities Couvert 1
A.8.15 Logging Problèmes détectés 9 45
A.8.16 Monitoring activities Problèmes détectés 1 3
A.8.17 Clock synchronization Problèmes détectés 1 2
A.8.18 Use of privileged utility programs Couvert 1
A.8.19 Installation of software on operational systems Problèmes détectés 2 1
A.8.2 Privileged access rights Couvert 4
A.8.20 Networks security Problèmes détectés 9 21
A.8.21 Security of network services Problèmes détectés 1 19
A.8.22 Segregation of networks Problèmes détectés 1 2
A.8.23 Web filtering Couvert 1
A.8.24 Use of cryptography Problèmes détectés 14 20
A.8.25 Secure development life cycle Problèmes détectés 13 39
A.8.26 Application security requirements Problèmes détectés 61 70
A.8.27 Secure system architecture and engineering principles Couvert 5
A.8.28 Secure coding Problèmes détectés 119 210
A.8.29 Security testing in development and acceptance Problèmes détectés 2 20
A.8.3 Information access restriction Problèmes détectés 9 5
A.8.30 Outsourced development Couvert 1
A.8.31 Separation of development, test and production environments Problèmes détectés 4 2
A.8.32 Change management Couvert 2
A.8.33 Test information Couvert 1
A.8.34 Protection of information systems during audit testing Problèmes détectés 1 2
A.8.4 Access to source code Couvert 1
A.8.5 Secure authentication Couvert 4
A.8.6 Capacity management Couvert 1
A.8.7 Protection against malware Couvert 6
A.8.8 Management of technical vulnerabilities Problèmes détectés 9 1
A.8.9 Configuration management Problèmes détectés 15 1

✅ Bonnes Pratiques Vérifiées ↑ Sommaire

Cette section liste les points positifs détectés par l'audit. Chaque élément représente une bonne pratique de sécurité ou d'architecture vérifiée dans votre code.

🛡️ Sécurité & OWASP — 14 vérification(s) réussie(s)

  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)
  • path_to/router.py: Routes admin protégées par authentification (get_current_admin_user)

🏗️ Architecture & Patterns — 25 vérification(s) réussie(s)

  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/public_router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)
  • path_to/router.py: Aucune logique base de données dans le routeur (séparation des responsabilités)

🔍 Problèmes Détectés ↑ Sommaire

💀

Critiques (CRITICAL) 0 problème(s)

✅ Aucun problème détecté dans cette catégorie.

🚨

Importants (HIGH) 96 problème(s)

📦

Code métier

95
🛡️

Sécurité & OWASP

75
Traversee de repertoire (Python) 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Les chemins de fichiers controles par l'utilisateur permettent la lecture/ecriture de fichiers arbitraires (CWE-22, OWASP A01).

Solution: Valider les chemins ...

Traversee de repertoire (Python) 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Les chemins de fichiers controles par l'utilisateur permettent la lecture/ecriture de fichiers arbitraires (CWE-22, OWASP A01).

Solution: Valider les chemins ...

Traversee de repertoire (Python) 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Les chemins de fichiers controles par l'utilisateur permettent la lecture/ecriture de fichiers arbitraires (CWE-22, OWASP A01).

Solution: Valider les chemins ...

Traversee de repertoire (Python) 🛡️ Sécurité & OWASP path_to/__init__.py:##
--- Detected Source Code ---

Risque: Les chemins de fichiers controles par l'utilisateur permettent la lecture/ecriture de fichiers arbitraires (CWE-22, OWASP A01).

Solution: Valider les chemins ...

Traversee de repertoire (Python) 🛡️ Sécurité & OWASP path_to/__init__.py:##
--- Detected Source Code ---

Risque: Les chemins de fichiers controles par l'utilisateur permettent la lecture/ecriture de fichiers arbitraires (CWE-22, OWASP A01).

Solution: Valider les chemins ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/documents.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/documents.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/documents.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/settings.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/settings.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/settings.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/users.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/validation.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/content-documents.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/content-documents.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/llm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/appearance.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/i18n.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/debug-banner.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/upload.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/progress.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/confirm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/confirm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/confirm.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/user-form.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/message-modal.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/message-modal.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/message-modal.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/toast.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/streaming.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/streaming.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/streaming.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/streaming.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources-selector.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/sources-selector.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/conversations.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/messages.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/messages.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/messages.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/icon-registry.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/config.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/reindex-banner.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

XSS via innerHTML 🛡️ Sécurité & OWASP path_to/reindex-banner.js:##
--- Detected Source Code ---

Risque: La manipulation directe d'innerHTML peut injecter des scripts malveillants.

Solution: Utiliser Templates.r ...

♻️

Maintenance & DRY

20
Test unitaire échoué ♻️ Maintenance & DRY path_to/test_validation_bulk.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_validation_bulk.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_maintenance_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_security_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_ui_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_ui_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_ui_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_ui_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_ui_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire échoué ♻️ Maintenance & DRY path_to/test_ux_rules.py:##
--- Detected Source Code ---

Risque: Les tests échoués indiquent des fonctionnalités cassées.

Solution: Corriger le test ou ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_integration.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_rag_context_flow.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

Test unitaire en erreur ♻️ Maintenance & DRY path_to/test_rag_context_flow.py:##
--- Detected Source Code ---

Risque: Les erreurs de test empêchent une validation correcte.

Solution: Corriger la configur ...

🔗

Dépendances

1
📦

Dépendances

1
Dépendance non verrouillée 📦 Dépendances path_to/requirements.txt:##
--- Detected Source Code ---

Risque: Une dépendance sans version fixée peut installer silencieusement des versions vulnérables.

Solution: Fixer les versions e ...

⚠️

Modérés (MEDIUM) 116 problème(s)

📦

Code métier

116
🛡️

Sécurité & OWASP

66
HTTP sans TLS 🛡️ Sécurité & OWASP path_to/config.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/config.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/ollama.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

HTTP sans TLS 🛡️ Sécurité & OWASP path_to/llamacpp.py:##
--- Detected Source Code ---

Risque: Le trafic HTTP non chiffré peut être intercepté (man-in-the-middle).

Solution: Utiliser HTTPS pour ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/ingest_v2.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/logging.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/types.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/search.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/search.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/search.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/notifier.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/notifier.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/notifier.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/chroma_helpers.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/chroma_helpers.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/chroma_helpers.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Données personnelles loguées 🛡️ Sécurité & OWASP path_to/service.py:##
--- Detected Source Code ---

Risque: Des informations personnelles (email, téléphone, adresse, SSN) écrites dans les logs violent le RGPD Art. 5(1)(f) et risquent une fuite de données (CWE-532).

Solution: Remplacer les donnée ...

Transfert de données non chiffré 🛡️ Sécurité & OWASP path_to/__init__.py:##
--- Detected Source Code ---

Risque: Données envoyées via FTP ou SMTP sans TLS, exposant les identifiants et le contenu en transit (CWE-319).

Solution: Utiliser FTP_TLS (FT ...

Endpoint de test/debug exposé 🛡️ Sécurité & OWASP path_to/router.py:##
--- Detected Source Code ---

Risque: Endpoints de test ou debug (/test, /debug) sans authentification peuvent exposer l'état interne ou permettre l'exfiltration de données (CWE-489).

Solution: Supprimer les endpoi ...

Endpoint de test/debug exposé 🛡️ Sécurité & OWASP path_to/router.py:##
--- Detected Source Code ---

Risque: Endpoints de test ou debug (/test, /debug) sans authentification peuvent exposer l'état interne ou permettre l'exfiltration de données (CWE-489).

Solution: Supprimer les endpoi ...

Adresse IP interne en dur 🛡️ Sécurité & OWASP path_to/security_logger.py:##
--- Detected Source Code ---

Risque: Adresses IP privées (10.x, 192.168.x, 172.16-31.x) codées en dur exposent la topologie réseau interne et cassent entre environnements (CWE-798).

Solution: Utiliser des variabl ...

Adresse IP interne en dur 🛡️ Sécurité & OWASP path_to/security_logger.py:##
--- Detected Source Code ---

Risque: Adresses IP privées (10.x, 192.168.x, 172.16-31.x) codées en dur exposent la topologie réseau interne et cassent entre environnements (CWE-798).

Solution: Utiliser des variabl ...

🏗️

Architecture & Patterns

37
Fichier trop long 🏗️ Architecture & Patterns path_to/models.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/ingest_v2.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/schemas.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Query directe dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les requêtes SQL directes dans les routers compliquent les tests.

Solution: Créer une méthode da ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/crud_router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/crud_router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/crud_router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/crud_router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

Logique DB dans router 🏗️ Architecture & Patterns path_to/crud_router.py:##
--- Detected Source Code ---

Risque: La logique de persistance dans les routers viole la séparation des responsabilités.

Solution: Déplacer vers le Ser ...

🔔

Expérience Utilisateur

10
Input sans label 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Les inputs sans label sont inaccessibles.

Solution: Ajouter un élément l ...

Input sans label 🔔 Expérience Utilisateur path_to/tables.html:##
--- Detected Source Code ---

Risque: Les inputs sans label sont inaccessibles.

Solution: Ajouter un élément l ...

Input sans label 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Les inputs sans label sont inaccessibles.

Solution: Ajouter un élément l ...

Input sans label 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Les inputs sans label sont inaccessibles.

Solution: Ajouter un élément l ...

Input sans label 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Les inputs sans label sont inaccessibles.

Solution: Ajouter un élément l ...

Input sans label 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Les inputs sans label sont inaccessibles.

Solution: Ajouter un élément l ...

Toast erreur éphémère 🔔 Expérience Utilisateur path_to/errors.js:##
--- Detected Source Code ---

Risque: Les erreurs qui disparaissent trop vite empêchent l'utilisateur de comprendre le problème.

Solution: Utiliser persistent: ...

Toast non traduit 🔔 Expérience Utilisateur path_to/toast.js:##
--- Detected Source Code ---

Risque: Le texte hardcodé casse l'internationalisation.

Solution: Utiliser t('cle') po ...

Toast non traduit 🔔 Expérience Utilisateur path_to/toast.js:##
--- Detected Source Code ---

Risque: Le texte hardcodé casse l'internationalisation.

Solution: Utiliser t('cle') po ...

Toast erreur éphémère 🔔 Expérience Utilisateur path_to/toast.js:##
--- Detected Source Code ---

Risque: Les erreurs qui disparaissent trop vite empêchent l'utilisateur de comprendre le problème.

Solution: Utiliser persistent: ...

♻️

Maintenance & DRY

3
Catch-all exception ♻️ Maintenance & DRY path_to/ingest_v2.py:##
--- Detected Source Code ---

Risque: Un except sans type attrape SystemExit et KeyboardInterrupt, masquant les erreurs critiques.

Solution: Utiliser except Exce ...

Catch-all exception ♻️ Maintenance & DRY path_to/service.py:##
--- Detected Source Code ---

Risque: Un except sans type attrape SystemExit et KeyboardInterrupt, masquant les erreurs critiques.

Solution: Utiliser except Exce ...

Catch-all exception ♻️ Maintenance & DRY path_to/router.py:##
--- Detected Source Code ---

Risque: Un except sans type attrape SystemExit et KeyboardInterrupt, masquant les erreurs critiques.

Solution: Utiliser except Exce ...

🔗

Dépendances

0

Aucun problème dans les dépendances.

ℹ️

Mineurs (LOW) 348 problème(s)

📦

Code métier

348
🏗️

Architecture & Patterns

23
Fichier trop long 🏗️ Architecture & Patterns path_to/bootstrap.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/importer.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/repository.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/service.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/context.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/indexer.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/scheduler.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/history.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/web.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/router.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/ollama.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

Fichier trop long 🏗️ Architecture & Patterns path_to/chroma.py:##
--- Detected Source Code ---

Risque: Les fichiers très longs sont difficiles à maintenir et comprendre.

Solution: Découper en modules ...

🎨

Interface & Rendu

203
Style inline JS 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/table-sort.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/users.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/users.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/audit.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/audit.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/audit.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/audit.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-corpus.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-corpus.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-corpus.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-corpus.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-corpus.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/validation.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/validation.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/content-documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-documents.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-logs.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/content-logs.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/modes.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/modes.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/adminApi.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/adminApi.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/adminApi.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/adminApi.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/dom.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/draggable.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/debug-banner.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/progress.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/progress.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/confirm.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/confirm.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/confirm.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/user-form.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/user-form.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/toast.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/conversations.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Style inline JS 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

Style inline JS 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: Les styles inline contournent le système CSS et créent de l'incohérence.

Solution: Utiliser les classes CSS de UI-SHARED/css/components/.

createElement manuel 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/icon-registry.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/config.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/reindex-banner.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

createElement manuel 🎨 Interface & Rendu path_to/reindex-banner.js:##
--- Detected Source Code ---

Risque: La création manuelle du DOM est verbeuse et source d'erreurs.

Solution: Utiliser Templates.render() pour toute génération HTML.

Event listeners non nettoyés 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/documents.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/profile.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/app.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/users.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/audit.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/content-collections.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/content-conversations.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/content-corpus.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/validation.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/content-documents.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/sources.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/content-logs.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/modes.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/llm.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/pagination.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/upload.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/password-reset.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/user-form.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/sources-selector.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

Event listeners non nettoyés 🎨 Interface & Rendu path_to/messages.js:##
--- Detected Source Code ---

Risque: Les event listeners sans nettoyage causent des fuites mémoire.

Solution: Stocker les référenc ...

DOM manipulation dans boucle 🎨 Interface & Rendu path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les mises à jour multiples du DOM en boucle causent des reflows et mauvaises performances.

Solution: Construire la chaîne HTML d'abord, puis une seule affectation innerHTML.

SVG inline HTML 🎨 Interface & Rendu path_to/rejected.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/pending_approval.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/index.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/upload-modal.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/upload-modal.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/upload-modal.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/login-form.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/login-form.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/login-form.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/login-form.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/tables.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/documents.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/documents.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/documents.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

SVG inline HTML 🎨 Interface & Rendu path_to/documents.html:##
--- Detected Source Code ---

Risque: Les SVG inline alourdissent le HTML et sont difficiles à maintenir.

Solution: Utiliser Icons.nomIc ...

🔔

Expérience Utilisateur

117
console.log résiduel 🔔 Expérience Utilisateur path_to/app.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/app.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/logger.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/logger.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/logger.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/logger.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/logger.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/streaming.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/conversations.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/conversations.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/conversations.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/messages.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/config.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

console.log résiduel 🔔 Expérience Utilisateur path_to/templates.js:##
--- Detected Source Code ---

Risque: Les console.log en production exposent des informations de debug.

Solution: Supprimer les consol ...

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/index.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/system.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/documents.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/documents.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/validation.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/validation.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/validation.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/tables.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/tables.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/tables.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/tables.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/tables.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/users.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/modals.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/modals.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/common.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/logs.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/collections.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/corpus.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/audit.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/audit.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/conversations.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/conversations.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/conversations.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/conversations.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/conversations.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/sources.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/user-form.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

Chaîne UI en dur 🔔 Expérience Utilisateur path_to/documents.html:##
--- Detected Source Code ---

Risque: Du texte visible par l'utilisateur est codé en dur dans le code source, ce qui casse l'internationalisation et complique la traduction.

Solution: Externaliser les chaînes dans des fichiers de ressources i18n et utiliser les fonctions de traduction (t(), i18n(), gettext()).

♻️

Maintenance & DRY

5
Monitoring/logging absent ♻️ Maintenance & DRY path_to/router.py:##
--- Detected Source Code ---

Risque: Endpoints API sans logging empêchent la détection d'incidents et l'analyse forensique (CWE-778).

Solution: Ajouter l'import du ...

Monitoring/logging absent ♻️ Maintenance & DRY path_to/router.py:##
--- Detected Source Code ---

Risque: Endpoints API sans logging empêchent la détection d'incidents et l'analyse forensique (CWE-778).

Solution: Ajouter l'import du ...

Monitoring/logging absent ♻️ Maintenance & DRY path_to/router.py:##
--- Detected Source Code ---

Risque: Endpoints API sans logging empêchent la détection d'incidents et l'analyse forensique (CWE-778).

Solution: Ajouter l'import du ...

Heure locale sans fuseau horaire ♻️ Maintenance & DRY path_to/ingest_v2.py:##
--- Detected Source Code ---

Risque: L'utilisation de datetime.now() ou new Date() sans fuseau horaire produit des horodatages incohérents entre serveurs de fuseaux horaires différents (CWE-187).

Solution: Utiliser datetime.no ...

Heure locale sans fuseau horaire ♻️ Maintenance & DRY path_to/router.py:##
--- Detected Source Code ---

Risque: L'utilisation de datetime.now() ou new Date() sans fuseau horaire produit des horodatages incohérents entre serveurs de fuseaux horaires différents (CWE-187).

Solution: Utiliser datetime.no ...

🔗

Dépendances

0

Aucun problème dans les dépendances.

📝

Information (INFO) 0 problème(s)

✅ Aucun problème détecté dans cette catégorie.

📊

Comparaison avec baseline

2026-03-13-09-09
HIGH
96 → 96 ±0
MEDIUM
116 → 116 ±0
LOW
348 → 348 ±0

➕ Nouveaux problèmes (0)

Aucun nouveau problème

✅ Problèmes résolus (0)

Aucun problème résolu

⏱️ SLA par sévérité ↑ Sommaire

👤 Findings par auteur ↑ Sommaire

📖 Lexique ↑ Sommaire

Acronymes et termes techniques utilisés dans ce rapport.

AcronymeSignificationDescription
APIApplication Programming InterfaceInterface de communication entre logiciels.
ARIAAccessible Rich Internet ApplicationsAttributs HTML améliorant l'accessibilité pour les technologies d'assistance.
CORSCross-Origin Resource SharingMécanisme de sécurité contrôlant les requêtes HTTP entre domaines différents.
CSPContent Security PolicyEn-tête HTTP limitant les sources de contenu autorisées sur une page web.
CSRFCross-Site Request ForgeryAttaque forçant un utilisateur authentifié à exécuter des actions non voulues.
CSSCascading Style SheetsLangage de mise en forme et de style des pages web.
CVECommon Vulnerabilities and ExposuresIdentifiant unique pour une vulnérabilité de sécurité connue.
CVSSCommon Vulnerability Scoring SystemSystème de notation de la gravité des vulnérabilités (score de 0 à 10).
CWECommon Weakness EnumerationCatalogue standardisé des types de faiblesses logicielles.
DOMDocument Object ModelReprésentation arborescente d'un document HTML en mémoire.
DRYDon't Repeat YourselfPrincipe de conception évitant la duplication de code.
GDPRGeneral Data Protection RegulationRèglement européen sur la protection des données personnelles (version anglaise du RGPD).
HTMLHyperText Markup LanguageLangage de balisage pour structurer les pages web.
HTTP/HTTPSHyperText Transfer Protocol (Secure)Protocole de communication web. HTTPS ajoute le chiffrement via TLS.
i18nInternationalizationAdaptation d'un logiciel pour supporter plusieurs langues et régions.
ISO 27001ISO/IEC 27001:2022Norme internationale pour les systèmes de management de la sécurité de l'information (SMSI). L'Annexe A définit 93 contrôles répartis en 4 thèmes.
JSJavaScriptLangage de programmation principalement utilisé pour le web.
JSONJavaScript Object NotationFormat léger d'échange de données structurées.
JWTJSON Web TokenJeton d'authentification signé au format JSON, utilisé pour les sessions.
MD5Message Digest 5Algorithme de hachage obsolète et non sécurisé — à ne plus utiliser.
ORMObject-Relational MappingCouche d'abstraction entre le code objet et la base de données relationnelle.
OWASPOpen Web Application Security ProjectRéférentiel mondial de bonnes pratiques de sécurité pour les applications web.
RGPDRèglement Général sur la Protection des DonnéesRèglement européen sur la protection des données personnelles.
SARIFStatic Analysis Results Interchange FormatFormat JSON standardisé (OASIS) pour l'échange de résultats d'analyse statique entre outils et systèmes CI/CD.
SASTStatic Application Security TestingAnalyse de sécurité du code source sans exécution de l'application.
SBOMSoftware Bill of MaterialsInventaire complet des composants logiciels et dépendances d'un projet (format CycloneDX).
SCAStatic Code AuditAbréviation de StaticCodeAudit, l'outil ayant généré ce rapport.
SHA-1Secure Hash Algorithm 1Algorithme de hachage obsolète — vulnérable aux collisions.
SQLStructured Query LanguageLangage de requêtes pour bases de données relationnelles.
SSRFServer-Side Request ForgeryAttaque forçant un serveur à effectuer des requêtes vers des ressources internes.
SVGScalable Vector GraphicsFormat d'image vectorielle pour le web, basé sur XML.
TLSTransport Layer SecurityProtocole de chiffrement des communications réseau (successeur de SSL).
TOCTOUTime-of-Check to Time-of-UseVulnérabilité de type race condition entre la vérification et l'utilisation d'une ressource.
WCAGWeb Content Accessibility GuidelinesDirectives d'accessibilité web du W3C — norme internationale.
XSSCross-Site ScriptingInjection de scripts malveillants dans une page web vue par d'autres utilisateurs.