メインコンテンツまでスキップ

リソースモデル

Registry では、扱う情報の単位を リソース定義、ユーザーごとの実データを リソース値 として管理します。 基本の考え方は Link v1 と近いですが、PocketSign Link v2 ではエイリアス、算出リソース、検証プロセス情報などを拡張しています。

リソース定義​

リソース定義は、Registry が取り扱う情報や権限の単位です。

項目説明
IDUUID 形式のリソース定義の ID
表示名ユーザーに表示するリソースの名前
説明ユーザーに表示するリソースの説明
カテゴリアプリ画面上での分類表示時に使用されるリソース定義が属するカテゴリ
エイリアスエイリアスを参照
リソース種別リソース種別を参照
値フォーマット値フォーマットを参照

リソース種別​

リソース種別説明要求できる権限備考
格納リソースRegistry 自身が値を保存するリソースREAD / WRITE値フォーマットは string / json / binary のいずれか
実行リソース特定機能を呼び出す権限を表すリソースINVOKEリソース値の実体は持たない
算出リソース他のリソースやシステム上の情報から、読み取り時に値を導出するリソースREAD値の実体を DB に直接持たないことがある。Registry が提供する組み込みリソースとして定義される

エイリアス​

PocketSign Link v2 では、リソース定義 ID に加えて human-readable なエイリアスを使えます。 API では、id_or_alias で ID かエイリアスのどちらでも指定できます。

例:

my_org/favorite-food
klon/service.{service-id}.subscription-id

値フォーマット​

リソース定義に従って、ユーザーごとの実データはリソース値として Registry に保存されます。 リソース値はリソース定義の「値フォーマット」で指定した形式で、読み書きし、保存されています。

値フォーマットには次の 3 種類があります。

種類説明
stringUTF-8 文字列
jsonJSON Schema で構造を保証する JSON
binaryファイルなどのバイナリ

string フォーマット​

最も単純な形式です。 1 つの文字列として表せる値に向いています。

例:

  • 氏名
  • メールアドレス
  • 好きな食べ物
  • 外部システム連携 ID

json フォーマット​

構造を持ったデータを 1 つのリソースとして扱いたいときに使います。 単なる JSON 文字列ではなく、リソース定義に登録された JSON Schema に従う JSON 値として扱われます。

例:

  • ユーザープロフィール
  • 設定オブジェクト
  • 複数項目を持つ申請データ

JSON Schema​

json フォーマットのリソース定義では、JSON Schemaを登録します。 たとえば次のようなスキーマを定義できます。

{
"type": "object",
"properties": {
"phone": { "type": "string" },
"email": { "type": "string" },
"hobbies": {
"type": "array",
"items": { "type": "string" }
},
"address_detail": {
"type": "object",
"properties": {
"zip": { "type": "string" },
"building": { "type": "string" }
}
}
}
}

json フォーマットの値を書き込むときは、その JSON がリソース定義に登録された JSON Schema を満たしているか検証されます。 JSON Schemaに適合しない値を書き込もうとした場合はエラーが返却されます。

binary フォーマット​

文字列や JSON では表しにくい、ファイルやバイト列データ向けの形式です。

例:

  • PDF
  • 画像
  • バイナリ証憑
  • 署名済みデータ

検証プロセス情報​

PocketSign Link v2 では、値そのものに加えて、その値がどのように検証されたかをメタデータとして返すことがあります。

例:

  • マイナンバーカード由来の情報かどうか
  • OTP で所有確認済みのメールアドレスかどうか

権限モデル​

Registry では、どのユーザーがどのサービスに対してどのリソースのどの操作を許可しているかを権限として持ちます。 サービスはユーザーが許可していないリソースにアクセスすることはできません。

動詞​

動詞意味
READ値の読み取り
WRITE値の書き込み
INVOKE実行リソースの呼び出し

関連ページ​