users
概要
システムのユーザーを管理するテーブル。明示的な登録操作はなく、認証済みリクエストが届いた時点で自動作成される。
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| ユーザー | users | id | uuid | ◯ | gen_random_uuid() | ||||
| name | varchar(255) | 表示名。認証ヘッダの値で更新される | |||||||
| varchar(255) | ◯ | 小文字に正規化して保存する | |||||||
| is_admin | boolean | false | SURVEY_ADMIN_EMAILS に含まれるかで自動判定 | ||||||
| created_at | timestamptz | now() | |||||||
| updated_at | timestamptz | now() |
リレーション
- 参照される側:
surveys.created_by/surveys.updated_by(restrict) - 参照される側:
survey_permissions.user_id(cascade) - 参照される側:
survey_versions.created_by(restrict) - 参照される側:
user_survey_favorites.user_id(cascade) - 参照される側:
question_library_items.created_by(set null) - 参照される側:
external_surveys.imported_by(set null)
インデックス
- 主キー (id)
- UNIQUE: email
注記
is_adminはリクエストのたびにSURVEY_ADMIN_EMAILSと照合され、値が変わっていれば更新される。DB を直接書き換えても環境変数が正となる- 管理者は権限レコードの有無に関わらず、すべての案件を閲覧・編集できる
- 取り込み API を API キー認証で呼び、
x-user-emailが指定されなかった場合はimport-bot@local(表示名Import Bot)が自動作成される - 論理削除は未サポート