Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Disabled orgs are still granted permissions through the Check API

オープン
#1,863 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
38/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
go, postgres

調査の方向性

まず CheckResourcePermission、BatchCheckPermission、CheckFederatedResourcePermission を追跡し、次に既存の無効化・有効化フローと認可スキーマを確認します。推奨されている SpiceDB の suspended リレーションを実装します。これには、スキーマのマイグレーション、タプルの更新、現在無効化されている組織に対するバックフィルを含めます。完了の条件は、3 つすべてのチェックで無効化された組織のリソースが拒否され、プラットフォームおよびスーパーユーザーの権限は引き続き機能することです。

索引モデルが issue の本文から書いたものです。

説明

The disabled-org gate added in #1860 covers the management and resource RPCs (the authorization map), but the SpiceDB Check API is deliberately out of its scope:

  • CheckResourcePermission
  • BatchCheckPermission
  • CheckFederatedResourcePermission

These are on the authorization skip list and answer purely from SpiceDB tuples. Because disabling an org leaves its tuples in place (by design, so re-enable restores access), these endpoints keep returning allowed = true for resources of a disabled org. External services that gate their own access on these checks will keep serving a disabled org's resources.

Two ways to close it

  1. Handler/service guard (Postgres read): resolve each checked resource to its org and return false when the org is disabled. Simple, no migration, but adds 1–3 point reads per check on a hot path, and overloads "denied" to also mean "suspended".
  2. SpiceDB marker relation (preferred): add a suspended relation on the org that every permission subtracts (- org->suspended); write the tuple on disable, remove it on enable. Reflects org state in every check — single, batch, and federated — with no extra Postgres reads, since it rides the existing permission traversal. Requires a schema migration, disable/enable flow changes, and a backfill for currently-disabled orgs. Care needed so platform/superuser permissions are not subtracted (admins must still manage and re-enable).

Recommendation: option 2.

Relates to #1585.

主要言語
Go
スター
344
フォーク
48
平均マージ
2日 9時間
マージ済み PR(30日)
47

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

raystack/frontier のほかの issue

raystack/frontier の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。