---
title: "Получить краткосрочную выдачу секрета настройки"
method: POST
path: "/api/v1/app/config/{key}/lease"
tags: ["App runtime"]
---

# Получить краткосрочную выдачу секрета настройки

`POST /api/v1/app/config/{key}/lease`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/app/config/{key}/lease`
- Auth: HTTP bearer

Единственная дверь, за которой сохранённый секрет снова становится открытым. Ни персонал платформы, ни владелец кабинета её не имеют: администратор, читающий по API пароль клиента от его почты, — ровно та утечка, ради запрета которой значение и не возвращается никаким другим ответом, а владельцу показывать нечего — он это значение сам и ввёл.

Область отдельная (`app:secrets`), а не общая с чтением себя: на экране согласия «читает свою настройку» и «забирает секреты, которые вы ему оставите» — разные обещания, и кабинет вправе увидеть второе отдельно.

Выдача существует только для СЕКРЕТА: имя, которое хранится обычной настройкой, отвечает 409, потому что она и так приезжает приложению вместе с остальной настройкой, а второй путь к ней научил бы читателя, что через выдачу можно получить что угодно.

Срок краткосрочный, по умолчанию пять минут и не больше пятнадцати: длину выдачи не назначает получатель. Честная оговорка — сам срок платформа на чужой стороне не исполняет: значение, однажды покинувшее сервер, живёт столько, сколько его там держат. Работают два других механизма — КАЖДОЕ обращение остаётся в журнале установки (его строку называет audit_id), и отзыв установки закрывает следующее.

Метод POST, а не GET, именно поэтому: операция не идемпотентна — она пишет строку журнала, и неудача записи отменяет выдачу. Секрет, ушедший наружу без следа, — это ровно тот случай, ради которого журнал и существует.

## Path parameters

- `key` string, required

## Headers

- `X-Tenant` string, required

## Request body

- AppRuntimeLeaseInput
  - `ttl_seconds` integer: Запрошенный срок выдачи. Ноль или отсутствие поля означают умолчание сервера (пять минут), значение сверх потолка — отказ

## Response `201`

Значение секрета, срок выдачи и строка журнала

- AppRuntimeLease
  - `key` string, required
  - `value` string, required: Значение секрета. Уходит вызывающему один раз и не возвращается больше никаким ответом
  - `issued_at` string, date-time, required
  - `expires_at` string, date-time, required: Контракт «после этого забирай заново». Срок платформа на чужой стороне не исполняет: работают журнал обращений и отзыв установки
  - `audit_id` string, uuid, required

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Значения с таким именем у установки нет
- `409`: Имя хранится не как секрет: краткосрочная выдача существует только для секрета
- `503`: На сервере не задан ключ шифрования секретов

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
