プロバイダーの認証情報と接続性
目的: IMAP/SMTP 認証情報を登録し、接続を検証し、認証情報のライフサイクルを維持します。
UI フロー
- ユーザーは、IMAP および SMTP のホスト/ポート/セキュリティ モードとシークレットの値を入力します。
- UI は
POST /api/accounts/:account_id/provider-credentialsを使用して資格情報を作成します。 - UI は
POST /api/provider-credentials/:provider_credential_id/testを使用して直ちに検証します。 - UI には認証情報と検証ステータスがリストされます。
- UI は、資格情報の衛生管理のための回転 (
/rotate) と削除をサポートします。
クライアント ライブラリ フロー
const imapCredential = await api.credentials.create(accountId, {
provider_kind: "imap",
label: "Work IMAP",
host: "mail.example.com",
port: 993,
security_mode: "ssl_tls",
auth_kind: "password",
secret: { username, password },
});
await api.credentials.test(imapCredential.data.id);
HTTP/カールフロー
API_BASE_URL="https://api.inbox-manager.com"
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/provider-credentials" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{
"provider_kind":"imap",
"label":"Work IMAP",
"host":"mail.example.com",
"port":993,
"security_mode":"ssl_tls",
"auth_kind":"password",
"secret":{"username":"user@example.com","password":"***"}
}'
curl -sS -X POST "${API_BASE_URL}/api/provider-credentials/${PROVIDER_CREDENTIAL_ID}/test" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/provider-credentials/${PROVIDER_CREDENTIAL_ID}/rotate" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"secret":{"username":"user@example.com","password":"***"}}'
検証スクリプト
scripts/provider_credentials_flow.sh