Delcore

Delcore は、Delino サービス向けに共有テナント、アクセス制御、請求機能を提供します。公式 API サーバーは https://delcore.api.delino.io です。このページでは、サービス開発者向けにテナント状態の確認方法を説明します。

テナント状態を確認する

登録済みのサービスは、テナントがアクティブ、ブロック済み、または削除済みであるかを Delcore に問い合わせることができます。サービスがテナントのデータを保存しているものの、リクエストごとに対応する Delino ユーザーが存在しない場合(たとえば、プロジェクト API キーによって呼び出しが行われる場合)に、この確認を使用してください。

1~100 個のテナント ID を指定して delcore.v1.DelcoreService/GetTenantStates を呼び出します。各 ID は、小文字の UUID バージョン 7 である必要があります。サービスの Logto マシン間通信アプリケーションのアクセストークンを使用して認証してください。サービスは Delcore に登録されており、authorize スコープを持っている必要があります。ユーザートークン、未登録のサービス、およびこのスコープを持たないサービスは、テナント状態を読み取れません。

レスポンスでは、リクエストした各テナント ID が送信時と同じ順序で返され、それぞれに次のいずれかの状態が付与されます。

状態意味
TENANT_STATE_ACTIVEテナントが存在し、ブロックも削除処理もされていません。
TENANT_STATE_BLOCKEDプラットフォーム運用者がテナントをブロックしました。
TENANT_STATE_DELETING削除が保留中です。
TENANT_STATE_DELETED削除が確定しています。
TENANT_STATE_UNKNOWNDelcore にこの ID のテナントは存在しません。

複数の条件が該当する場合、DELETED は DELETING より優先され、DELETING は BLOCKED より優先され、BLOCKED は ACTIVE より優先されます。

状態は請求状況には依存しません。サブスクリプションの期限切れ、更新の失敗、異議申し立て、または残高不足によって、テナントが BLOCKED になることはありません。ユーザーが有料処理を実行できるかどうかを判断するには、代わりに Authorize を使用してください。この確認はデータを読み取るだけです。テナントの変更、有料利用の承認、決済プロバイダーへの連絡は行わず、テナント名、ユーザーの詳細、請求情報も返しません。

結果とエラーを処理する

  • TENANT_STATE_ACTIVE の場合にのみアクセスを許可してください。ただし、所有者または管理者がブロック中または削除中のテナントにアクセスできることを、独自の文書化されたルールで許可している場合を除きます。
  • TENANT_STATE_UNKNOWN、リクエストエラー、タイムアウト、および Delcore が利用できない場合は、アクセス不可として扱ってください。これらの場合にデータを削除しないでください。
  • 明示的な TENANT_STATE_DELETED を受け取った後に限り、保持しているテナントデータを自動的に削除してください。BLOCKED と DELETING では、自動削除は決して許可されません。
  • 無効な ID、空のリクエスト、または 100 個を超える ID を指定した場合は、無効な引数エラーが返されます。認証情報がない、期限切れ、または無効な場合は、未認証エラーが返されます。テナント状態の読み取りを許可されていない呼び出し元には、権限拒否エラーが返されます。その他の失敗では、相関 ID を含むエラーが返されます。サポートを依頼する際は、エラーの詳細および X-Delcore-Correlation-Id ヘッダーに記載されているこの ID を含めてください。
  • 失敗したリクエストは、後で再試行してください。リクエストの失敗が、テナントがアクティブまたは削除済みであることを意味することは決してありません。