> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/learn/9.-sistema-i-rasshireniya/04-plugin-operations.md).

# Эксплуатация плагинов

Разделите права и безопасно управляйте конфигурацией, миграциями, релизами и удалением плагинов

## Что вы получите

Команда сможет наблюдать плагин, менять его настройки, выполнять миграции и управлять релизами без выдачи одному повседневному оператору всех критических полномочий.

Откройте **«Плагины» — «Установленные плагины»**. Раздел **«Готовые плагины»** остаётся каталогом поставляемых пакетов, а не списком действующих интеграций.

## Разделите пять прав

| Право                       | Область                                                            |
| --------------------------- | ------------------------------------------------------------------ |
| Просмотр плагинов           | Реестр, сведения, возможности, состояния и безопасный предпросмотр |
| Установка и запуск плагинов | Установка пакета и операции, запускающие его код                   |
| Управление плагинами        | Включение, отключение, конфигурация и секреты                      |
| Миграции плагинов           | Отдельное изменение данных плагина                                 |
| Релизы и удаление плагинов  | Обновление, переключение релиза, откат и удаление                  |

Оператору обычно достаточно просмотра. Техническому администратору выдавайте только права его регламента, а миграции и релизы оставьте ограниченной роли. После изменения роли проверьте интерфейс и API входом под отдельной контрольной учётной записью.

{% hint style="danger" %}
Если для критической операции включены повторная аутентификация или подтверждение вторым сотрудником, не отключайте защиту ради скорости. Инициатор и подтверждающий должны быть разными людьми.
{% endhint %}

## Пройдите карточку установленного плагина

Не оценивайте плагин по одному общему значку. Сверьте:

* включён ли плагин и какой релиз активен;
* подтверждена ли целостность текущего архива;
* какие возможности и экземпляры подключены;
* заполнены ли обязательные настройки и секреты;
* выданы ли только необходимые разрешения;
* работают ли зависимости, события, расписания и фоновые процессы;
* когда выполнялся последний health-check и что сообщил каждый компонент.

Статус **«Не проверялся»**, предупреждение и ошибка требуют разных действий. Не помечайте пакет повреждённым только из-за старого или отсутствующего результата проверки: сначала запустите актуальный health-check и прочитайте конкретную причину.

## Включайте после заключительной проверки

{% stepper %}
{% step %}

### Сохраните конфигурацию

Обычные параметры задавайте в настройках, ключи и пароли — в защищённых секретах. Система показывает факт заполнения секрета, но не должна возвращать его полное значение.
{% endstep %}

{% step %}

### Разберите доступы

Подтвердите только те разрешения и области данных, без которых заявленная возможность не работает. Не выдавайте доступ к заявкам, персональным данным или выплатам плагину курсов без доказанной причины.
{% endstep %}

{% step %}

### Выполните необходимые миграции

Сначала создайте проверяемую резервную копию, прочитайте список миграций и остановите зависимый контур. При ошибке не запускайте операцию повторно, пока не выяснено, применилось ли изменение частично.
{% endstep %}

{% step %}

### Запустите health-check

Проверьте целостность и каждую возможность. Успех одной функции не скрывает ошибку другой.
{% endstep %}

{% step %}

### Проверьте конечный сценарий

Для курсов получите свежую пару, для мерчанта — контрольный входящий платёж, для выплаты — безопасную контрольную выплату, для уведомлений — реальное сообщение. Следуйте отдельной инструкции поставщика конкретной интеграции.
{% endstep %}

{% step %}

### Включите плагин

Включайте только после подтверждения предыдущих шагов. Если система автоматически отключила модуль после повторных ошибок, устраните причину вместо циклического включения.
{% endstep %}
{% endstepper %}

## Обновляйте отдельным релизом

Новая версия того же плагина устанавливается как отдельный неизменяемый релиз.

Перед обновлением:

1. зафиксируйте текущий релиз и его рабочий результат;
2. сделайте резервную копию;
3. выполните новый предпросмотр архива;
4. сравните совместимость, возможности, разрешения, зависимости и план;
5. примените только объявленные миграции;
6. дождитесь фоновых импортов и расписаний нового релиза;
7. повторите health-check и конечный сценарий.

Нельзя откатываться на уже активный неизменяемый релиз: выберите действительно предыдущую доступную версию.

## Выполните откат

```mermaid
flowchart LR
    A["Зафиксировать сбой"] --> B["Остановить зависимый контур"]
    B --> C["Выбрать предыдущий релиз"]
    C --> D["Выполнить откат"]
    D --> E["Плагин остаётся выключенным"]
    E --> F["Health-check и сквозная проверка"]
    F --> G["Осознанно включить"]
```

После отката плагин должен оставаться выключенным до повторной проверки. Откат файлов не отменяет автоматически уже отправленный платёж, выплату, событие или изменение данных. Если релиз выполнял миграции, используйте его отдельный план восстановления.

## Удаляйте только после проверки зависимостей

Удаление — не способ временно остановить интеграцию. Сначала используйте **«Отключить»**.

Перед удалением:

* отключите плагин и зависящие от него направления или автоматы;
* проверьте другие плагины, которые используют эту зависимость;
* остановите расписания и дождитесь понятного состояния фоновых операций;
* сохраните нужную конфигурацию без секретных значений;
* подготовьте альтернативный источник или ручной процесс;
* создайте резервную копию;
* получите подтверждение роли с правом релизов и удаления;
* после удаления проверьте оставшиеся курсы, платежи, меню и задания.

Удаление установленного экземпляра не обязано удалять исходный архив из **«Готовых плагинов»**. Пакет может остаться доступным для чистой повторной установки.

## Проверьте журнал и фоновые операции

Установка, включение, отключение, health-check, конфигурация, миграция, обновление, откат и удаление должны быть связаны с сотрудником, временем и результатом. Значения секретов в журнале не раскрываются.

Для плагина курсов дополнительно сверяйте состояние импорта и активный релиз. Новый импорт может заменить незавершённый старый; итог проверяется по числу созданных, обновлённых и пропущенных пар, а затем по фактическому курсу направления.

## Этап завершён, если

* [ ] пять прав распределены по принципу наименьших полномочий;
* [ ] контрольная роль не видит и не выполняет запрещённые операции;
* [ ] конфигурация и секреты разделены;
* [ ] лишние доступы не подтверждены;
* [ ] зависимости, события, расписания и фоновые операции понятны;
* [ ] миграции выполняются только после резервной копии;
* [ ] health-check проверяет каждую возможность;
* [ ] конечный продуктовый сценарий подтверждён отдельно;
* [ ] обновление создаёт новый проверенный релиз;
* [ ] после отката плагин повторно проверяется до включения;
* [ ] удаление не оставляет активные зависимости;
* [ ] готовый пакет не принят за действующую интеграцию;
* [ ] журнал действий не раскрывает секреты.

После изменения плагина повторите [проверку свежести и ориентации курсов](/learn/4.-kursy-i-napravleniya/04-verify-rates.md), а перед открытием рабочего контура — [сквозную контрольную заявку](/learn/10.-zapusk/01-control-order.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/learn/9.-sistema-i-rasshireniya/04-plugin-operations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
