システムプロパティ (sys)
最終更新: 2026年7月3日
WEEGLOO のすべてのリソースのレスポンスは 2 つに分かれます. fields のようにそのリソースの本体データが一方で, システムが管理するメタデータがもう一方です. このメタデータはすべて sys オブジェクトに格納されます.
sys には, リソースの識別子 (id), 種別 (type), 作成・更新日時, バージョン, 他リソースとの関係が入ります. このページでは, すべてのリソースが共通して持つ sys の構造と, リソース種別ごとの違いを一箇所にまとめます. 個別リソースのレファレンスではそのリソース固有の sys キーのみを個別に説明し, 共通部分はこのページを参照します.
共通フィールド
ほぼすべてのリソースの sys は次のフィールドを持ちます. createdBy・updatedBy と space は, 他リソースを指す Refer の形 ({ "sys": { "id", "type": "Refer", "targetType" } }) で入ります. 詳しい形は下の Refer の形 で扱います.
| プロパティ | タイプ | 説明 |
|---|---|---|
id | string | リソース固有の識別子. 単一取得・更新・削除パスの {...Id} の位置に入ります. |
type | string | リソースの種別. そのリソースの種別名が値になります (例: "Content"・"Media"・"Tag"). |
createdBy | Refer<User> | 作成したユーザー. |
updatedBy | Refer<User> | 最後に更新したユーザー. |
createdAt | string (date-time) | 作成日時. |
updatedAt | string (date-time) | 最終更新日時. |
version | integer (≥1) | 現在のバージョン. リソースを更新するたびに 1 ずつ増えます. |
space | Refer<Space> | このリソースが属する Space. Space 配下のリソースのみが持ちます. |
version は同時更新の競合を防ぐためにも使われます. 更新・公開のような変更系のリクエストには, 現在の version 値を X-Weegloo-Version ヘッダーに載せて送る必要があります. 詳しいルールは 規約 を参照してください.
Organization は Space 配下ではないため space を持ちません. 代わりに, 所属するプランを指す plan (Refer<Plan>) と, 公式かどうかを示す isOfficial (boolean) を持ちます. Space は上位の Organization を指す organization (Refer<Organization>) と plan を持ちます.
Refer の形
sys の中で他リソースを指す参照は, 常に同じ形を使います. type が "Refer" に固定され, targetType が指すリソースの種別を示します.
{
"sys": {
"id": "HnQ32YiH",
"type": "Refer",
"targetType": "Space"
}
}targetType には, 指すリソースの種別名が入ります. 例えば space は targetType が "Space" であり, createdBy・updatedBy は "User", Content の contentType は "ContentType" です. つまり Refer<User>・Refer<Space> と書くタイプはすべてこの形であり, targetType だけが異なります.
リソース種別ごとの違い
共通フィールドの上に, リソースの種別に応じて追加のプロパティが付きます. 大きく 3 つに分かれます.
公開ライフサイクルリソース (Content・Media)
Content と Media は, 作成・公開・アーカイブというライフサイクルを持ちます. そのため sys に公開状態を表すプロパティが加わります.
| プロパティ | タイプ | 説明 |
|---|---|---|
status | string (enum) | 公開状態. Draft・Changed・Published・Archived のいずれか. |
publish | object | 公開状態ポインター. 下のキーを参照. |
archive | object | アーカイブ情報. アーカイブ中のときのみ存在し, そうでなければキーがありません. |
status は次の 4 つのいずれかです.
status | 意味 |
|---|---|
Draft | 作成中で, まだ公開されていない状態. |
Changed | 公開されたことがあるが, その後更新され, まだ公開されていない変更分がある状態. |
Published | 公開されており, 未公開の変更分がない状態. |
Archived | アーカイブされた状態. |
publish オブジェクトは公開状態を指すポインターです. 公開中のときは次のキーをすべて持ちます.
| キー | タイプ | 説明 |
|---|---|---|
version | integer | 公開された時点の sys.version. |
at | string (date-time) | 最終公開日時. |
firstAt | string (date-time) | 初回公開日時. 公開停止しても保持されます. |
counter | integer | 累積公開回数. |
by | Refer<User> | 最後に公開したユーザー. |
公開停止すると, publish から version・at・by が外れ, firstAt・counter のみが残ります. 一度も公開したことがなければ, publish は { "counter": 0 } です.
archive オブジェクトはアーカイブ中のときのみ存在し, アーカイブ時点の version, アーカイブ日時 at, アーカイブしたユーザー by を持ちます. アーカイブ状態でなければ archive キー自体がありません.
ここで sys.version は作業中のバージョン (作成・更新・公開などすべての変更ごとに増える) であり, publish.version は最後に公開されたバージョンです. 両者は異なる場合があります.
次は公開中の Content の sys の例です.
{
"id": "3trmXRM3RqbgSnifyg7PUl8DzDgDzP",
"type": "Content",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
"publish": {
"version": 1,
"at": "2026-06-18T09:51:44.128Z",
"firstAt": "2026-06-18T09:51:44.128Z",
"counter": 1,
"by": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } }
},
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T09:51:14.597Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T09:51:44.128Z",
"version": 2,
"status": "Published"
}公開ライフサイクルの状態遷移の順序と各段階のレスポンスは, Content と Media で扱います.
設定リソース (Tag・Locale・Organization・Space など)
Tag・Locale・Organization・Space・SpaceRole・ServiceUserRole・Webhook・ServiceLogin のようなリソースには公開という概念がありません. 作成するとすぐに適用され, 公開して配信経路に載せる段階がありません.
したがって, これらの sys には status・publish・archive がなく, 共通フィールドとともに version のみを持ちます. version は更新するたびに 1 ずつ増え, 変更リクエスト時に X-Weegloo-Version ヘッダーに載せます.
SpaceRole はこれに加えて isLocked (boolean) を持ちます. true であれば, WEEGLOO がデフォルトで提供するロールであることを意味します.
特殊リソース (ServiceUser・WebHosting)
一部のリソースは, 上の 2 つに当てはまらない sys を持ちます.
ServiceUser は, 製品の会員登録によって生成されるリソースです. 人がコンテンツスタジオで作成・編集するリソースではないため, sys に createdBy・updatedBy・version がありません. 代わりに, ログイン手段 provider (string) と email (string) を持ちます. version がないため, ServiceUser を更新するときは X-Weegloo-Version ヘッダーは不要です.
WebHosting は, デプロイ成果物をホスティングするリソースです. 共通フィールドと version を持ち, これにデプロイ処理状態 state (enum) が加わります. これは公開状態ではなく, アップロードしたデプロイ成果物を処理する進行状態です.
state | 意味 |
|---|---|
PENDING | 処理待ち. |
PROCESSING | 処理中. |
COMPLETED | 処理完了. |
FAILED | 処理失敗. |
CMA と CDA の違い: version vs revision
同じ Content・Media でも, どの API から受け取るかによって sys の形が異なります.
CMA (管理) から受け取る Content・Media は作業中のリソースです. そのため version・status・publish (およびアーカイブ中であれば archive) をすべて含め, 現在の作業状態と公開状態をあわせて伝えます.
CDA (配信) は公開されたスナップショットのみを配信します. 作業中状態という概念がないため, sys に version・status・publish・archive を含めません. 代わりに, 公開されたスナップショットの番号を指す revision (integer) を 1 つだけ使います. revision には, 公開するたびにその時点のバージョンが入ります.
{
"id": "3trmXRM3RqbgSnifyg7PUl8DzDgDzP",
"type": "Content",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T09:51:14.597Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T09:51:44.128Z",
"revision": 3
}公開配信モデル (公開されたものだけが配信される・公開スナップショット・revision) は, CDA 概要 で詳しく扱います.
関連ドキュメント
- 共通クエリパラメーター: 一覧取得・ページネーション.
- 規約: メディアタイプ・JSON Patch・同時実行制御 (
X-Weegloo-Version). - エラー: エラーレスポンス形式と共通コード.
- CDA 概要: 公開スナップショット (
revision) の配信モデル.
