ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment configurer .codeiumignore et les règles d'exclusion de dépôts dans Codeium

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Les équipes d'ingénierie logicielle qui adoptent des assistants de programmation basés sur l'intelligence artificielle font face à une exigence stricte de conformité : s'assurer que les clés d'API, les certificats privés, les algorithmes propriétaires et les jeux de données de test ne soient jamais indexés ni transmis au cloud, tout en préservant une complétion de code fluide sur le reste du projet. Codeium répond à ce besoin via une architecture de filtrage à plusieurs niveaux combinant les fichiers .codeiumignore à la racine des projets, des exclusions globales sur les postes de travail et des règles de gouvernance centralisées dans la console d'administration d'entreprise.


Le moteur d'indexation de Codeium et les enjeux de sécurité

Pour définir des exclusions pertinentes, il convient de comprendre comment Codeium analyse les référentiels de code :

  1. Reconnaissance du contexte local (Local Context Awareness) : Au sein de l'environnement de développement (VS Code, JetBrains, Windsurf ou Devin Desktop), le service d'indexation local découpe le code selon des frontières sémantiques (classes, fonctions, interfaces) pour générer des plongements vectoriels (embeddings). Lorsqu'un développeur saisit du code ou pose une question, le moteur extrait les fragments pertinents pour enrichir le prompt soumis au modèle.
  2. Indexation distante multi-dépôts (Remote Indexing) : Dans les versions destinées aux entreprises, Codeium indexe les dépôts de manière centralisée côté serveur afin d'offrir une compréhension transverse entre microservices et bibliothèques partagées.
  3. Risques de fuite de données : Sans exclusion explicite, les fichiers d'environnement (.env), les clés privées (.pem), les briques logicielles brevetées et les jeux de données contenant des informations personnelles peuvent être indexés. S'ils sont sélectionnés lors d'une requête sémantique, ces extraits sont directement envoyés au modèle lors de l'inférence.

Les règles d'exclusion empêchent ces chemins sensibles d'entrer dans la chaîne d'indexation dès l'origine.


1. Configuration au niveau du projet : .codeiumignore

Le principal outil pour circonscrire l'indexation d'un projet consiste à déposer un fichier .codeiumignore à la racine de l'espace de travail.

Emplacement et compatibilité

Modèle de configuration .codeiumignore pour la production

Voici une trame éprouvée, adaptée aux exigences des équipes d'ingénierie :

# ==============================================================================
# Secrets, certificats et variables d'environnement
# ==============================================================================
# Fichiers d'environnement local
.env
.env.*
!.env.example

# Clés cryptographiques, certificats et identifiants
*.pem
*.key
*.pkcs12
*.pfx
*.cert
*.crt
id_rsa
id_ecdsa
id_ed25519
credentials.json
service-account*.json
secrets/
config/secrets.yml

# Jetons de fournisseurs cloud et fichiers d'accès
.aws/
.gcp/
.azure/
*token*
*.secret

# ==============================================================================
# Propriété intellectuelle et algorithmes propriétaires
# ==============================================================================
# Moteurs de calcul exclusifs et briques cryptographiques internes
src/core/proprietary_engine/
src/crypto/internal_ciphers/
internal/patented_algorithms/

# Remarque : Décommenter les interfaces publiques si l'autocomplétion des signatures est requise
# !src/core/proprietary_engine/public_interfaces.ts

# ==============================================================================
# Données réglementées, PII et jeux de test volumineux
# ==============================================================================
# Sauvegardes de bases de données et instantanés de test
tests/fixtures/prod_dumps/
tests/data/sanitized_pii/
*.sqlite
*.sqlite3
*.db
*.dump
*.parquet
*.csv.gz

# ==============================================================================
# Artefacts de compilation et dépendances tierces (économie de ressources)
# ==============================================================================
dist/
build/
out/
target/
vendor/
node_modules/
*.min.js
*.min.css
*.wasm

Règles de syntaxe importantes


2. Configuration au niveau du poste de travail : exclusion globale

Pour protéger les dépôts récemment clonés qui ne possèdent pas encore de fichier .codeiumignore versionné, les équipes d'infrastructure peuvent déployer une politique par défaut sur les machines des développeurs.

Emplacement du fichier global

Créez le fichier dans le répertoire utilisateur :

Fonctionnement


3. Gouvernance d'entreprise et exclusion de dépôts sur serveur

Les fichiers de configuration locaux pouvant être modifiés par les développeurs, ils ne sauraient suffire pour satisfaire à des exigences d'audit strictes. Dans les offres d'entreprise (Codeium Enterprise ou Cognition Devin Enterprise), la gouvernance s'exécute depuis la console d'administration.

Liste d'autorisation des dépôts (Connecteurs SCM)

Lors de la connexion aux plateformes de gestion de code (GitHub Enterprise, GitLab Self-Managed, Bitbucket Data Center ou Azure DevOps) :

  1. Autorisation explicite : Les administrateurs sélectionnent expressément les dépôts autorisés à être indexés par l'IA. Tout dépôt non coché demeure totalement exclu du moteur distant.
  2. Filtrage par branche : L'indexation peut être restreinte aux branches maîtresses (main, release/*), ce qui évite que des branches de travail temporaires contenant des identifiants non assainis soient lues.

Contrôle d'accès basé sur les rôles (RBAC) et synchronisation IdP

La récupération de contexte respecte fidèlement les habilitations de chaque ingénieur :

Règles impératives de permissions client

Sur les postes supervisés, les administrateurs peuvent imposer des règles de sécurité non modifiables :

{
  "deny": [
    "Read(~/sensitive-data/**)",
    "Read(/etc/security/**)",
    "Write(.env*)"
  ],
  "ask": [
    "Exec(git push*)"
  ],
  "allow": [
    "Read(~/workspace/standard-repo/**)"
  ]
}

La règle deny verrouille tout accès aux chemins critiques au niveau de l'agent local.


Synthèse des niveaux de contrôle

Une stratégie de défense en profondeur associe plusieurs échelons d'intervention :

Niveau de contrôlePérimètre d'applicationMécanisme techniqueResponsableModifiable par le développeur ?
Exclusion de projetDépôt Git unique.codeiumignore à la racineÉquipe de développementOui (en local)
Exclusion globale posteTous les dépôts de la machine~/.codeium/.codeiumignoreDéveloppeur / Scripts ITOui (en local)
Console d'entrepriseToute l'organisationListe blanche SCM et filtres de branchesAdministrateurs EnterpriseNon
Gestion des accès (RBAC)Contexte multi-dépôtsDroits Git et groupes IdPÉquipe Sécurité / IAMNon
Politiques forcées clientEnvironnement d'exécution localProfils MDM et Team SettingsÉquipes IT / SécuritéNon

Procédure de vérification et diagnostic

Après avoir configuré les règles d'exclusion, il est conseillé de vérifier leur prise en compte :

1. Contrôle des quotas de fichiers et de la mémoire

2. Test d'isolation de l'autocomplétion et du chat

3. Points d'attention pour le dépannage


Bonnes pratiques pour une sécurité en profondeur

Les fichiers d'exclusion constituent une barrière indispensable, mais ils s'inscrivent dans une démarche de sécurité globale :

  1. Bannir les secrets en clair dans les dépôts : Utilisez des gestionnaires spécialisés (HashiCorp Vault, AWS Secrets Manager, Doppler) et transmettez les valeurs au moment de l'exécution par variables d'environnement.
  2. Contrôle pré-commit automatisé : Intégrez des scanners comme Gitleaks ou TruffleHog dans les hooks Git et les pipelines d'intégration continue afin de refuser les commits contenant des identifiants.
  3. Suivre .codeiumignore sous contrôle de version : Validez systématiquement .codeiumignore dans Git pour harmoniser le socle de sécurité de l'ensemble des contributeurs.
  4. Recourir aux contrats de non-rétention (ZDR) et aux déploiements hybrides : Pour les activités réglementées, privilégiez les souscriptions Enterprise garantissant une absence totale de conservation des requêtes (Zero Data Retention) ou des déploiements hybrides où les index vectoriels restent cantonnés au VPC privé de l'entreprise.

Références