登場人物
ロール一覧
| ロール名 | 説明 | 主な操作 |
|---|---|---|
| 調査設計担当者 | 調査票の設計・編集を担当する。案件に対して edit 権限を持つ |
案件作成、セクション・設問の編集、分岐設定、保存(版作成)、権限設定、JSON 出力、質問ライブラリからの流用 |
| レビュアー | 作成された調査票を確認する。案件に対して view 権限を持つ |
案件・セクション・設問の閲覧、プレビュー、版履歴の確認、案件・版の複製 |
| 管理者 | SURVEY_ADMIN_EMAILS にメールアドレスが登録されたユーザー |
全案件の閲覧・編集、任意の案件の削除、任意の過去質問データの削除 |
| frontend(Web UI) | 調査設計担当者・レビュアーが操作する Next.js アプリケーション | Google ログイン、API 呼び出し、分岐のプレビュー評価 |
| backend(API サーバー) | Hono 製の REST API。AWS Lambda 上で動作する | ユーザー解決、権限判定、データ永続化、版のスナップショット作成、OpenAPI 提供 |
| Chrome 拡張 | CS の編集画面上で動作する Plasmo 製の拡張 | CS からの一括取り込み、CS への調査票投入、CS の API ログ収集 |
| Import Bot | 取り込み API を API キーで呼ぶ際に使われるシステムユーザー | 取り込みの実行者として履歴に記録される |
| Creative Survey | 調査票の配信ツール(外部システム) | 調査票の配信・回答収集。本システムの出力先かつ取り込み元 |
権限の効き方
view 権限では設問の更新・保存・出力・権限変更はできません(backend が edit 権限を要求し 404 を返します)。管理者は権限レコードの有無に関わらず、すべての案件を閲覧・編集できます。
ロール関係図
graph TD
Designer[調査設計担当者]
Reviewer[レビュアー]
Admin[管理者]
Web[frontend Web UI]
API[backend API]
Ext[Chrome 拡張]
Bot[Import Bot]
CS[(Creative Survey)]
Designer --> Web
Reviewer --> Web
Admin --> Web
Web --> API
Designer --> Ext
Ext -->|調査票 JSON を投入| CS
Ext -->|既存調査票を取得| CS
Ext -->|取り込み API| API
Ext -.->|API キー認証時の実行者| Bot
Bot --> API
権限とできることの対応
| 操作 | view | edit | 管理者 |
|---|---|---|---|
| 案件の閲覧・プレビュー | ◯ | ◯ | ◯ |
| 版履歴の閲覧 | ◯ | ◯ | ◯ |
| 案件・版の複製 | ◯ | ◯ | ◯ |
| テーマ更新・セクション/設問の編集 | ✕ | ◯ | ◯ |
| 保存(版の作成)・ロールバック | ✕ | ◯ | ◯ |
| JSON 出力 | ✕ | ◯ | ◯ |
| 権限の変更 | ✕ | ◯ | ◯ |
| 案件の削除 | ✕ | 作成者のみ | ◯ |
| 過去質問データの削除 | ✕ | ✕ | ◯ |