Docs/components.json

components.json

Un seul fichier déclare les deux registries : @geekles (public) et @geekles-pro (authentifié). La CLI shadcn résout chaque add à partir d’ici.

1 Les deux registries

Ajoutez le bloc registries à la racine de votre components.json :

components.json
{
  "$schema": "https://ui.shadcn.com/schema.json",
  "registries": {
    "@geekles": {
      "url": "https://ui.geekles.dev/r/{name}.json"
    },
    "@geekles-pro": {
      "url": "https://ui.geekles.dev/r/pro/{name}.json",
      "headers": {
        "Authorization": "Bearer ${GEEKLES_API_KEY}"
      }
    }
  }
}

Vous installez ensuite par namespace : @geekles/map-fr (OSS) ou @geekles-pro/cadastre-layer (Pro).

2 Le header Authorization

Le registry Pro est gaté : chaque requête doit porter Authorization: Bearer ${GEEKLES_API_KEY}. shadcn lit la syntaxe ${...} et substitue la variable d’environnement à l’exécution — votre clé n’est jamais écrite en dur dans le fichier.

Le registry OSS, lui, n’a pas de header

@geekles est public et sans clé — il peut être écrit sous forme courte (juste l’URL) ou longue (objet url).

3 La variable d’environnement

Définissez GEEKLES_API_KEY dans votre environnement (shell ou .env.local) avant de lancer un add Pro :

.env.local
GEEKLES_API_KEY=geekles_live_xxx
Ne committez jamais votre clé

Gardez .env.local dans votre .gitignore. La clé reste dans l’environnement, jamais dans le repo ni dans components.json.

4 Le 403 custom

Si la clé est absente, invalide ou expirée, le registry Pro renvoie un 403 avec un message actionnable, affiché tel quel par la CLI :

403 Forbidden
{
  "error": "Unauthorized",
  "message": "Abonnement expiré. Renouvelez sur geekles.dev/billing"
}
Le code déjà installé continue de tourner

Seul l’add de nouveaux composants Pro est bloqué. Le détail du flux est sur la page Pricing.