ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment les développeurs de logiciels configurent le contexte de dépôt et les fichiers d'exclusion dans Supermaven pour gérer l'indexation et la confidentialité du code

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.

L'ingénierie logicielle moderne assistée par intelligence artificielle repose largement sur une compréhension contextuelle approfondie. Alors que les premiers moteurs de complétion de code fonctionnaient uniquement à partir d'heuristiques de tokens locaux ou de courts fragments de préfixes et suffixes, les outils de pointe exploitent désormais de vastes fenêtres de contexte pour analyser les modèles d'architecture, les bibliothèques personnalisées, les dépendances de projet et les relations multi-fichiers à travers l'ensemble des dépôts. Supermaven s'est imposé comme une référence du secteur dans ce domaine en associant une fenêtre de contexte de 1 million de tokens à une latence de complétion inférieure à 200 millisecondes, propulsée par son architecture neuronale sur mesure. Toutefois, accorder à un agent IA une visibilité globale sur une base de code introduit des défis critiques de sécurité et de conformité : la propriété intellectuelle exclusive, les secrets de configuration de production, les clés cryptographiques privées et les données sensibles des clients ne doivent en aucun cas être ingérés, transmis ou mis en cache de manière involontaire.

Configurer Supermaven pour concilier une analyse riche de la base de code et une stricte confidentialité des données exige de comprendre ses mécanismes d'indexation du contexte, ses politiques de gouvernance des données et les leviers de configuration disponibles selon les environnements de développement intégrés (IDE). Dans la mesure où Supermaven n'intègre pas de fichier d'exclusion universel à la racine à la manière des systèmes de contrôle de version classiques, les développeurs doivent adopter une stratégie de configuration par couches — associant des règles d'exclusion au niveau de l'éditeur, l'initialisation conditionnelle des plugins, le découpage des espaces de travail et une hygiène rigoureuse des dépôts — afin de contrôler avec précision le code indexé et transmis.


La mécanique architecturale du contexte de dépôt dans Supermaven

Pour gérer efficacement le contexte d'un dépôt, les équipes d'ingénierie doivent d'abord comprendre comment Supermaven élabore son modèle conceptuel d'un projet et où se situent les frontières de données entre le matériel local et les points de terminaison d'inférence dans le cloud.

┌──────────────────────────────────────────────────────────────────────────┐
│              Architecture de Contexte et de Confidentialité Supermaven   │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Environnement Local du Développeur                                      │
│  ┌────────────────────────────────────────────────────────────────────┐  │
│  │ Espace de Travail Actif / Dépôt                                    │  │
│  │  ├── Fichiers sources (*.ts, *.py, *.go) ──> [Surveillance locale] │  │
│  │  ├── Fichiers sensibles (.env, *.key)    ──> [Filtres d'exclusion] │  │
│  │  └── Buffers ouverts de l'éditeur        ──> [Synchro des buffers] │  │
│  └───────────────────────────────────┬────────────────────────────────┘  │
│                                      │ Payload de contexte filtré        │
│                                      ▼ (HTTPS / TLS 1.3)                 │
│  Infrastructure Cloud de Supermaven (AWS)                                │
│  ┌────────────────────────────────────────────────────────────────────┐  │
│  │ Agrégateur de Contexte de 1 Million de Tokens                      │  │
│  │  ├── Modélisation de séquences à longue portée (Moteur Babble)     │  │
│  │  ├── Alignement sémantique multi-fichiers rapide                   │  │
│  │  └── Génération de complétion du token suivant en < 200 ms         │  │
│  └───────────────────────────────────┬────────────────────────────────┘  │
│                                      │                                   │
│  Garde-fous de Confidentialité et de Rétention                           │
│  ┌───────────────────────────────────┴────────────────────────────────┐  │
│  │ • Rétention absolue des données de 7 jours (purge automatique)     │  │
│  │ • Garantie stricte de zéro entraînement (code jamais réutilisé)    │  │
│  │ • Isolation des modèles tiers (moteur inline uniquement)           │  │
│  └────────────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────────────┘

Agrégation de contexte et fenêtre de 1 million de tokens

Contrairement aux intégrations traditionnelles de Language Server Protocol (LSP) qui calculent les arbres syntaxiques abstraits (AST) sur le processeur local du développeur, Supermaven utilise un pipeline d'indexation natif du cloud :

  1. Ingestion locale des fichiers : Dès l'ouverture d'un dossier de projet, l'extension Supermaven configure des observateurs du système de fichiers pour détecter les ressources du projet, évaluer la structure du dépôt et surveiller les buffers ouverts.
  2. Assemblage de contexte en continu (streaming) : À mesure que les développeurs naviguent et modifient les fichiers, le client synchronise la position du curseur, l'historique récent des modifications et les modules connexes du projet au sein d'une charge utile de contexte agrégée.
  3. Inférence de contexte long dans le cloud : Le contexte agrégé est transmis en continu vers les serveurs d'inférence haute performance de Supermaven hébergés sur Amazon Web Services (AWS). Le modèle y traite jusqu'à 1 000 000 de tokens de contexte de la base de code afin de proposer des complétions en ligne reflétant fidèlement les interfaces inter-modules, les définitions de types personnalisées et les conventions idiomatiques des frameworks.
  4. Restitution en moins de 200 ms : En s'affranchissant de l'évaluation neuronale locale, Supermaven limite l'utilisation de la batterie et le bruit des ventilateurs sur les ordinateurs portables des développeurs, tout en atteignant des vitesses de complétion quasi instantanées.

Le défi opérationnel provient du fait que l'observateur de fichiers et le synchroniseur de buffers du client analysent, par défaut, l'ensemble des fichiers accessibles à la racine de l'espace de travail, à moins que les développeurs ne définissent délibérément des limites.


Cadre de confidentialité de Supermaven : Comprendre la politique relative au code

Avant de modifier les fichiers de configuration de l'IDE, les développeurs et les responsables de la sécurité doivent comprendre les protections juridiques et techniques garanties par la Supermaven Code Policy et la Privacy Policy.

┌──────────────────────────────────────────────────────────────────────────────────┐
│             Classification et Traitement des Données Supermaven                  │
├────────────────────────────┬─────────────────────────────────────────────────────┤
│ Catégorie de Données       │ Traitement Technique et Politique de Rétention      │
├────────────────────────────┼─────────────────────────────────────────────────────┤
│ Données de Code            │ • Code source téléversé via les plugins officiels.  │
│ (Code Data)                │ • Soumises à une limite stricte de rétention de 7   │
│                            │   jours.                                            │
│                            │ • Purgées automatiquement des systèmes internes     │
│                            │   d'AWS.                                            │
│                            │ • JAMAIS utilisées pour entraîner ou affiner des    │
│                            │   modèles commerciaux.                              │
│                            │ • Jamais partagées avec des tiers non autorisés.    │
├────────────────────────────┼─────────────────────────────────────────────────────┤
│ Données Supermaven Chat    │ • Prompts et code soumis explicitement dans le chat.│
│                            │ • Transmis à des fournisseurs tiers sélectionnés    │
│                            │   (ex. : Anthropic, OpenAI) selon le modèle choisi. │
│                            │ • Régis par les conditions du fournisseur tiers.    │
├────────────────────────────┼─────────────────────────────────────────────────────┤
│ Données de Compte et       │ • Adresses e-mail, adresses IP, identifiants de     │
│ Télémétrie                 │   facturation.                                      │
│                            │ • Traitées selon les directives de la politique de  │
│                            │   confidentialité standard.                         │
│                            │ • Stockées de manière totalement indépendante des   │
│                            │   dépôts de code.                                   │
└────────────────────────────┴─────────────────────────────────────────────────────┘

La règle de rétention éphémère de 7 jours

Supermaven établit une distinction nette entre les métadonnées de compte utilisateur et le code source propriétaire :

Complétion en ligne versus chat interactif

Il existe une distinction majeure entre la complétion de code en ligne et Supermaven Chat :


Configuration des fichiers ignore et du périmètre de dépôt dans Neovim

Les développeurs sous Neovim adoptent fréquemment Supermaven via le plugin officiel supermaven-nvim en raison de sa légèreté et de sa réactivité. Toutefois, la configuration de l'exclusion de fichiers dans Neovim nécessite une attention particulière au schéma de configuration du plugin.

Cycle de vie des buffers dans Neovim avec Supermaven :

  [Fichier ouvert dans le buffer]
           │
           ▼
  [Vérifier `condition()`] ──── Renvoie false ───> [Supermaven arrêté / Aucun trafic réseau]
           │
       Renvoie true
           │
           ▼
  [Vérifier `ignore_filetypes`] ── Correspond à ignore ──> [Suggestions masquées / UI supprimée]
           │                                                                 │
       Non ignoré                                                            ▼
           │                                            *Note : le buffer peut encore se synchroniser*
           ▼
  [Complétions en ligne actives]

1. Suppression basique par type de fichier avec ignore_filetypes

L'option de configuration la plus simple dans supermaven-nvim est la table ignore_filetypes. Ce paramètre indique au plugin de ne pas afficher de suggestions de complétion lors de l'édition de formats de fichiers spécifiques :

-- ~/.config/nvim/lua/plugins/supermaven.lua (ou init.lua)
require("supermaven-nvim").setup({
  keymaps = {
    accept_suggestion = "<Tab>",
    clear_suggestion = "<C-]>",
    accept_word = "<C-j>",
  },
  ignore_filetypes = {
    env = true,          -- Masquer les suggestions dans les fichiers .env
    markdown = true,     -- Masquer dans la documentation et les notes
    text = true,         -- Fichiers texte brut
    yaml = true,         -- Éviter l'autocomplétion sur les configs Kubernetes/CI
    json = true,         -- Schémas de configuration et manifestes de paquets
    sql = true,          -- Requêtes de base de données et migrations
    gitcommit = true,    -- Messages de commit Git
  },
  color = {
    suggestion_color = "#888888",
    cterm = 244,
  },
  disable_inline_completion = false,
  disable_keymaps = false,
})

2. Le piège de la transmission de buffer et les garde-fous avancés de condition()

Une nuance technique essentielle identifiée par les développeurs soucieux de la sécurité est que ignore_filetypes supprime principalement le rendu visuel des suggestions en ligne dans l'interface de l'éditeur. Dans certaines versions du client de serveur de langage, les buffers de fichiers chargés en mémoire peuvent tout de même être interceptés par le démon d'arrière-plan.

Pour garantir que les fichiers confidentiels et les répertoires sensibles soient totalement isolés du processus Supermaven, les développeurs doivent utiliser le callback condition(). La fonction condition() est évaluée dynamiquement avant que Supermaven n'interagisse avec un buffer :

require("supermaven-nvim").setup({
  -- Portier dynamique : renvoyer false pour arrêter complètement Supermaven sur le buffer
  condition = function()
    local filepath = vim.api.nvim_buf_get_name(0)
    
    -- Exclure les fichiers sans chemin (buffers temporaires)
    if filepath == "" then
      return true
    end

    -- 1. Exclure les fichiers d'environnement sensibles et les secrets
    if string.match(filepath, "%.env") 
       or string.match(filepath, "credentials")
       or string.match(filepath, "secrets/")
       or string.match(filepath, "/%.aws/")
       or string.match(filepath, "/%.ssh/") then
      return false
    end

    -- 2. Exclure les certificats cryptographiques et les clés
    if string.match(filepath, "%.pem$")
       or string.match(filepath, "%.key$")
       or string.match(filepath, "%.crt$") then
      return false
    end

    -- 3. Exclure des projets propriétaires spécifiques ou dossiers sous conformité stricte
    if string.match(filepath, "/work/proprietary%-fintech/")
       or string.match(filepath, "/client%-classified/") then
      return false
    end

    -- 4. Exclure les charges de données trop volumineuses ou ressources compilées
    local file_size = vim.fn.getfsize(filepath)
    if file_size > 1048576 then -- Limite de 1 Mo
      return false
    end

    return true
  end,
})

3. Contrôle programmatique via les Autocommands

Pour une sécurité absolue (isolation physique/air-gapped) lors de l'ouverture de clés privées ou de dépôts soumis à des contraintes réglementaires, les développeurs peuvent appeler directement l'API programmatique de Supermaven dans des autocommands Neovim :

-- Forcer l'arrêt de Supermaven lors d'événements de buffers sensibles
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
  pattern = { "*.env", "*.env.*", "*/secrets/*", "*.pem", "*.key" },
  callback = function()
    pcall(function()
      require("supermaven-nvim.api").stop()
    end)
  end,
})

-- Réactiver Supermaven lors de l'accès à des fichiers sources approuvés
vim.api.nvim_create_autocmd({ "BufEnter" }, {
  pattern = { "*.ts", "*.tsx", "*.js", "*.py", "*.go", "*.rs", "*.cpp" },
  callback = function()
    local filepath = vim.api.nvim_buf_get_name(0)
    if not string.match(filepath, "%.env") and not string.match(filepath, "secrets/") then
      pcall(function()
        require("supermaven-nvim.api").start()
      end)
    end
  end,
})

Configuration des limites d'indexation dans Visual Studio Code

Dans Visual Studio Code, Supermaven fonctionne comme une extension communiquant via le protocole de serveur de langage. Étant donné que Supermaven ne lit pas de fichier .supermavenignore spécifique à la racine du projet, les développeurs gèrent le périmètre d'indexation au moyen des règles natives d'exclusion de fichiers de VS Code, des paramètres d'espace de travail et du fichier .gitignore.

┌───────────────────────────────────────────────────────────────────────────┐
│               Hiérarchie d'exclusion de contexte dans VS Code             │
├───────────────────────────────────────────────────────────────────────────┤
│                                                                           │
│   Paramètres Utilisateur (Global ~/.config/Code/User/settings.json)       │
│     └── Exclut les clés personnelles, dossiers SSH et identifiants globaux│
│                                                                           │
│   Paramètres de l'Espace de Travail (.vscode/settings.json)               │
│     └── Exclut les secrets de projet, fichiers d'environnement et builds  │
│                                                                           │
│   Fichier .gitignore du Projet                                            │
│     └── Hygiène standard du dépôt ; respectée par les outils d'indexation │
│                                                                           │
│   Périmètre d'activation de l'extension                                   │
│     └── Désactiver totalement Supermaven pour les projets confidentiels   │
│                                                                           │
└───────────────────────────────────────────────────────────────────────────┘

1. Configuration de l'espace de travail (.vscode/settings.json)

Pour empêcher Supermaven et les outils d'indexation associés d'analyser les fichiers de configuration sensibles, ajoutez des modèles d'exclusion explicites au fichier .vscode/settings.json de votre projet :

{
  "files.exclude": {
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true,
    "**/Thumbs.db": true,
    "**/.env*": true,
    "**/secrets/**": true,
    "**/*.pem": true,
    "**/*.key": true,
    "**/*.p12": true,
    "**/node_modules": true,
    "**/dist": true,
    "**/build": true,
    "**/coverage": true
  },
  "search.exclude": {
    "**/node_modules": true,
    "**/dist": true,
    "**/build": true,
    "**/.env*": true,
    "**/secrets/**": true
  },
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true,
    "**/.env*": true,
    "**/secrets/**": true
  }
}

Pourquoi files.watcherExclude est essentiel

La directive files.watcherExclude est cruciale pour les assistants de programmation IA. Lorsque des fichiers sont exclus de l'observateur de fichiers de l'éditeur, le processus d'indexation d'arrière-plan de l'extension ne reçoit pas les notifications de modification du système de fichiers, évitant ainsi la synchronisation accidentelle de tokens confidentiels.

2. Désactivation de l'extension au niveau de l'espace de travail

Lorsque l'on travaille pour plusieurs organisations ou que l'on alterne entre des projets open source et des bases de code d'entreprise propriétaires, les paramètres globaux s'avèrent souvent insuffisants. Les développeurs doivent pouvoir activer ou désactiver Supermaven par espace de travail :

  1. Ouvrez le projet confidentiel dans VS Code.
  2. Ouvrez la palette de commandes (Ctrl+Maj+P sous Linux/Windows, Cmd+Maj+P sous macOS).
  3. Saisissez et sélectionnez Extensions: Disable (Workspace).
  4. Recherchez Supermaven et appuyez sur Entrée.

Cela garantit l'arrêt complet du binaire du client de langage pour cette instance de l'espace de travail, bloquant toute indexation en arrière-plan, tout trafic réseau et toute transmission de télémétrie.

Segmentation des espaces de travail :

[Projet Open Source Standard]      ──> Supermaven activé (Contexte de 1M actif)
[Dépôt d'outils internes]          ──> Supermaven activé (Exclusions via settings.json)
[Monorepo fintech propriétaire]    ──> Supermaven désactivé au niveau du workspace (Air-Gapped)

Configuration dans les IDEs JetBrains

Les développeurs utilisant IntelliJ IDEA, WebStorm, PyCharm ou d'autres IDEs JetBrains interagissent avec Supermaven par le biais du plugin JetBrains Marketplace. JetBrains met à disposition des mécanismes natifs pour restreindre l'inspection de code et l'indexation IA.

1. Scopes et répertoires exclus

  1. Faites un clic droit sur tout dossier contenant des données sensibles (ex. : config/secrets, infra/credentials).
  2. Sélectionnez Mark Directory as -> Excluded.
  3. Les répertoires exclus sont retirés de l'inspection de code, de l'indexation des symboles et des pipelines de complétion.

2. Ignorer des types de fichiers

Pour empêcher JetBrains et les extensions de complétion tierces d'analyser les fichiers de configuration :

  1. Rendez-vous dans Settings / Preferences -> Editor -> File Types.
  2. Repérez Ignored Files and Folders.
  3. Ajoutez les motifs sensibles :
    *.env;*.pem;*.key;*.p12;secrets;credentials;
    
  4. Cliquez sur Apply.

La transition vers Cursor et le support natif de .cursorignore

En novembre 2024, l'équipe de Supermaven a rejoint Cursor, et la technologie sous-jacente de contexte long (notamment l'architecture d'inférence personnalisée et la modélisation de séquences multi-fichiers) a été intégrée au moteur d'autocomplétion natif de Cursor (« Cursor Tab »). Pour les développeurs migrant de Supermaven autonome vers l'éditeur Cursor, la gestion du contexte de dépôt et de la confidentialité devient beaucoup plus fine grâce au support natif de .cursorignore.

Utilisation de .cursorignore

Contrairement à Supermaven autonome, Cursor prend en charge nativement un fichier .cursorignore à la racine du projet, suivant la syntaxe de motifs standard de .gitignore. Tout fichier ou répertoire correspondant à .cursorignore est totalement exclu de l'indexation en arrière-plan de la base de code, des embeddings sémantiques et de la constitution de la fenêtre de contexte :

# .cursorignore - À placer à la racine du projet

# 1. Fichiers d'environnement et identifiants
.env*
*.pem
*.key
*.cert
*.p12
credentials.json
service-account.json

# 2. Répertoires de secrets et de conformité
secrets/
private/
compliance/
certs/

# 3. Dépendances tierces et sorties de build
node_modules/
vendor/
dist/
build/
.next/
target/

# 4. Fichiers volumineux hors code et dumps de bases de données
*.sql
*.sqlite
*.dump
*.csv
*.parquet
dataset/

Mode Confidentialité de Cursor (Privacy Mode)

En complément de .cursorignore, les développeurs opérant dans des environnements aux exigences de conformité strictes peuvent activer le Privacy Mode dans Cursor :


Bonnes pratiques pour la confidentialité du code dans les flux assistés par IA

Configurer des fichiers ignore et adapter les paramètres de l'éditeur ne constitue qu'un volet d'une démarche de sécurité rigoureuse. Les équipes de développement doivent établir des procédures opérationnelles standard minimisant les risques dès la conception.

┌──────────────────────────────────────────────────────────────────────────┐
│             Défense en profondeur pour la sécurité du code avec l'IA     │
├──────────────────────────────────────────────────────────────────────────┤
│  Niveau 1 : Gestion des secrets                                          │
│  • Éliminer les identifiants codés en dur ; injecter les secrets à      │
│    l'exécution.                                                          │
│                                                                          │
│  Niveau 2 : Hygiène du dépôt (.gitignore et .cursorignore)               │
│  • S'assurer que les fichiers sensibles sont ignorés par défaut dans Git.│
│                                                                          │
│  Niveau 3 : Délimitation dans l'éditeur (VS Code settings / Neovim)      │
│  • Bloquer la surveillance et la transmission de buffers sur les chemins.│
│                                                                          │
│  Niveau 4 : Segmentation réseau et des espaces de travail                │
│  • Désactiver les extensions dans les projets sous contraintes de        │
│    conformité.                                                           │
│                                                                          │
│  Niveau 5 : Vérification des engagements des fournisseurs                │
│  • Auditer la rétention de 7 jours et les garanties de zéro entraînement.│
└──────────────────────────────────────────────────────────────────────────┘

1. Remplacer les secrets dans les fichiers par des variables d'environnement à l'exécution

La solution la plus sûre pour empêcher un outil d'IA de lire un secret consiste à s'assurer que ce dernier n'existe jamais sous forme de fichier texte brut dans le répertoire de travail.

2. Vérifier l'authenticité des extensions officielles

La Supermaven Code Policy stipule explicitement que les garanties de rétention de 7 jours et de zéro entraînement s'appliquent uniquement lorsque les développeurs utilisent les extensions officielles référencées depuis supermaven.com. Les forks tiers, wrappers communautaires non officiels ou adaptations non vérifiées peuvent communiquer avec des serveurs non contrôlés ou manquer d'isolation adéquate. Vérifiez toujours la signature des éditeurs :

3. Surveiller les indicateurs de la barre d'état

Tant dans VS Code que dans JetBrains, Supermaven affiche un indicateur dans la barre d'état en bas à droite. Cet élément offre une visibilité directe sur :

Un clic sur l'indicateur de la barre d'état permet aux développeurs d'interrompre immédiatement les suggestions si un buffer non autorisé est ouvert.


Matrice comparative : Méthodes de configuration de la confidentialité

Le tableau comparatif suivant synthétise les différentes méthodes disponibles pour administrer le contexte de dépôt et la confidentialité avec Supermaven selon les environnements :

Méthode de configurationEnvironnement cible principalGarantie de confidentialitéComplexité de mise en œuvrePrincipal mode de défaillance
ignore_filetypesNeovim (supermaven-nvim)Partielle (Supprime les suggestions UI ; le buffer peut se synchroniser)Faible (Simple table dans la config Lua)Supposer que le silence de l'interface équivaut à une isolation réseau
Callback condition()Neovim (supermaven-nvim)Forte (Bloque complètement l'activation du plugin par buffer)Moyenne (Requiert une logique de correspondance en Lua)Erreurs de syntaxe regex ou variantes de chemins de fichiers non gérées
Autocmd api.stop()Neovim (supermaven-nvim)Très forte (Arrête le processus du plugin sur les fichiers sensibles)Moyenne (Nécessite des autocommands Neovim)Oubli de relancer le plugin lors d'un changement de buffer
files.exclude et watcherExcludeVS Code (settings.json)Forte (Exclut les fichiers de l'arborescence et des observateurs)Faible (Configuration JSON standard)Ne s'applique pas si le développeur ouvre manuellement le fichier
Désactivation d'extension par workspaceVS Code / JetBrainsAbsolue (Le binaire de l'extension n'est pas chargé pour l'espace)Très faible (Bascule UI via la palette de commandes)Doit être configuré manuellement pour chaque nouveau dépôt
.cursorignoreCursor (Technologie Supermaven)Absolue (Exclusion déterministe au niveau du moteur)Faible (Syntaxe standard de .gitignore)Oubli de sous-dossiers imbriqués ou erreurs de wildcards
Injection externe de secretsUniverselle (Tous environnements)Absolue (Aucun secret en texte brut n'existe sur le disque)Moyenne (Nécessite des outils comme Doppler ou Vault)Le développeur contourne le flux et crée manuellement un .env

Guide pratique de mise en œuvre par étapes

Pour concrétiser ces recommandations, suivez ce guide étape par étape lors de l'intégration d'un projet manipulant des données sensibles :

Étape 1 : Auditer le dépôt à la recherche d'actifs sensibles

Parcourez l'arborescence du projet pour détecter tout fichier d'identifiants, fichier .env, certificat ou jeu de données propriétaire :

find . -maxdepth 3 -name "*.env*" -o -name "*.pem" -o -name "*.key" -o -name "*secret*"

Étape 2 : Établir une hygiène rigoureuse du contrôle de version

Vérifiez que tous les fichiers identifiés sont renseignés dans le .gitignore :

# .gitignore
.env
.env.local
.env.production
*.pem
*.key
secrets/

Étape 3 : Configurer les garde-fous spécifiques à l'éditeur

Si vous utilisez VS Code :

Créez ou mettez à jour .vscode/settings.json :

{
  "files.exclude": {
    "**/.env*": true,
    "**/secrets/**": true,
    "**/*.pem": true,
    "**/*.key": true
  },
  "files.watcherExclude": {
    "**/.env*": true,
    "**/secrets/**": true
  }
}

Si vous utilisez Neovim :

Ajoutez le filtrage de chemins dans la configuration de supermaven-nvim :

require("supermaven-nvim").setup({
  condition = function()
    local filepath = vim.api.nvim_buf_get_name(0)
    if string.match(filepath, "%.env") or string.match(filepath, "secrets/") then
      return false
    end
    return true
  end,
})

Si vous utilisez Cursor :

Créez un fichier .cursorignore à la racine du projet :

.env*
secrets/
*.pem
*.key

Étape 4 : Valider le statut actif

Ouvrez votre éditeur et effectuez les vérifications suivantes :

  1. Ouvrez un fichier source standard (ex. : src/index.ts). Vérifiez que les suggestions en ligne s'affichent normalement.
  2. Ouvrez un fichier sensible (ex. : .env). Vérifiez que la barre d'état indique Supermaven désactivé ou en pause, ou qu'aucune suggestion en ligne n'est générée.
  3. Analysez les exigences de conformité de votre organisation pour déterminer si la désactivation au niveau du workspace ou la gestion des secrets à l'exécution est requise pour une garantie maximale.

Conclusion

La fenêtre de contexte de 1 million de tokens de Supermaven apporte des gains de productivité substantiels en offrant des complétions de code rapides et contextuellement adaptées aux bases de code complexes. Néanmoins, garder le contrôle sur l'indexation du code et sur la propriété intellectuelle requiert une démarche de configuration rigoureuse. Comme Supermaven ne repose pas sur un fichier .supermavenignore autonome, les développeurs doivent exploiter l'ensemble des leviers disponibles : utiliser les callbacks condition() et les commandes d'arrêt programmatique dans Neovim, paramétrer files.exclude et watcherExclude dans VS Code, désactiver les extensions dans les espaces de travail confidentiels et migrer vers .cursorignore le cas échéant.

En associant ces garde-fous au niveau de l'éditeur aux engagements contractuels de rétention de 7 jours et de zéro entraînement de Supermaven, complétés par une gestion moderne des secrets à l'exécution, les équipes d'ingénierie peuvent exploiter pleinement la rapidité de l'autocomplétion par IA sans exposer leur code source propriétaire ni leurs identifiants de sécurité critiques.