# Ustawienia Flow, plik config i foldery

> Ustawienia Flow (nazwa, katalogi komponentów i szablonów, środowisko, kopia zapasowa, tokeny), wiersze pliku config, środowisko przepływów oraz foldery rozszerzeń i lokalnych komponentów.

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

## Plik `config`

Plik `config` w katalogu głównym Flow zawiera opcje aplikacji. Te, które mają znaczenie:

| Wiersz | Znaczenie |
|---|---|
| `name` | nazwa wyświetlana przez aplikację (można ją zmienić w ustawieniach) |
| `$api : /fapi/` | adres API JSON |
| `flowstream_worker : fork` | każdy FlowStream działa we własnym procesie |
| `$proxytimeout : 120` | sekundy, jakie przepływ może zająć na odpowiedź na żądanie HTTP |
| `cookie`, `cookie_secret` | generowane przy pierwszym uruchomieniu i zapisane w `databases/config.json` |

Inne opcje są odczytywane, gdy istnieją: `directory` (folder przepływów; domyślnie `flowstream/` obok aplikacji), `flowstream_memory` (domyślny limit pamięci dla nowych przepływów), `flowstream_sandbox` i `flowstream_asfiles` (przekazywane każdemu przepływowi), `components` i `templates` (pierwsze wartości katalogów) oraz `backup`.

## Ustawienia w aplikacji

Superadministrator otwiera ustawienia i znajduje:

- **name** instalacji;
- **components** i **components2**: adres katalogu komponentów (plik `db.json`, domyślnie `https://cdn.totaljs.com/flowstream/webcomponents/db.json`) oraz opcjonalny drugi katalog, abyś mógł oferować własne komponenty obok oficjalnych;
- **templates**: katalog szablonów przepływów (domyślnie `https://cdn.totaljs.com/flowstream/templates/db.json`);
- **env**: `dev`, `test` lub `prod`. Przepływy go odczytują, a jego zmiana restartuje je wszystkie po kolei;
- **backup**: każdy zapis przepływów zmienia nazwę poprzedniego `database.json` na plik z datą i minutą, `database_yyyyMMddHHmm.bk`;
- **token**: losowy token dla `/private/` (zobacz [API](/en/flow/manage-flowstreams-with-the-api/));
- **darkmode** i **notify**;
- **op_reqtoken** i **op_restoken**: tokeny [OpenPlatform](/en/openplatform/how-an-app-connects/); gdy ustawione są oba, ludzie logują się przez ten OpenPlatform.

Wtyczki mogą dodawać własne ustawienia do tego samego formularza. Repozytorium zawiera jedną, *Bookmarks*, listę zapisanych komponentów, z której mogą korzystać osoby z uprawnieniem `bookmarks`.

## Zmienne

Każdy przepływ ma własne **zmienne** i istnieje zestaw **zmiennych globalnych**; oba edytuje się w edytorze lub przez `Variables|read` i `Variables|save`. Komponent je odczytuje, aby nie umieszczać adresów i kluczy w projekcie, a zmiana od razu trafia do działających przepływów.

## Komponenty lokalne: `--components--`

Folder `--components--` w repozytorium zawiera kilka komponentów dostarczanych z aplikacją: `checkfreespace`, `checklog`, `checkpg`, `checkurl`, `console` i `print`. Oficjalny katalog jest znacznie większy, zobacz [repozytorium komponentów](/en/flow/the-components-repository/).

## Rozszerzenia

Rozszerzenie dodaje coś do edytora każdego przepływu. Skopiuj plik `.html` do folderu `extensions/` (repozytorium opisuje to w `--extensions--/` z przykładem `test.html`), a Flow wczyta go dla każdego przepływu: część między `<script total>` i `</script>` działa razem z przepływem, a reszta pliku jest dodawana do edytora.

## Środowisko przepływu

Przy starcie każdego przepływu Flow daje mu folder, w którym przechowuje jego pliki (`directory`), zmienne globalne, `env` instalacji, limit pamięci i program ładujący rozszerzenia (`extensions.js`). Przepływ, który się zawiesi, jest restartowany przez Flow, a jego statystyki (wiadomości, oczekujące, błędy, pamięć i identyfikator procesu) zwraca `Streams`.
