Personal Access Token
最終更新: 2026年7月3日
PersonalAccessToken は、Weegloo プラットフォームアカウント(Weegloo User)がサーバー・CI・スクリプトから自身の権限で CMA・Upload・CDA を呼び出すときに使う長期トークンです。ブラウザのログインフローが毎回発行する短期トークンとは異なり、一度発行すると削除するまで有効であり続けます。
PersonalAccessToken は Space ではなくユーザーアカウントに紐づきます。そのためエンドポイントは /spaces/{spaceId} の下ではなく最上位の /personal-access-tokens パスにあり、パス変数に spaceId がありません。このトークンを使う呼び出し元は、そのユーザーが参加しているすべての Space で、各 Space の SpaceRole が定めた権限の範囲だけ動作します。
リソース構造
次は PersonalAccessToken を生成したときのレスポンスです。sys(システム属性)にトークン値とスコープが含まれ、本文に name があります。
{
"sys": {
"id": "5KmQ2pVnRb8sTfWcXd3LhJ9gAe",
"type": "PersonalAccessToken",
"createdBy": { "sys": { "id": "2bN7kRpQ9mWx4Lt6Vy0Cf3Hs8", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T11:41:47.409Z",
"updatedBy": { "sys": { "id": "2bN7kRpQ9mWx4Lt6Vy0Cf3Hs8", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T11:41:47.409Z",
"accessToken": "PSNAT5SCq8Lm2vK9pXfR1Zt0Nc4Wd6Hg5Ua2Ee9Ck3PoYx8Bj6Hg5Ua2Ee9Ck3Po…",
"scopes": ["PERSONAL"]
},
"name": "商品同期サーバー"
}主なキー:
sys.id: PersonalAccessToken の一意な識別子です。単一取得・削除パスの{personalAccessTokenId}に入ります。sys.accessToken: API 呼び出しに使うシークレットトークン値です。生成レスポンスだけでなく、その後の取得レスポンスにも同じ値がそのまま返されるため、漏えいに注意が必要です(下のセキュリティの節を参照)。sys.scopes: トークンの権限スコープです。PersonalAccessToken は発行時に常に["PERSONAL"]です。name: 生成時に指定したトークン名です(例:商品同期サーバー)。
上の例の accessToken はシークレット値のため、例示用の文字列に置き換えています。実際には PSNAT で始まる長く不透明な文字列であり、発行後に再取得しても同じ値が返ります。
システム属性 (sys)
すべての PersonalAccessToken は、共通のシステム属性とトークン固有の属性を sys オブジェクトに含みます。createdBy、updatedBy は Refer 形式({ "sys": { "id", "type": "Refer", "targetType" } })で入ります。このリソースには space がありません。Space に紐づかず、ユーザーアカウントに紐づくユーザーレベルのトークンだからです。
| 属性 | 型 | 説明 |
|---|---|---|
id | string | リソースの一意な識別子。 |
type | string | リソースの種類。PersonalAccessToken は常に "PersonalAccessToken"。 |
createdBy | Refer<User> | 生成したユーザー。 |
createdAt | string (date-time) | 生成日時。 |
updatedBy | Refer<User> | 最後に更新したユーザー。 |
updatedAt | string (date-time) | 最終更新日時。 |
accessToken | string | API 呼び出しに使うシークレットトークン値。生成・取得のどちらのレスポンスにもそのまま返されるため、外部に漏えいしないよう扱う必要があります。 |
scopes | string array | トークンの権限スコープ。PersonalAccessToken は常に ["PERSONAL"]。 |
本文属性:
| 属性 | 型 | 説明 |
|---|---|---|
name | string (1~64) | トークン名。生成時に指定します。 |
セキュリティ: 露出させない
PersonalAccessToken は、そのユーザーの身元をそのまま持ちます。このトークンで呼び出すと、ユーザーが持つすべての Space メンバーシップの SpaceRole 権限で CMA・Upload・CDA を呼び出せます。権限の範囲が広く寿命が長いため、一度漏れるとそのユーザーの全権限が露出します。
- どこにも露出しないようシークレットとして扱います。 一度漏れると、そのユーザーの全権限が外部へ渡ります。PersonalAccessToken はサーバー・CI など信頼された環境専用であり、コード・ログ・ストレージ・エラーメッセージのいずれにも平文で残しません。
- ブラウザ・クライアントコードに埋め込みません。 ブラウザへ送った値はユーザーがそのまま閲覧できるため、事実上公開されたことになります。ブラウザで動作する管理画面は、コンテンツスタジオのログインフローで受け取る短期トークン(画面セッションに限定)を使います。
- 訪問者に公開する読み取り専用の配信には、最小権限(least-privilege)の SpaceRole に紐づけた DeliveryAccessToken を使います。公開クライアントに PersonalAccessToken を使いません。
accessTokenは生成時点だけでなく、取得レスポンスにも同じ値がそのまま返ります。取得結果をログ・画面・外部ストレージにそのまま残さないよう注意します。- 更新 API がありません(PUT・PATCH なし)。トークンを差し替えるには、既存のトークンを削除して新しく発行します。漏えいが疑われる場合はただちに削除して無効化し、新しいトークンに切り替えます。
(出典: weegloo-user-login・weegloo-delivery-access-token スキル、.claude/rules/weegloo-api-endpoints.md。)
API
以下のすべてのエンドポイントの基準 URL は https://cma.weegloo.com/v1 であり、Authorization ヘッダーに CMA を認証する Bearer トークンが必要です。PersonalAccessToken はユーザーレベルのリソースのため、パスに spaceId がありません。また更新 API がないため、一覧・生成・単一取得・削除の 4 つだけがあります。
関連ドキュメント
- Delivery Access Token: 訪問者に公開する読み取り専用の配信トークン(ブラウザ用)。
- SpaceRole: このユーザーが各 Space で持つ権限の範囲。
