Content last updated 2026-06-26

Organization

This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.
StatusAuthorsCoachDRIsOwning StageCreated
ongoinglohrc alexpooleyayufan tkuahalexpooley jblack7 mandrewsgldevops tenant scale2023-04-05

このドキュメントは作業中であり、Organization 設計の現状を反映しています。

用語集

  • User: ユーザーアカウント。
  • Top-level Group: トップレベルグループは、他のすべてのグループの最上位グループに付けられる名前です。グループとプロジェクトはトップレベルグループの下にネストされます。
  • Organization: Organization は、1 つまたは複数のトップレベルグループのコンテナです。Organization は互いに隔離されています。
  • Organization user: Organization には Organization user と呼ばれる多数の User がいます。User を Organization 内の Group や Project に追加すると、その User は Organization user になります。
  • Organization user type: Organization user は、Organization Administrator または Organization Regular User の Organization user type を持つことができます。この user type は、ユーザーの権限を決定するために使用されます。
  • Default Organization: すべての GitLab インスタンスにシードされる ID = 1 の Organization。

サマリー

GitLab.com は、GitLab ソフトウェアの公開された共有インストールです。これにより GitLab を便利な SaaS として提供できますが、いくつかの重要な点で完全な GitLab 体験には及びません。

  1. パリティ: GitLab.com と Self Managed で顧客に提供される機能は異なります。たとえば GitLab.com では、顧客は管理者権限を受け取りません。この権限はかなりの量の機能を担っています。
  2. 隔離: GitLab.com では、Self Managed インストールのように、顧客が他の顧客から独立して存在することはできません。

Organization は、すべてのプラットフォームに共通するコンテナとなることで、これらの問題を解決します。Organization コンテナを作成することで、隔離の境界を強制し、すべてのトップレベル機能に対して共通のエンティティを提供できます。

実質的に、Organization は Self Managed の機能をコンテナにラップし、この体験を他のすべての GitLab プラットフォームにもたらします。

この隔離ソリューションは、Cells プロジェクトの前提条件でもあります。Cells プロジェクトについては、Organization との関連で Organizations and Cells で説明しています。

よくある質問

具体的な質問がある場合は、FAQ で回答が見つかるかもしれません。あるいは、「Organization Blueprints」を参照しながら GitLab Duo Chat に問い合わせてみることもできます。

GitLab.com プラットフォームの分割

GitLab.com プラットフォームは、2 つの異なる体験に分割されます。

現在、顧客はデフォルト organization 内のトップレベルグループとして GitLab.com に参加します。 この体験は、共有されたユーザープールがオープンソースプロジェクトに貢献できるようにするため、無期限に存続します。

GitLab.com は今後、プライベートなエンタープライズ Organization 向けのソリューションで提供内容を拡張します。 これらのエンタープライズ Organization は、デフォルト organization を含む他のすべての Organization から完全に隔離された状態で運用されます。

最終的には、顧客がデフォルト organization から抜け出して、自身のプライベートな Organization に移行できるようになります。

Organization の基本原則

  • Organization はほぼすべての GitLab 機能をラップします。
  • Organization 間でデータを読み書きすることはできません。Organization Isolation で詳しく説明しています。
  • 多くのプロダクト機能は変更されませんが、ほとんどのインスタンスレベルの機能は下位に、その他の機能は Organization レベルに上位移動します。レベルの変更については以下で詳しく説明します。
  • User は複数の Organization の Organization user になれます。
  • User は Organization の Administrator にも、単なる Regular User にもなれます。
  • Organization Administrator は、ユーザーアカウントを削除する機能など、自身の Organization 内で管理者スタイルの権限を持ちます。詳細は以下で説明します。
  • これらの変更は、GitLab.com、Self Managed、Dedicated を含むすべての GitLab プラットフォームで行われます。

Organization Isolation

GitLab におけるすべての Organization のデータと機能は隔離されます。 隔離とは、データと機能が Organization の境界を越えられないことを意味します。 これについては Organization Isolation で詳しく説明しています。

GitLab.com では、トップレベルグループがデフォルト Organization から段階的に移行するのをサポートするため、organization は 非隔離(non-isolated) 状態で始まります。 organization スコープのデータに依存する機能は、Organization の境界ルールを強制する前に、現在の organization が非隔離か隔離済みかを確認しなければなりません。 詳細は ADR 008: GitLab.com 上の非隔離 organization を参照してください。

Organization が他のドメインに与える影響

Organization がシステムの他の部分にどのように影響するかをより詳しく説明するページのリストです。今後も増えていきます。

レベル構造

Organization は、ほとんどのインスタンスレベルの機能とトップレベルグループのすべての機能を組み合わせた、新しいレベルを形成します。

インスタンスレベルは、インフラストラクチャレベルの設定のために予約されます。 GitLab.com では、インスタンスレベルにあたるものはセルローカルでのみ動作します。 ほとんどのインスタンスレベルの機能と設定は、Organization レベルに下げるべきです。 インスタンスレベルをセルローカルのまま残すと、チームが各セルに対して手動の設定を行うよう求められる可能性があり、効率的ではありません。

self-managed にはセルがなく、organization も 1 つしかないため、インスタンスレベルは問題になりません。

GitLab.com では、トップレベルグループが現在、organization レベルの機能(請求、設定など)のコンテナとして機能しています。これらの機能は Organization レベルに移動します。その後、トップレベルグループは通常のグループやサブグループとまったく同じように機能し、「疑似レベル」という区別はなくなります。これにより GitLab.com は、この区別がもともと存在しなかった Self-Managed と足並みが揃います。

以下は、GitLab における現在と将来の階層レベルを示したものです。

現在の階層将来の階層
インスタンスレベルほとんどの設定が Organization に移動
Organization レベル
トップレベルグループ特別な地位を失う。通常のグループになる
グループグループ(変更なし)
プロジェクトプロジェクト(変更なし)

Organization のローンチ前には、コア機能のみが Organization に移動します。 ローンチ後、残りのすべての機能が Organization レベルに移動します。

以下は、これらのレベルのエンティティ図です。

graph TD
  o[Organization] -. has many .- g
  ns[Namespace] --> g[Group]
  ns[Namespace] --> pns[ProjectNamespace] -. has one .- p[Project]
  ns --> un[UserNamespace]
  g -. has many .- p
  un -. has many .- p
  ns[Namespace] -. has many .- ns[Namespace]

ユーザー管理

Organization 内で User がどのように管理されるかの詳細については、Organization Users を参照してください。

可視性

Organization はパブリックまたはプライベートにできます。パブリックな Organization は誰もが見ることができます。パブリックおよびプライベートな Group と Project を含めることができます。プライベートな Organization は、その Organization の Organization user だけが見ることができます。プライベートな Group と Project のみを含めることができます。

将来的には、Organization は Group と Project に対する内部(internal)可視性設定を追加で持つようになります。これにより、それを含む User だけが見られる内部 Organization を導入できます。これは、Organization に属する User だけが次のものを見られることを意味します。

  • Organization の URL に移動したときに 404 ではなく Organization のフロントページ
  • Organization の名前
  • Organization の説明
  • Activity ページ、Group、Project、User の概要などの Organization ページ。これらのページの内容は、各 User の特定の Group や Project へのアクセス権によって決まります。たとえばプライベートな Project は、Project 概要ではこの Project のメンバーだけが見られます。
  • 内部の Group と Project

最終目標として、私たちは次のシナリオを提供する予定です。

Organization の可視性Group/Project の可視性Organization を見られる人Group/Project を見られる人
publicpublic誰でも誰でも
publicinternal誰でもOrganization user
publicprivate誰でもGroup/Project メンバー
privateprivateOrganization userGroup/Project メンバー

ユーザータイプと権限

Organization には Administrator user type があります。他の Organization Regular User と比較して、Administrator は次のアクションを実行できます。

アクションOrganization AdministratorOrganization Regular User
Organization 設定の表示
Organization 設定の編集
Organization の削除
User の削除
Organization フロントページの表示
Group 概要の表示✓ (1)
Project 概要の表示✓ (1)
User 概要の表示
Organization アクティビティページの表示✓ (1)
TLG の Owner かつ Organization の Administrator である場合にトップレベル Group を Organization に転送

(1) Organization user はアクセス権を持つものだけを見られます。

Group および Project レベルのロールは、現在のままです。

Organization Administrator と Instance Administrator の関係

(インスタンス)Administrator user type を持つ User は、現在 self-managed の GitLab インスタンスを管理できます。 機能が Organization レベルに移動するにつれて、Organization Administrator は現在 Instance Administrator のみがアクセスできる機能により多くアクセスできるようになります。 私たちの SaaS プラットフォームでは、これによりエンタープライズが、現在は GitLab チームメンバーである Instance Administrator に依存せず、自身の Organization をより効率的に管理できるようになります。 SaaS では、Instance Administrator と Organization Administrator は異なるユーザーであることを想定しています。 self-managed インスタンスは一般に単一の organization にスコープされるため、この場合は両方の user type が同じ人物によって果たされる可能性があります。 たとえば User がシステムを悪用しているときなど、Instance Administrator による介入が必要な状況もあります。 その場合、Instance Administrator が取るアクションは Organization Administrator のアクションに優先します。 たとえば Instance Administrator は、Organization Administrator に代わって User を禁止または削除できます。

Organization のスコープ付き空間

非隔離のものを含むすべての Organization は、isolation と Cell 配置から独立した、それ自身のスコープ付き空間を占有します。これにより、それぞれが独自の名前空間を持ち、Cell 移動をまたいでパスを安定させ、Organization レベルの機能の居場所を提供できます。根拠については ADR 012: Organization はスコープ付き空間である を参照してください。

ルーティング

現在、グローバルに一意であることが https://gitlab.com/<path>/-/ 上で要求されるルーティング可能なエンティティとして扱われるのは、User、Project、Namespace、コンテナイメージのみです。 私たちは、既存のグローバルスコープのルートを許可するようルーティングルールを更新し、新たに並行する Organization スコープのルート群を導入します。 グローバルスコープのルートは既存のルートとの後方互換性を維持し、また GitLab.com 以外で単一の Organization を持つ可能性が高いプラットフォームに対してはパスの冗長性を減らします。 URL の仕組みは ADR 004 で決定されており、さらに詳しい情報は Current Organization にあります。

Organization の開発

以下は、Organization の大まかな開発ロードマップです。 このプロジェクトは複雑で、多くのエンジニアリングチーム間の調整が必要です。 これに対応して、ロードマップは次の大まかなフェーズに分割されています。

gantt
    dateFormat  YYYY-MM-DD
    axisFormat  X
    todayMarker off

    %% Dates are for illustration purposes only.
    Organization Sharding : active, sh, 2025-01-01, 2026-07-31
    Organization Product Feature : active, ui, 2025-01-01, 2027-02-01
    Non-isolated Organizations : milestone, now, 2026-07-31,
    Now : milestone, now, 2026-03-15,

    Organization Scoping: active, sc, 2026-01-01, 2026-10-31
    Full Parity : milestone, 2026-10-31,
    Organization Isolation Preview: milestone, 2026-10-31,

    Organization Level Features : co, after now, 2027-02-01

ワークストリーム

Organization のコンテキストと隔離

テーブルは、少数の例外を除いて、Organization に関連付けられるべきです。 Organization のテーブルには organization_idnamespace_id、または project_id のいずれかのカラムが必要であり、すべてのテーブルが直接または間接的に Organization に属するようにします。 この作業は現在、このエピックに含まれています: https://gitlab.com/groups/gitlab-org/-/work_items/11670organization_id 外部キーを持つすべてのテーブルは、NOT NULL の外部キー制約で定義されます。 すべてのコードパスは正しい organization_id の値を書き込み、デフォルト値に依存しません。

Organization Product Feature

Organization user 管理とダッシュボードを含む、Organization のユーザーインターフェースを構築します。

最初の Organization のターゲットには、次の機能セットを含めます。一部のケースでは、意図的に問題の範囲を制限しており、後でソリューションを拡張する予定です。

  • 作成
    • インストールプロセス中にデフォルト organization がシードされます。
    • GitLab.com では、Organization はユーザー登録時にのみ作成できます。
    • Self Managed と Dedicated では、登録時に Organization を作成するオプションは提供されません。
    • 管理者設定が Organization を作成する機能を制御します。この設定は GitLab.com では有効になっており、それ以外では無効になっています。
    • 管理者設定に加えて、フィーチャーフラグが Organization を作成する機能を制御します。GitLab.com では、このフィーチャーフラグは GitLab チームメンバーに対してのみ有効になります。それ以外では、このフィーチャーフラグはデフォルトで無効です。私たちは有効化しないよう警告しますが、self-managed インスタンスがそうするのを防ぐことはできません。
  • 編集
    • Organization は Settings > General セクションで編集できます。フォームフィールドには、名前、ID(読み取り専用)、説明、アバター、可視性が含まれます。Organization Administrator のみがアクセスできます。
    • Organization のスラッグは Settings > General セクションで変更できます。Organization Administrator のみがアクセスできます。
  • 可視性
    • Organization はパブリックまたはプライベートにできます。
    • Default Organization はパブリックです。
    • /explore のような Organization 固有でないエンドポイントへのリクエストは、デフォルトで default organization になります。
    • パブリックな Organization は誰もが見ることができます。パブリックおよびプライベートな Group と Project を含めることができます。
    • プライベートな Organization は、その Organization に属する User だけが見ることができます。プライベートまたは内部の Group と Project のみを含めることができます。
  • ユーザー
    • ユーザータイプと権限
    • Organization を作成すると、作成した User が Organization Administrator に任命されます。
    • Organization Administrator は、ユーザーの既存の user type を Regular User から Administrator へ、またはその逆に更新できます。
    • Organization ごとに少なくとも 1 人の Organization Administrator が必要です。
    • User は 1 つの Organization にのみ所属できます。User が所属したい Organization ごとに、新しいアカウントを作成する必要があります。
    • Organization Administrator は、自身の Organization 内のユーザーを削除できます。
    • ユーザーがグループやプロジェクトのメンバーになると、Organization user としても追加されます。Organization に追加されたことを知らせるメールを受け取ります。
    • ユーザーを最後のグループまたはプロジェクトから削除しても、Organization からは削除されないようにします。
    • ユーザーは自身のアカウントを削除できます。ユーザーが Organization の最後の Administrator である場合は、自身のアカウントを削除できないようにします。
  • グループ
    • 既存のすべてのトップレベル Group は default Organization に属します。
    • Group は Organization 内で作成できます。
    • Group は Organization Administrator が編集できます。
    • Group は Organization Administrator が削除できます。
    • Organization user は、Groups 概要でアクセス権を持つグループを表示できます。グループのリストはソートおよび検索できます。
  • プロジェクト
    • GitLab.com 上の既存のすべての Project は default Organization に属します。
    • Project は Organization 内で直接作成できず、代わりに Organization に属するグループ内で作成されます。
    • Project は Organization Administrator が編集できます。
    • Project は Organization Administrator が削除できます。
    • Organization user は、Projects 概要でアクセス権を持つプロジェクトを表示できます。プロジェクトのリストはソートおよび検索できます。
  • アクティビティ
    • Organization user は、Organization の Activity ページにアクセスできます。
  • Instance Administrators
    • 作成されたすべての Organization は、Admin Area セクションの Organizations に一覧表示されます。
    • Instance Administrator は新しいユーザーに Administrator または Regular User の user type を割り当てられます。
    • Instance Administrator はユーザーの既存の user type を更新できます。
    • Instance Administrator はユーザーを削除でき、そのユーザーの Organization との関連について警告を受け取ります。Instance Administrator は最後の Organization Administrator を削除できません。先に新しい Organization Administrator を割り当てる必要があります。
  • ナビゲーション
    • 現在の Organization のコンテキストは、ナビゲーションサイドバーに表示されます。

Organization レベルの機能

機能はインスタンスレベルとトップレベル Group から Organization レベルに移動します。新しい機能が Organization レベルで構築されることもあります。焦点は、認証や請求などのコア機能から始まります。

このワークストリームには 2 つのフェーズがあります。最初のフェーズは、Organization を実用可能にする重要な機能を移行することです。Organization リリース後の 2 番目のフェーズは、残りのすべての機能を Organization レベルにもたらすことです。

データ探索

最初のデータ探索から、User と Organization について次の情報を取得しました。

  • organization に接続されているユーザーのうち、大多数(98%)は単一の organization にのみ関連付けられています。これは、複数の Organization を横断する必要がある User は約 2% であると予想されることを意味します。
  • 大多数の User(78%)は、単一のトップレベル Group のメンバーにすぎません。
  • 現在のトップレベル Group の 25% は、organization に一致させることができます。
    • これらのトップレベル Group のほとんど(83%)は、複数のトップレベル Group を持つ organization に関連付けられています。
    • 複数のトップレベル Group を持つ organization のうち、トップレベル Group の数の(中央値)平均は 3 です。
    • 複数のトップレベル Group を持つ organization に一致するトップレベル Group のほとんどは、単一の organization に統合されることを意図していると想定されます(82%)。
    • 複数のトップレベル Group を持つ organization に一致するトップレベル Group のほとんどは、単一の価格帯のみを使用しています(59%)。
  • 現在のトップレベル Group のほとんどは、パブリックの可視性に設定されています(85%)。
  • 0.5% 未満のトップレベル Group が、別のトップレベル Group と Group を共有しています。 これらのグループは、解決策を決定するまで Organization に移行できません。

この分析に基づいて、Organization を展開する際にも同様の挙動が見られると予想します。

決定

リンク


Organizations ADR 010: Organization Read-Only Mode(Organization 読み取り専用モード)
Cell をまたぐ移行や分離有効化の際に使用される Organization 単位の読み取り専用状態を導入し、ソース Cell での書き込みをブロックしつつ読み取りは許可します。コントローラ、REST API、GraphQL、GitAccess、コンテナレジストリ、LFS、Sidekiq の各レイヤで強制されます。
Organizations ADR 014: Organization roles を Organization user types に改称
機能固有のロールとの混同を避けるため、Organization roles を Organization user types に改称することを提案する ADR。
Organizations リリースプロセス
Organization 機能に固有のリリースプロセス。
Organizations ADR 013: Organization 内で Top-Level-Group を作成するときに警告する
Organization レベルの課金が提供されるまで、サブスクリプションとクレジットが兄弟 Top-Level-Group 間で移転しないことを説明するため、Organization 内で Top-Level-Group を作成するユーザーに警告する決定を文書化します。
Organizations ADR 012: Organization はスコープ付き空間である
すべての Organization は、隔離や Cell 配置から独立して、それ自身のスコープ付き空間を占有します。
Organizations ADR 011: 共通オンボーディングワークフロー
GitLab Organization を unconfirmed から confirmed、さらに active へとあらゆるデプロイタイプを横断して移行させる 4 ステップの共通オンボーディングワークフローを定義します。該当しないステップは自動的に完了扱いになります。
Organization のライフサイクル
Organization が作成からソフト削除・ハード削除までどのように遷移するか、そしてすべての遷移がどのように監査されるかについて。
Organizations ADR 009: Organization ライフサイクルのためのステートマシン
なぜ organizations.state と organization_details.state_metadata によって支えられた state_machine gem を Organization ライフサイクルに使うのか。
Organizations ADR 008: GitLab.com における非隔離 Organization
コンテキスト GitLab.com 上のトップレベルグループ(TLG)は現在、GitLab が管理するデフォルト Organization 内に存在しています。 …
Organizations ADR 005: マルチステップ認証フロー
コンテキスト GitLabは現在、ユーザーがメール/ユーザー名とパスワードを同一ページで入力するシングルステップ認証プロセスを使用しています。このアプローチにはいくつかの制限があります。 …
Organization ユーザー
GitLab は設立当初から、シングルサーバー・グローバルユーザーアーキテクチャを採用してきました。GitLab.com のスケーリングの懸念とプラットフォーム間の製品機能セットの分化により、このモデ …
Organization: よくある質問
大規模な SaaS 顧客は Organization レベルでライセンスを取得することが想定されますか? はい。現時点では請求は Organization レベルに移行します。Organization …
Organizations ADR 001: Organizationコンテキスト解決
コンテキスト GitLabのデータパラダイムは、インスタンス全体のグローバルデータプールから、複数のインスタンス内の隔離されたOrganizationsのマルチテナントパターンへと移行します。 この変 …
Organizations ADR 004: Organizationパススコープ
コンテキスト 既存の製品では、現在のOrganizationコンテキストを常に特定できるわけではありません。現在のシステムを変更してOrganizationsを適切に名前空間化する必要があります。 決 …
Organizations ADR 006: 管理と設定
コンテキスト 現状 GitLabの管理はInstance Levelで行われます。管理機能には以下が含まれます。 ユーザー管理などの顧客データの管理 可視性レベルの制限などのアプリケーション設定 サイ …
Organizations ADR 007: Self-ManagedとDedicatedの単一Organization
コンテキスト Organizations機能はGitLabにマルチテナントアーキテクチャを導入し、GitLab.comの複数の隔離されたOrganizationsを可能にします。このアーキテクチャは、 …
Current Organization
私たちは、すべてのエントリポイントで現在のOrganization IDが定義されるようにします。これらのエントリポイントには、Webリクエスト、バックグラウンドジョブ、スケジュールされたタスクが含ま …
Organization 隔離
このブループリントは、Organization が隔離されるための要件を詳述しています。 Organization とは何かについての詳細は、Organization を参照してください。 隔離フラグ …
Organizations - 認証 - OpenID/OAuth クライアント
This page contains information related to upcoming products, features, and functionality. It is …
Organization ログイン設計ドキュメント
この設計では、Organization 固有のログインページをサポートする多段階アプローチを導入するために、 現在の GitLab のログインフローを変更します。 現在のログイン体験 現在のユーザーの …
Organization 設定
2025 年 3 月時点で、このドキュメントは見直し中です。Organization 設定の設計の現在の状態を示しますが、今後数ヶ月で変更される可能性があります。 既存の管理エリア設定のほとんどについ …
OrganizationsとBilling
現時点では、BillingはOrganizationレベルに移動します。これは進行中の作業です。
OrganizationsとCells
OrganizationsとCellsの統合 Organizationの隔離とは何か、およびなぜCellsに必要なのかをまとめた動画の紹介をご覧ください。 GitLab.comの運営にはいくつかの重要 …