# Réglages de Flow, fichier config et dossiers

> Les réglages de Flow (nom, catalogues de composants et de modèles, environnement, sauvegarde, jetons), les lignes du fichier config, l’environnement des flux et les dossiers pour les extensions et les composants locaux.

Framework: flow
Product: Flow (flow@11.1)
Language: fr
Content-SHA256: e2a595bc854e1bba0ae33d262cae8c164e29d5e0bc74c6716d9a74b38717c62c
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Le fichier `config`

Le fichier `config` à la racine de Flow contient les options de l’application. Celles qui comptent :

| Ligne | Signification |
|---|---|
| `name` | le nom affiché par l’application (modifiable dans les réglages) |
| `$api : /fapi/` | l’adresse de l’API JSON |
| `flowstream_worker : fork` | chaque FlowStream s’exécute dans son propre processus |
| `$proxytimeout : 120` | secondes dont un flux dispose pour répondre à une requête HTTP |
| `cookie`, `cookie_secret` | générés au premier démarrage et conservés dans `databases/config.json` |

D’autres options sont lues quand elles existent : `directory` (le dossier des flux ; par défaut `flowstream/` à côté de l’application), `flowstream_memory` (une limite de mémoire par défaut pour les nouveaux flux), `flowstream_sandbox` et `flowstream_asfiles` (transmis à chaque flux), `components` et `templates` (les premières valeurs des catalogues) et `backup`.

## Réglages dans l’application

Le super-administrateur ouvre les réglages et trouve :

- **name** de l’installation ;
- **components** et **components2** : l’adresse du catalogue de composants (un fichier `db.json`, par défaut `https://cdn.totaljs.com/flowstream/webcomponents/db.json`) et un second catalogue facultatif, pour proposer vos propres composants à côté des officiels ;
- **templates** : le catalogue de modèles de flux (par défaut `https://cdn.totaljs.com/flowstream/templates/db.json`) ;
- **env** : `dev`, `test` ou `prod`. Les flux le lisent et le modifier les redémarre tous un par un ;
- **backup** : chaque enregistrement des flux renomme l’ancien `database.json` en un fichier avec la date et la minute, `database_yyyyMMddHHmm.bk` ;
- **token** : le jeton aléatoire pour `/private/` (voir [l’API](/en/flow/manage-flowstreams-with-the-api/)) ;
- **darkmode** et **notify** ;
- **op_reqtoken** et **op_restoken** : les jetons d’un [OpenPlatform](/en/openplatform/how-an-app-connects/) ; quand les deux sont définis, les personnes se connectent avec cet OpenPlatform.

Les plugins peuvent ajouter leurs propres réglages au même formulaire. Le dépôt en inclut un, *Bookmarks*, une liste de composants enregistrés que peuvent utiliser les personnes ayant la permission `bookmarks`.

## Variables

Chaque flux a ses propres **variables** et il existe un ensemble de **variables globales**, tous deux modifiés dans l’éditeur ou avec `Variables|read` et `Variables|save`. Un composant les lit pour éviter de mettre adresses et clés dans le design, et un changement atteint aussitôt les flux en cours d’exécution.

## Composants locaux : `--components--`

Le dossier `--components--` du dépôt contient quelques composants livrés avec l’application : `checkfreespace`, `checklog`, `checkpg`, `checkurl`, `console` et `print`. Le catalogue officiel est bien plus grand, voir [le dépôt des composants](/en/flow/the-components-repository/).

## Extensions

Une extension ajoute quelque chose à l’éditeur de chaque flux. Copiez un fichier `.html` dans le dossier `extensions/` (le dépôt le documente dans `--extensions--/` avec un exemple `test.html`) et Flow le charge pour chaque flux : la partie entre `<script total>` et `</script>` s’exécute avec le flux et le reste du fichier est ajouté à l’éditeur.

## L’environnement d’un flux

Au démarrage de chaque flux, Flow lui donne le dossier où il garde ses fichiers (`directory`), les variables globales, le `env` de l’installation, sa limite de mémoire et le chargeur d’extensions (`extensions.js`). Un flux qui plante est redémarré par Flow, et ses statistiques (messages, en attente, erreurs, mémoire et identifiant de processus) sont renvoyées par `Streams`.
