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 セッションのアカウントと一致するかチェック