# Настройки на Flow, файлът config и папките

> Настройките на Flow (име, каталози с компоненти и шаблони, среда, резервно копие, токени), редовете на файла config, средата на потоците и папките за разширения и локални компоненти.

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

## Файлът `config`

Файлът `config` в корена на Flow съдържа опциите на приложението. Важните:

| Ред | Значение |
|---|---|
| `name` | името, което показва приложението (може да се променя в настройките) |
| `$api : /fapi/` | адресът на JSON API |
| `flowstream_worker : fork` | всеки FlowStream работи в собствен процес |
| `$proxytimeout : 120` | секунди, които потокът може да отдели за отговор на HTTP заявка |
| `cookie`, `cookie_secret` | генерират се при първото стартиране и се пазят в `databases/config.json` |

Други опции се четат, когато съществуват: `directory` (папката на потоците; по подразбиране е `flowstream/` до приложението), `flowstream_memory` (ограничение на паметта по подразбиране за новите потоци), `flowstream_sandbox` и `flowstream_asfiles` (предават се на всеки поток), `components` и `templates` (първите стойности на каталозите) и `backup`.

## Настройки в приложението

Супер администраторът отваря настройките и намира:

- **name** на инсталацията;
- **components** и **components2**: адресът на каталога с компоненти (файл `db.json`, по подразбиране `https://cdn.totaljs.com/flowstream/webcomponents/db.json`) и по избор втори каталог, за да предлагате свои компоненти до официалните;
- **templates**: каталогът с шаблони на потоци (по подразбиране `https://cdn.totaljs.com/flowstream/templates/db.json`);
- **env**: `dev`, `test` или `prod`. Потоците го четат, а промяната му ги рестартира всичките един по един;
- **backup**: всяко записване на потоците преименува предишния `database.json` във файл с датата и минутата, `database_yyyyMMddHHmm.bk`;
- **token**: случайният токен за `/private/` (вижте [API](/en/flow/manage-flowstreams-with-the-api/));
- **darkmode** и **notify**;
- **op_reqtoken** и **op_restoken**: токените на един [OpenPlatform](/en/openplatform/how-an-app-connects/); когато и двата са зададени, хората влизат с този OpenPlatform.

Добавките могат да добавят собствени настройки към същата форма. Хранилището включва една, *Bookmarks*, списък със запазени компоненти, който могат да ползват хората с правото `bookmarks`.

## Променливи

Всеки поток има собствени **променливи** и съществува набор от **глобални променливи**; и двете се редактират в редактора или с `Variables|read` и `Variables|save`. Компонентът ги чете, за да не слага адреси и ключове в дизайна, а промяната стига веднага до работещите потоци.

## Локални компоненти: `--components--`

Папката `--components--` на хранилището съдържа няколко компонента, които се доставят с приложението: `checkfreespace`, `checklog`, `checkpg`, `checkurl`, `console` и `print`. Официалният каталог е много по-голям, вижте [хранилището с компоненти](/en/flow/the-components-repository/).

## Разширения

Разширението добавя нещо към редактора на всеки поток. Копирайте файл `.html` в папката `extensions/` (хранилището го документира в `--extensions--/` с пример `test.html`) и Flow го зарежда за всеки поток: частта между `<script total>` и `</script>` се изпълнява с потока, а останалата част от файла се добавя към редактора.

## Средата на един поток

При стартирането на всеки поток Flow му дава папката, в която пази файловете му (`directory`), глобалните променливи, `env` на инсталацията, ограничението на паметта му и зареждащия модул за разширения (`extensions.js`). Поток, който се срине, се рестартира от Flow, а статистиката му (съобщения, чакащи, грешки, памет и идентификатор на процеса) се връща от `Streams`.
