Appearance
Actor
Envelope の actor は、操作した主体(principal)と、認証に使われた資格情報(credential)を 分けて記録します。「誰の操作か」と「どうやって認証されたか」は別の問いだからです。
たとえば同じユーザーの操作でも、ブラウザからの操作と PAT を使った CLI からの操作では、 principal は同じで credential が変わります。 操作の責任を追うときは principal、使われた資格情報を特定・失効するときは credential を見ます。
操作の経路に関する情報は、actor ではなく context に入ります。
Objects
Actor
操作した主体と、その認証に使われた資格情報です。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
principal | Principal | 必須 | 操作した主体 |
credential | Credential | 必須 | 認証に使われた資格情報 |
session | Session | 任意 | 資格情報の検証によって確立された認証状態。credential.type が session または api_key のときに入ります。 |
Principal
操作した主体です。「この操作が誰の権限で行われたか」を表します。 ユーザーだけでなく、APIキーやワークフロー、Codatum 内部の処理も主体になります。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
type | PrincipalType | 必須 | 主体の種類 |
uid | string | 条件付き | 主体の識別子type が unknown / anonymous 以外のときに入ります。 |
email_addr | string | 条件付き | 主体のメールアドレスtype が user のときに入ります。sensitivity: pii |
Credential
認証に使われた資格情報です。失効させる単位でもあり、 この資格情報を無効にすれば、それを使った以降の操作は行えなくなります。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
type | CredentialType | 必須 | 資格情報の種類 |
uid | string | 条件付き | 資格情報の識別子。PAT のように、主体とは別に発行・失効できる資格情報が持ちます。type が pat のときに入ります。 |
masked | string | 条件付き | 値の一部を隠した表示用の文字列。どの資格情報が使われたかを、値そのものを残さずに見分けるために使います。type が pat のときに入ります。 |
Session
資格情報の検証によって確立された、期限付きの認証状態です。
一般的なセッションとは異なり、有効期限の更新のたびに新しい uid が払い出されます。 そのため、同じログインから行われた操作でも uid は一致せず、ログイン単位でまとめる用途には使えません。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
uid | string | 必須 | 認証状態の識別子 |
issued_at | timestamp | 任意 | 認証状態が確立された時刻 |
expires_at | timestamp | 任意 | 認証状態の有効期限 |
Enums
PrincipalType
操作した主体の種類です。
| 値 | 説明 |
|---|---|
user | Codatum のユーザー |
api_key | APIキー(APIキーを使う署名付き埋め込みなどを含む) |
workflow | ワークフローによる自動実行 |
system | Codatum 内部の処理(定期実行など) |
anonymous | 認証を必要としない操作のため、主体が特定されない |
unknown | 主体が特定できなかった |
CredentialType
認証に使われた資格情報の種類です。
| 値 | 説明 |
|---|---|
session | ログインによって発行されたセッション |
pat | パーソナルアクセストークン(PAT) |
api_key | APIキー |
system | Codatum 内部の処理による実行 |
none | 資格情報なし(認証を伴わない内部処理や、資格情報を特定できない場合) |