マーチャントに「ログを共有してください」と毎回お願いする必要はもう無い。アプリが必要なスコープを持っていれば、Dev Dashboard の function 実行ログ詳細が自動的に表示される。
function run の詳細を見るために、マーチャント側で「共有」の操作をしてもらう必要があった。アプリ開発者の運用が依頼ベース。
function の input query が必要とするスコープを、アプリが GraphQL Admin API 経由で読めるなら、詳細は自動表示される。
| 項目 | 従来 | 新仕様(今回の変更) |
|---|---|---|
| ログ詳細の閲覧条件 | 手動 マーチャントが共有する操作 | 自動 アプリの access scopes で判定 |
| 判定の基準 | 記載なし(マーチャント裁量) | function の input query が要求するスコープ |
| マーチャント依頼 | 都度必要 | 不要 |
| 反映タイミング | — | 必要スコープ付与後の 次回アクセス時 に自動表示 |
| 表示場所 | Dev Dashboard | Dev Dashboard(同じ) |
必要なスコープが付いていない場合、ドキュメントは 3 通りの取得方法を挙げている。用途で使い分ける。
アプリが恒常的に必要とするスコープ。インストール/認証フローで宣言する。
用途 : 標準動作で常に必要なフィールド。
顧客詳細・住所などは 追加の承認プロセス が必要な保護対象データ。データレベルのスコープも別途要求する。
デバッグなど一時的な用途には optional scope を使う。
マーチャントが再インストール無しで付与/取消可能。
function の input query が読んでいるフィールドを洗い出す。
そのフィールドを Admin GraphQL で読むのに必要なスコープを、アプリが保有しているか確認。
恒常 / 保護データ / optional の 3 経路から最適なものを選んでスコープを取得する。
ログ閲覧可否のロジックは function の input query から導出される。=「本番でデータを読める権限」と「ログで見える情報」が同じ rule に揃う。
customer details / addresses 等は protected customer data の承認プロセスとデータレベルスコープが追加で要る。一般スコープと別建てで設計する。
恒常的に要らないが障害時だけ見たいスコープは optional として要求。再インストール無しでマーチャントが付与/取消できるため運用負荷が低い。
スコープ付与の効力は「次回ログにアクセスした時」から。即時リフレッシュの挙動については記載なし。再現テスト時はこのタイミング差に注意。
期待した詳細が出ない時、function 側ではなく アプリのスコープ宣言 をまず疑うのが正しい順序。input query を読み直し、対応スコープがアプリの manifest に揃っているかをチェックすればほぼ解決する。