Documents
Home

05 API エンドポイント

5.1 基本方針


5.2 エンドポイント一覧

/api/v1/
├── auth/
│   ├── POST /oauth/redirect                    # Discord OAuth リダイレクト URL 発行
│   ├── POST /oauth/callback                    # OAuth コールバック・セッション発行
│   ├── POST /logout                            # ログアウト
│   ├── POST /session/refresh                   # セッション更新
│   ├── POST /passkey/register                  # パスキー登録
│   ├── POST /passkey/verify                    # パスキー認証
│   ├── POST /totp/setup                        # TOTP セットアップ
│   ├── POST /totp/verify                       # TOTP 認証
│   ├── POST /device/register                   # デバイスフィンガープリント登録
│   ├── POST /emergency/request                 # 緊急キー申請(本人)
│   ├── POST /emergency/issue/:id               # 緊急キー発行(管理者)
│   ├── POST /emergency/verify                  # 緊急キー使用・検証
│   └── POST /permanent-delete-token            # 完全削除用確認トークン発行(管理者・WebUI のみ)
│
├── members/
│   ├── GET    /                                # メンバー一覧
│   ├── POST   /                                # メンバー登録(管理者)
│   ├── GET    /:id                             # メンバー詳細
│   ├── PATCH  /me                              # 自分のプロフィール編集
│   ├── PATCH  /:id                             # メンバー編集(管理者)
│   ├── DELETE /:id                             # メンバー退会処理(管理者・ソフトデリート)
│   ├── GET    /:id/roles                       # メンバーロール取得
│   ├── PUT    /:id/roles                       # メンバーロール更新(管理者)
│   ├── GET    /:id/discord-accounts            # Discord アカウント一覧
│   ├── GET    /me/login-history                # 自分のログイン履歴
│   ├── GET    /me/notification-settings        # 自分のログイン通知設定
│   └── PATCH  /me/notification-settings        # ログイン通知設定変更
│
├── venues/
│   ├── GET    /                                # 会場一覧
│   ├── POST   /                                # 会場作成(副管理者以上)
│   ├── GET    /:id                             # 会場詳細
│   ├── PATCH  /:id                             # 会場編集(副管理者以上)
│   └── DELETE /:id                             # 会場削除(管理者・ソフトデリート)
│
├── sessions/
│   ├── GET    /                                # 活動セッション一覧
│   ├── POST   /                                # 活動登録(副管理者以上・全メンバーの attendance_plans を自動生成)
│   ├── GET    /:id                             # 活動詳細
│   ├── PATCH  /:id                             # 活動編集(副管理者以上)
│   ├── DELETE /:id                             # 活動削除(管理者・ソフトデリート)
│   ├── GET    /:id/attendance-plans            # 出欠予定一覧
│   ├── POST   /:id/attendance-plans/bulk       # 出欠予定一括作成(副管理者以上)
│   ├── PATCH  /:id/attendance-plans/me         # 自分の出欠予定変更
│   ├── PATCH  /:id/attendance-plans/:member_id # メンバーの出欠予定変更(副管理者以上)
│   ├── GET    /:id/attendance-records          # 出席実績一覧
│   ├── POST   /:id/attendance-records/me       # 自分の出席実績登録
│   ├── POST   /:id/attendance-records/:member_id # メンバーの出席実績登録(副管理者以上)
│   ├── PATCH  /:id/attendance-records/me       # 自分の出席実績変更
│   └── PATCH  /:id/attendance-records/:member_id # メンバーの出席実績変更(副管理者以上)
│
├── tasks/
│   ├── GET    /                                # 作業一覧
│   ├── POST   /                                # 作業作成(全メンバー)
│   ├── GET    /:id                             # 作業詳細
│   ├── PATCH  /:id                             # 作業編集(全メンバー)
│   ├── DELETE /:id                             # 作業削除(ソフトデリート・全メンバー)
│   ├── POST   /:id/restore                     # 削除済み作業の復元(全メンバー)
│   ├── GET    /deleted                         # 削除済み作業一覧(管理者)
│   ├── DELETE /:id/permanent                   # 作業完全削除(管理者・WebUI のみ)
│   ├── GET    /:id/children                    # 子作業一覧
│   ├── GET    /:id/progress                    # 進捗取得
│   ├── GET    /:id/assignments                 # 担当者一覧
│   ├── PUT    /:id/assignments                 # 担当者更新(全メンバー)
│   ├── GET    /:id/dependencies                # 依存関係取得
│   ├── POST   /:id/dependencies                # 依存関係追加
│   ├── DELETE /:id/dependencies/:dep_id        # 依存関係削除
│   ├── GET    /:id/memos                       # メモ一覧
│   ├── POST   /:id/memos                       # メモ追加
│   ├── PATCH  /:id/memos/:memo_id              # メモ編集
│   ├── DELETE /:id/memos/:memo_id              # メモ削除(ソフトデリート)
│   ├── GET    /:id/history                     # 進捗履歴
│   ├── GET    /:id/sessions                    # 紐付き活動セッション
│   ├── POST   /:id/sessions                    # 活動セッション紐付け追加
│   ├── PATCH  /:id/sessions/:session_id        # 紐付け編集
│   └── DELETE /:id/sessions/:session_id        # 紐付け削除
│
├── procedures/
│   ├── GET    /templates                       # テンプレート一覧
│   ├── POST   /templates                       # テンプレート作成(全メンバー)
│   ├── GET    /templates/:id                   # テンプレート詳細
│   ├── PATCH  /templates/:id                   # テンプレート編集(全メンバー)
│   ├── DELETE /templates/:id                   # テンプレート削除(ソフトデリート・全メンバー)
│   ├── POST   /templates/:id/restore           # テンプレート復元(全メンバー)
│   ├── DELETE /templates/:id/permanent         # テンプレート完全削除(管理者・WebUI のみ)
│   ├── GET    /templates/:id/steps             # ステップ一覧
│   ├── POST   /templates/:id/steps             # ステップ追加
│   ├── PATCH  /templates/:id/steps/:step_id    # ステップ編集
│   ├── DELETE /templates/:id/steps/:step_id    # ステップ削除
│   ├── GET    /templates/:id/steps/:step_id/transitions        # 遷移一覧
│   ├── POST   /templates/:id/steps/:step_id/transitions        # 遷移追加
│   ├── PATCH  /templates/:id/steps/:step_id/transitions/:tid   # 遷移編集
│   ├── DELETE /templates/:id/steps/:step_id/transitions/:tid   # 遷移削除
│   ├── GET    /templates/:id/results           # 結果定義一覧
│   ├── POST   /templates/:id/results           # 結果定義追加
│   ├── PATCH  /templates/:id/results/:result_id # 結果定義編集
│   ├── DELETE /templates/:id/results/:result_id # 結果定義削除
│   ├── GET    /instances                       # 手順実績一覧
│   ├── POST   /instances                       # 手順実績作成(全メンバー)
│   ├── GET    /instances/:id                   # 手順実績詳細
│   ├── DELETE /instances/:id                   # 手順実績削除(ソフトデリート・全メンバー)
│   ├── POST   /instances/:id/restore           # 手順実績復元
│   ├── DELETE /instances/:id/permanent         # 手順実績完全削除(管理者・WebUI のみ)
│   ├── GET    /deleted                         # 削除済み一覧(管理者)
│   ├── GET    /instances/:id/steps             # 手順実績ステップ一覧
│   └── PATCH  /instances/:id/steps/:step_id    # ステップ結果更新(全メンバー)
│
├── notifications/
│   ├── GET    /rules                           # 通知ルール一覧(副管理者以上)
│   ├── POST   /rules                           # 通知ルール作成(副管理者以上)
│   ├── GET    /rules/:id                       # 通知ルール詳細(副管理者以上)
│   ├── PATCH  /rules/:id                       # 通知ルール編集(副管理者以上)
│   ├── DELETE /rules/:id                       # 通知ルール削除(副管理者以上)
│   ├── GET    /rules/:id/timings               # タイミング一覧(副管理者以上)
│   ├── POST   /rules/:id/timings               # タイミング追加(副管理者以上)
│   ├── PATCH  /rules/:id/timings/:tid          # タイミング編集(副管理者以上)
│   └── DELETE /rules/:id/timings/:tid          # タイミング削除(副管理者以上)
│
├── urls/
│   ├── POST   /                                # URL 追加
│   ├── PATCH  /:id                             # URL 編集
│   └── DELETE /:id                             # URL 削除(ソフトデリート)
│
└── admin/
    ├── GET    /members                         # 全メンバー一覧(管理者)
    ├── GET    /deleted                         # 削除済みメンバー一覧(管理者)
    ├── GET    /roles/team                      # チームロール一覧
    ├── POST   /roles/team                      # チームロール作成(管理者)
    ├── PATCH  /roles/team/:id                  # チームロール編集(管理者)
    ├── DELETE /roles/team/:id                  # チームロール削除(管理者)
    ├── GET    /roles/task                      # 作業ロール一覧
    ├── POST   /roles/task                      # 作業ロール作成(管理者)
    ├── PATCH  /roles/task/:id                  # 作業ロール編集(管理者)
    └── DELETE /roles/task/:id                  # 作業ロール削除(管理者)

5.3 権限チェックまとめ

スコープ 制御方法
/api/v1/admin/* ミドルウェアで管理者ロールを一括チェック
副管理者以上が必要な操作 ミドルウェアで sub_admin / admin をチェック
完全削除 (/permanent) リクエスト元が WebUI かつ管理者であることをチェック
自分のみ操作(/me) セッションのアカウントと一致するかチェック