本番対応Auth

Hasura GraphQL APIは、アプリの管理者と正規ユーザーの両方に多くのクエリを公開します。この権限は各ロールに対して明確に定義されます。しかし、これらに加えて、実行するクエリのリストを正確に指定できます。

許可リストは、GraphQL Engineがメタデータに保存する安全なクエリ(GraphQLクエリ、ミューテーション、またはサブスクリプション)のリストです。

HASURA_GRAPHQL_ENABLE_ALLOWLIST という環境変数によって許可リストを有効にできます。

リストの環境設定を許可する

Slackアプリには、多くのクエリとミューテーションがあり、サーバーが実行できるのはこれらのみです。

例えば、slackアプリに必要なクエリの一部としては、以下が上げられます。

  • ユーザーが参加しているワークスペースのリストの取得
query {
users {
workspaces {
id
name
}
}
}
  • ワークスペース内のチャンネルのリストの取得
query getChannelsInWorkspace($workspaceId: uuid_comparison_exp) {
channel(where: {workspace_id: $workspaceId}) {
id
name
created_by
}
}

これは変数を使用するため、同じクエリが変数に対して異なる値を持つことが許可されることに注意してください。

  • チャンネルに投稿されたメッセージのリストの取得
query getChannelsInWorkspace($workspaceId: uuid_comparison_exp, $offset: Int!) {
channel(where: {workspace_id: $workspaceId}, limit: 20, offset: $offset) {
id
name
channel_threads {
channel_thread_messages {
id
message
}
}
}
}
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
graphql-handbook