Claudia Partner™DocsAPI・MCP 共通ドキュメント0.7.0-experimental

使う

アプリの登録と運用

検証用の利用環境で、アプリを1つ登録し、データを操作し、止めて再開するまでを通しで行う手順です。既存の顧客データには、そのまま適用しないでください。

先に、利用者として接続すると、HTTP・実行例を確認してください。

登場人物

この手順には、次の人と処理が登場します。用語は用語集にもあります。

登場するものこの手順での役割必要な権限
利用者基盤にログインして、アプリのデータを作成・更新・削除する人対象の表の読み取り・書き込み・削除の範囲
組織の管理者あなたの組織で、利用者に表を使う権限を与え、アプリ定義を登録し、serviceを承認する人管理権限(manage_accessとservice_administratorの両方)と、MFA
表の設計者アプリの表の設計を担う人。表の設計の権限を、持つ必要がある対象の表のcan_design
あなた(開発者)手順を実行し、アプリを登録して、結果を確認する手順ごとの実施者の権限
service人の操作を介さずに動く処理。最後に設定する組織の管理者の承認

管理権限について

管理権限(manage_accessとservice_administrator)は、利用環境で事前に登録された権限です。誰が初期設定を行うかは、利用環境の取り決めによります。表の権限のroleとして、付与することはできません。自分で権限を上げるAPIもありません。

GET /v1/meのpermissionsとcapabilitiesには、これらが出るとは限りません。持っているかどうかを、自分で確かめる方法は、現在ありません。権限の付与は、環境管理者に依頼してください。権限がないのに、管理のAPIへ試しに書き込む方法で、確認しないでください。

全体の流れ

手順実施者目的
1. 利用者に権限を与える組織の管理者利用者が、表を使えるようにする
2. アプリを計画して登録する組織の管理者(対象の表のcan_designも必要)アプリが使う表と依存先を、基盤に登録する
3. データを作成・取得・更新する利用者登録した表を、利用者の権限で使う
4. 関連を設定する表の設計者(can_designを持つ利用者)表どうしの親子の関係を設定する
5. 削除と復元利用者行を削除し、ごみ箱から戻す
6. 停止と再開組織の管理者アプリを止め、再開する
7. serviceを設定する組織の管理者と開発者人の操作を介さない処理に、限られた権限を与える
8. 記録して終了するあなた結果を記録する

1. 利用者に権限を与える

実施者: 組織の管理者

アプリのデータを使う利用者に、対象の表を使う権限を与えます。権限は、表ごと、利用者ごとに設定します。

  1. GET /v2/access/subjectsで利用者の一覧を、GET /v2/access/tablesで表の一覧を確認します。
  2. GET /v2/access/grants/{subjectId}/{collection}で、現在の権限とversionを取得します。
  3. PUTで、最新のversion、enabled、role、read_scope、write_scope、can_design、can_close、can_import、expires_atを送ります。

2. アプリを計画して登録する

実施者: 組織の管理者。登録する表については、実施する利用者に、can_design(表の設計の権限)が必要です。

登録の前に「計画」を作り、変更の内容を確認してから、同じ内容で「適用」します。

  1. POST /v2/apps/planに、id、version、name、datasets、dependenciesを持つmanifestを送ります。ownedはアプリが所有する表、sharedは既存の共有表です。新しい表を作るにも、事前に設計の権限が必要です。
  2. 返ったchangesを確認します。
  3. 同じmanifestと、返されたfingerprintで、POST /v2/apps/applyを実行します。Idempotency-Keyが必須です。例にあるaaaa…のfingerprintを、実際には送らないでください。
  4. GET /v2/apps/{appId}と、各表のdefinitionで、登録の結果を確認します。

manifestのversionは、新しいアプリでは1、更新では、現在の版に1を足した値です。更新するときは、現在の状態を読み、更新したmanifestで計画を作り、同じmanifestとfingerprintで適用します。競合したときは、計画を取り直して、差分を確認します。revisionは、停止・再開などの状態の変更を含めた、競合を防ぐための版です。manifest.versionとは別の値で、揃える必要はありません。停止と再開では、取得したrevisionを、そのまま送ります。

計画と適用の間に前提が変わったときは、競合として、再計画と再確認を行います。アプリの登録は、画面のプログラムのアップロードや、サーバーへの配置を行いません。

3. データを作成・取得・更新する

実施者: 利用者

ここからは、利用者の資格で操作します。

  1. definitionのschema_versionと、書ける列を確認します。
  2. POST /v2/tables/{collection}/batchのcreateにvaluesを送ります。idと所有者は、基盤が決めます。返ったidとversionを保存します。
  3. 検索(query)で取得します。
  4. updateには、保存したidとversionを指定します。

作成と更新は、別のIdempotency-Keyを使います。412が返ったときは、競合・再送・復帰に従い、再取得、比較、利用者への確認へ進みます。結果が不明なだけのときは、同じキーと本文を保持します。

4. 関連を設定する

実施者: 表の設計者(can_designを持つ利用者)

子の表に、関連用の列を定義します。親と子の関係を、基盤に伝えます。

5. 削除と復元

実施者: 利用者

  1. ごみ箱の保持期間が設定されていることと、利用者の削除の範囲を、先に確認します。
  2. deleteに、行のidとversion、必要ならreasonを送ります。
  3. GET /v2/tables/{collection}/trashで、trash_idと現在のversionを取得します。
  4. POST /v2/tables/{collection}/trash/{trashId}/restoreに、そのversion、reason、Idempotency-Keyを渡します。

rowIdとtrashIdを取り違えないでください。定義の変更、期限切れ、現在の権限による拒否は、自動では回避しません。

6. 停止と再開

実施者: 組織の管理者

停止と再開は、行の操作とは別の、アプリの状態の操作です。

  1. GET /v2/apps/{appId}で、revisionを取得します。
  2. POST /v2/apps/{appId}/stateに、Idempotency-Keyを付けて、action=stop、revision、reasonを送ります。
  3. 再開は、別のIdempotency-Keyと、現在のrevisionで、action=resumeを送ります。停止と再開の、どちらもreasonが必須です。

trash、restore、detachも同じ状態のAPIですが、保持期間、依存先、現在の状態に従います。復元した直後はstoppedになります。必要な確認の後に、明示的に再開します。

7. serviceを設定する

実施者: 組織の管理者と開発者

serviceとして接続するの手順で、申請、承認、provision、private_key_jwt、activateを行います。

確認すること:

8. 記録して終了する

対象のAPI版、利用環境、実施した時刻、操作ID、HTTPとcodeとrequest_id、許可と拒否、再試行したときの同じ操作の識別子を記録します。資格と原本のデータは、記録しません。