mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix: enforce settings authority boundaries (#618)
Close generic settings authorization bypasses and enforce per-setting authority, validation, redaction, transactional config import, and route-local write rate limiting.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: "Полный справочник REST API. Эндпоинты инструментов, пакетная обработка, конвейеры, файловая библиотека, аутентификация, команды и административные операции."
|
||||
i18n_output_hash: b2ec4e36cb9f
|
||||
i18n_source_hash: b89b5df16af5
|
||||
i18n_source_hash: 7e0a0db4abe0
|
||||
i18n_provenance: human
|
||||
---
|
||||
|
||||
@@ -533,7 +533,7 @@ data: {"jobId":"...","type":"batch","status":"processing","completedFiles":2,"to
|
||||
|
||||
## Настройки {#settings}
|
||||
|
||||
Конфигурация «ключ-значение» во время выполнения (чтение любым аутентифицированным пользователем, запись только администратором).
|
||||
Конфигурация среды выполнения использует закрытый набор распознаваемых ключей. Для чтения требуется `settings:read`, а для записи — `settings:write`; для ключей безопасности и соответствия дополнительно требуются `security:manage` или `compliance:manage`. Секретные настройки требуют полномочий администратора в полном объёме, а учётные данные и состояние, управляемые специализированными конечными точками, здесь доступны только для чтения. Пакетные обновления проверяются до записи любого значения.
|
||||
|
||||
| Метод | Путь | Описание |
|
||||
|--------|------|-------------|
|
||||
@@ -541,7 +541,7 @@ data: {"jobId":"...","type":"batch","status":"processing","completedFiles":2,"to
|
||||
| `PUT` | `/api/v1/settings` | Массовое обновление настроек (тело JSON с парами «ключ-значение») |
|
||||
| `GET` | `/api/v1/settings/:key` | Получить конкретную настройку по ключу |
|
||||
|
||||
Известные ключи: `disabledTools` (JSON-массив ID инструментов), `enableExperimentalTools` (строка bool), `loginAttemptLimit` (число).
|
||||
Примеры ключей: `disabledTools` (JSON-массив идентификаторов инструментов), `enableExperimentalTools` (логическое значение), `loginAttemptLimit` (политика безопасности) и `auditRetentionDays` (политика соответствия). Неизвестные ключи отклоняются.
|
||||
|
||||
## Предпочтения {#preferences}
|
||||
|
||||
@@ -636,11 +636,13 @@ curl -X POST http://localhost:1349/api/v1/admin/features/import \
|
||||
|
||||
Эти маршруты ограничены лицензией через связанную с ними enterprise-функцию. Они по-прежнему требуют указанного разрешения SnapOtter.
|
||||
|
||||
**Встроенный администратор с полными правами** — это прошедший аутентификацию субъект с ролью `admin` и полным набором действующих разрешений администратора. Область действия ключа API, в которой отсутствует хотя бы одно разрешение администратора, не соответствует этому требованию.
|
||||
|
||||
| Метод | Путь | Доступ | Описание |
|
||||
|--------|------|--------|-------------|
|
||||
| `GET` | `/api/v1/enterprise/audit/export` | Admin (`audit:read`) | Экспорт записей аудита в JSON или CSV с фильтрами |
|
||||
| `GET` | `/api/v1/enterprise/config/export` | Admin (`system:health`) | Экспорт отредактированной конфигурации экземпляра, пользовательских ролей и команд |
|
||||
| `POST` | `/api/v1/enterprise/config/import` | Admin (`system:health`) | Импорт конфигурации, с необязательным пробным запуском |
|
||||
| `GET` | `/api/v1/enterprise/config/export` | Встроенный администратор с полными правами | Экспорт отредактированной конфигурации экземпляра, пользовательских ролей и команд |
|
||||
| `POST` | `/api/v1/enterprise/config/import` | Встроенный администратор с полными правами | Импорт конфигурации, с необязательным пробным запуском |
|
||||
| `GET` | `/api/v1/enterprise/ip-allowlist` | Admin (`security:manage`) | Прочитать настроенный список разрешённых CIDR |
|
||||
| `PUT` | `/api/v1/enterprise/ip-allowlist` | Admin (`security:manage`) | Обновить список разрешённых CIDR с предотвращением самоблокировки |
|
||||
| `GET` | `/api/v1/enterprise/legal-hold` | Admin (`compliance:manage`) | Список правовых блокировок пользователей и команд |
|
||||
|
||||
Reference in New Issue
Block a user