許可リスト

Allowlistでは、プロジェクトで問題なく実行できるGraphQL 操作(クエリ/ミューテーション/サブスクリプション)の回数を設定できます。

Allowlistを追加する方法

  • コンソールの使用
  • メタデータの使用
  • Hasuraクラウドの自動操作

コンソールでのAllowlist

このSlackを使ったデモでは、 users クエリのみを許可して、それ以外のクエリはすべて拒否します。これを行うには、コンソールの Settings タブの Allow List ページに移動します。

 コンソール上のAllow Lists

operation nameとoperation definitionを指定することで、手動でoperationを追加できます。

ここでは、operation nameを users にして、operation definitionを以下の通り設定します。

query {
users {
id
name
}
}

 Allow Listのoperation

同様に、ファイルアップロードを使ってすべてのoperationのリストを含むgraphqlファイルを手動でアップロードしてもこれを追加できます。

メタデータでのAllowlist

queryはcollectionに保存でき、collectionはallow-listによって追加・削除できます。collectionは次の APIs によって追加できます

HasuraクラウドでのAllowlist

上記はすべての操作を手入力で行っていますが、Hasuraクラウドには、過去に実行されたoperationのリストを使って簡単にAllowlistを有効化する方法があります。

Hasuraクラウドプロジェクトの Pro タブ内の Allow List タブに移動します。次に、 New Operations に移動して、まだAllow ListにないOperation Listを表示します。

 HasuraクラウドのAllowlist

この例では、user queryのみを選択するのに、手動で一件ずつ入力するのではなく、Operation Listから明示的に選択します。

注意したいのは、Introspection queryでさえ、GraphiQLインタフェースを動作させるためには明示的に追加する必要があり、このタブを使えばそれが素早くできます。もう一つのヒントは、常にクライアントからのqueryに名前を付けるようにしておけば、Allowlistへの追加や、検査とデバッグが容易になります。

Allowlistの有効化

Allowlistは、env HASURA_GRAPHQL_ENABLE_ALLOWLIST によって明示的に有効にする必要があります。

Hasuraクラウドのプロジェクト設定ページの Env vars タブに移動して、このenvを有効にします。

Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2024 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin