Головна/Рецепти (Cookbook)/Збережіть свій перший credential ENУКРРУС API-довідник (ReDoc) ↗

Збережіть свій перший credential

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

Основний write-шлях сервісу: зберегти ключ, переконатися, що він скрізь маскований, і побачити, як платформа визнає його тим, на чому працюватимуть ваші переклади.

Мета

Закінчити з активним 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.