## Configuration

---

### Présentation des profils

---

Le Rainbow CLI NG utilise un système de **profils** pour gérer vos accès Rainbow. Chaque profil stocke :

- La méthode d'authentification utilisée
- Les identifiants (application ID, secrets, email…)
- L'URL de la plateforme cible (production, sandbox…)

Les profils sont enregistrés dans `~/.rainbow-cli-config.json`. Les secrets (mots de passe, clés secrètes) sont stockés de manière sécurisée dans le **trousseau du système d'exploitation** : Keychain sur macOS, Secret Service sur Linux, Windows Credential Manager sur Windows.

### Créer un profil

---

```bash
rbw config create-profile
```

Un assistant interactif vous guide pas à pas. Vous choisissez un nom de profil puis une méthode d'authentification parmi les trois disponibles.

### Méthodes d'authentification

---

#### API_KEY

Authentification par clé API avec signature HMAC. Nécessite :

- `apiKey` — votre clé API Rainbow
- `applicationId` — l'identifiant de votre application
- `applicationSecret` — le secret de votre application

```bash
rbw config create-profile
# → Choisissez la méthode : API_KEY
```

#### RAINBOW

Authentification avec vos identifiants Rainbow (email + mot de passe). Nécessite :

- `loginEmail` — votre adresse email Rainbow
- `password` — votre mot de passe Rainbow
- `applicationId` — l'identifiant de votre application
- `applicationSecret` — le secret de votre application

```bash
rbw config create-profile
# → Choisissez la méthode : RAINBOW
```

#### OAUTH

Authentification OAuth 2.0 via le navigateur (Authorization Code Flow). Nécessite :

- `applicationId` — l'identifiant de votre application
- `applicationSecret` — le secret de votre application

Un navigateur s'ouvre automatiquement pour la connexion. Le refresh token est stocké et renouvelé automatiquement.

```bash
rbw config create-profile
# → Choisissez la méthode : OAUTH
```

### Gérer les profils

---

#### Afficher le profil actif

```bash
rbw config show-profile
```

#### Basculer vers un autre profil

```bash
rbw config set-profile <nom>
```

#### Afficher un profil spécifique

```bash
rbw config show-profile <nom>
```

#### Mettre à jour un profil

```bash
rbw config update-profile <nom>
```

#### Supprimer un profil

```bash
rbw config delete-profile <nom>
```

### Utiliser un profil pour une seule commande

---

L'option globale `--profile` permet de spécifier un profil pour une commande unique, sans modifier le profil actif :

```bash
rbw --profile production user:list
rbw --profile sandbox app:list
```

Cela est utile pour travailler sur plusieurs environnements (sandbox, production) sans changer de profil à chaque fois.
