Главная/Рецепты (Cookbook)/Сохраните свой первый credential ENУКРРУС API-справочник (ReDoc) ↗

Сохраните свой первый credential

Создайте личный default-credential, прочитайте его обратно маскированным и наблюдайте, как переключается credential-status.

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

Цель

Закончить с активным default личным credential для одного провайдера и credential-status, называющим user эффективным источником.

Предварительные условия

  • Код провайдера и его обязательные секретные поля — из сценария 01.
  • $CREDS_BASE, $TOKEN.

Шаги

1. Проверьте статус до

Вызовите GET /v1/providers/{code}/credential-status. Ожидаемый 200 с "user_credentials_configured": false — пока ничего не настроено.

2. Создайте credential

Вызовите POST /v1/credentials:

curl -s -X POST "$CREDS_BASE/v1/credentials" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{
    "provider_code": "'$CODE'",
    "name": "My first key",
    "credentials": {"api_key": "sk-live-0123456789abcdef"},
    "make_default": true
  }'

Ожидаемый 201: запись с owner_type: "user", status: "active", is_default: true, version: 1 — и masked_credentials вместо вашего секрета (в стиле sk-***cdef). Сохраните id.

3. Прочитайте обратно — всё ещё маска

import httpx

headers = {"Authorization": f"Bearer {TOKEN}"}
record = httpx.get(f"{CREDS_BASE}/v1/credentials/{cred_id}", headers=headers).json()

assert record["masked_credentials"]["api_key"] != "sk-live-0123456789abcdef"
assert "credentials" not in record          # the plaintext field simply does not exist here

Ожидаемо: ни один ответ пользовательской плоскости никогда не несёт секрет. Списочное представление (GET /v1/credentials) показывает ту же запись с той же маской.

4. Проверьте статус после

Повторите шаг 1. Ожидаемо: "user_credentials_configured": true и "effective_credential_source": "user"resolve теперь отдал бы ваш ключ.

Проверено тестом test_s02_store_your_first_credential.