Projectの作成と管理
Projectは、実験、モデル、データセット、Artifactをまとめる単位です。メンバーの権限とArtifactの保存先も、Projectごとに決まります。
| 操作 | できる人 | 場所 |
|---|---|---|
| 作成 | 無効化されていないユーザー全員 | Projectの切り替えの[+ プロジェクトを作成]。全体管理者は「全体管理」→[プロジェクト]からも |
| 説明・公開範囲・保存先の変更 | ProjectのAdmin | [プロジェクト設定]の「プロジェクト」 |
| アーカイブ | ProjectのAdmin、全体管理者 | [プロジェクト設定]の最下部、「全体管理」→[プロジェクト] |
| 元に戻す・完全に削除 | 全体管理者 | 「全体管理」→[プロジェクト] |
Projectを切り替える
サイドバーの上の「プロジェクト」で、今のProjectの名前を押します。幅の狭い画面では、上部バーの下にあります。
![]()
一覧には、自分が見られるProject(PublicのProjectと、メンバーになっているPrivateのProject)が出ます。各行には名前と自分のRoleが並び、Privateには鍵の印が付きます。今のProjectには印が付きます。
- ↑↓で選んでEnterで開きます。Escで閉じます。
- Projectが8件以上あると、上に絞り込みの入力欄が出ます。
- 自分がメンバー(直接付与、groupへの付与)のProjectが先に並び、線の下に、Publicや全体管理者だから開けるだけのProjectが「参加していない」の印付きで並びます。
- 同じ名前のProjectが2つ以上あると、名前の下に作成日が出ます。
- 一番下の[+ プロジェクトを作成]から、新しいProjectを作れます。
Projectを作成する
- Projectの切り替えを開き、一番下の[+ プロジェクトを作成]を押します。全体管理者は、「全体管理」→[プロジェクト]の[プロジェクトを作成]からも作れます。
- 次の値を入力します。
- [作成]を押します。
| 項目 | 入力する値 |
|---|---|
| 名前 | 必須。例: 音声認識の実験 |
| 説明(任意) | Projectの目的など |
| 公開範囲 | 「Public」(既定)か「Private」。違いは次の節 |
| メンバー(任意) | Privateを選んだときだけ出ます。下の手順で追加します |
| Artifact保存先 | 既定の保存先が選ばれています(保存先の設定) |
見られるProjectに同じ名前のものがあると、名前の欄の下に「同じ名前のプロジェクトがあります」と出ます。作成はできますが、切り替えで見分けにくくなるので別の名前をおすすめします。
作成すると、そのProjectが開きます。作成した人は、そのProjectのAdminになります。
![]()
Privateで、ほかに使う人がいるときは「メンバー(任意)」で追加します。
- [メンバーを追加]の欄に、名前、メールアドレス、ユーザー名の先頭を入力し、候補からユーザーを選びます。SSOのユーザーは、一度ログインするまで候補に出ません。
- 行ごとにRoleを選びます。既定はEditorです。
- 外すときは、その行の[外す]を押します。
候補には、有効な人のアカウントだけが出ます。自分、Service Account、無効化したユーザーは出ません。メンバーは、あとから[プロジェクト設定]の「Members」でも追加できます(権限とRole)。
ログインしたときに開くProject
ログインしたとき(アプリ名を押したとき、全体設定から戻ったときも)は、次の順にProjectを開きます。
- このブラウザで最後に開いたProject(まだ開けるなら)
- 自分がメンバー(直接付与、groupへの付与)のProjectのうち、新しいもの
- どちらも無ければ「プロジェクト」の画面
他人のPublicのProjectや、全体管理者として見えるだけのProjectには、自分から開くまで入りません。初めてログインした人が、他人のProjectに気づかずに記録してしまうのを防ぐためです。
「プロジェクト」の画面には、「参加しているプロジェクト」と「メンバーでなくても入れるプロジェクト(Public)」が並び、名前を押すと開きます。最初のProjectは[プロジェクトを作成]から作ります。全体管理者の、メンバーでないPrivateのProjectは、「全体管理」→[プロジェクト]にあります。
公開範囲(PublicとPrivate)
| 公開範囲 | 見られる人 | Role |
|---|---|---|
| Public | ログインできる全員 | メンバーに追加しなくても、Editorとして使えます |
| Private | メンバー(直接付与、groupへの付与)だけ | メンバーに付けたRole |
- PublicのProjectでも、Adminはメンバー(直接付与、groupへの付与)にだけ付きます。
- Publicでは、ログインできる全員がEditor以上になります。メンバーにViewerを付けても、その人はEditorとして使えます。見るだけにしたい人がいるときは、Privateにします。
- Publicの権限が付くのは、有効な人のアカウントだけです。Service Accountとランチャーには付きません。
- 「Members」の一覧と、「全体管理」→[プロジェクト]の「メンバー数」には、Publicで使っているだけの人は出ません。
公開範囲は、ProjectのAdminが[プロジェクト設定]の「プロジェクト」で変えます。[公開範囲]で選び、[保存]を押すと確認が出ます。Publicにするときは「ログインできる全員がEditorとして見られて、編集できるようになります」、Privateにするときは「メンバーでない人は見られなくなります」と表示されるので、内容を確かめて[変更を保存]を押します。
Artifactの保存先も同じ欄で変えられます。変えても既存のArtifactは今の保存先に残り、これから保存する分だけが新しい保存先に入ります。保存先を変えたときも、[保存]の後に確認が出ます。
公開範囲の機能が入る前からあるProjectは、更新したときにPrivateになります。それまでと同じく、メンバーだけが見られます。
全体管理者
全体管理者は、ブラウザでログインしていれば、PrivateのProjectもメンバーでないProjectも、Adminとして扱われます。Projectの切り替えには、アーカイブしていないすべてのProjectが出ます。
API tokenで操作するときは、全体管理者でも、そのProjectのRoleが必要です(権限とRole)。
アーカイブする
使わなくなったProjectは、アーカイブすると一覧から消えます。データは消えず、全体管理者があとから元に戻せます。
- [プロジェクト設定]の一番下の「プロジェクトをアーカイブ」で、[アーカイブ]を押します(ページ先頭の目次の「プロジェクトをアーカイブ」からも移れます)。全体管理者は、「全体管理」→[プロジェクト]の行の[アーカイブ]からもできます。
- 確認のダイアログで[アーカイブ]を押します。ダイアログには、止まるもの(このProjectに限定したAPI tokenの本数、Sweep・フック・自動実行・自動の昇格)が出ます。
アーカイブしたProjectは、Projectの切り替えから消え、誰も開けなくなります。Run、モデル、Artifactなどのデータは残ります。[プロジェクト設定]からアーカイブすると、プロジェクトの一覧の画面に「『名前』をアーカイブしました」と出ます(別のProjectが勝手に開くことはありません)。
アーカイブしたProjectのURLを開くと、メンバーと全体管理者には「このプロジェクトはアーカイブされています」と出ます。メンバーでない人には、存在しないProjectと同じ表示になります。
- 待機中・実行中のJobがあると、アーカイブできません(409
project_has_active_jobs)。[Jobs]でJobが終わるのを待つか、止めてからもう一度アーカイブします。 - アーカイブの間は、そのProjectに限定したAPI token(workerやService Accountのものを含む)が401になります。SDKで記録中のRunも、それ以降は記録できません。
- Sweep、フック、推論・評価の自動実行、自動の昇格も止まります。
元に戻す
全体管理者が戻します。
![]()
- 右上のユーザーメニューの[全体設定]を開き、サイドバーの「全体管理」で[プロジェクト]を開きます。
- 「アーカイブ済みも表示」を選びます。アーカイブしたProjectが「アーカイブ済み」として出ます。Projectが多いときは、上の欄で名前を絞り込めます。一覧の「Admin」の列には、そのProjectのAdminの人の名前が出ます(困ったときの連絡先)。メンバー数にはService Accountも数えます。
- その行の[元に戻す]を押し、確認のダイアログで[元に戻す]を押します。
メンバーとデータは、アーカイブする前のまま使えます。Projectに限定したAPI tokenも、また使えるようになります。
完全に削除する
アーカイブしたProjectを、データごと消します。元に戻せません。全体管理者だけが、アーカイブ済みのProjectだけを削除できます。
- 「全体管理」→[プロジェクト]で、「アーカイブ済みも表示」を選びます。
- 削除するProjectの行で[完全に削除]を押します。
- 「確認のため、プロジェクト名を入力してください」にProjectの名前を入力し、[完全に削除]を押します。同じ名前のProjectと取り違えないよう、ダイアログには作成日とアーカイブした日も出ます。
削除すると、次のようになります。
- Run、モデル、データセット、Artifact、Job、レポート、メンバーとgroupへの付与など、Projectに属するものがすべて消えます。
- Artifactの保存先のファイルは、猶予(
MMT_ARTIFACT_DELETE_GRACE_DAYS、既定7日)が過ぎてから、ガベージコレクタが消します。猶予の間は保存先にファイルが残ります。 - そのProjectに限定したAPI tokenは失効し、Service Accountは無効になります。
- 監査ログは残ります。「全体管理」→[監査ログ]で読めます。
- 外部のコンピュータに置いたデータセットのキャッシュなど、mado ML Trackingの外にあるものは消えません。
アーカイブしていないProjectは削除できません(409 project_not_archived)。
監査ログ
Projectの作成と管理の操作は、監査ログに残ります(監査ログ)。
| 操作 | 監査ログの操作名 |
|---|---|
| 作成 | project.create。作成時に追加したメンバーはproject.member.set |
| 説明・公開範囲・保存先の変更 | project.update |
| アーカイブ | project.archive |
| 元に戻す | project.restore |
| 完全に削除 | project.purge |
APIで操作する
| 操作 | API | 必要な権限 |
|---|---|---|
| 作成 | POST /api/projects(name、description、visibility、artifactBackend、members) | ログインしたユーザー。API tokenはadmin scopeで、Projectに限定されていないもの |
| 1件を読む | GET /api/projects/<Project ID>。アーカイブ済みは、メンバーと全体管理者に404 project_archived | ProjectのViewer |
| 変更 | PATCH /api/projects/<Project ID>(description、visibility、artifactBackend) | ProjectのAdmin |
| アーカイブ | POST /api/projects/<Project ID>/archive | ProjectのAdmin |
| 一覧(アーカイブ済みを含める) | GET /api/admin/projects?includeArchived=true | 全体管理者 |
| 元に戻す | POST /api/admin/projects/<Project ID>/restore | 全体管理者 |
| 完全に削除 | DELETE /api/admin/projects/<Project ID> | 全体管理者 |
| メンバーの候補の検索 | GET /api/users?query=<名前の先頭> | Projectを作れる人。Projectに限定したtokenでは、そのProjectのAdminとadmin scope |
visibilityはpublicかprivate、membersは{"userId": "<ユーザーID>", "role": "editor"}の配列です。同じユーザーを2回書くと400、存在しないユーザーは404、Service Accountや無効なユーザーは400になり、Projectは作られません。詳しくは独自APIを参照してください。