システムプロパティ (sys)

最終更新: 2026年7月3日

WEEGLOO のすべてのリソースのレスポンスは 2 つに分かれます. fields のようにそのリソースの本体データが一方で, システムが管理するメタデータがもう一方です. このメタデータはすべて sys オブジェクトに格納されます.

sys には, リソースの識別子 (id), 種別 (type), 作成・更新日時, バージョン, 他リソースとの関係が入ります. このページでは, すべてのリソースが共通して持つ sys の構造と, リソース種別ごとの違いを一箇所にまとめます. 個別リソースのレファレンスではそのリソース固有の sys キーのみを個別に説明し, 共通部分はこのページを参照します.

共通フィールド

ほぼすべてのリソースの sys は次のフィールドを持ちます. createdByupdatedByspace は, 他リソースを指す Refer の形 ({ "sys": { "id", "type": "Refer", "targetType" } }) で入ります. 詳しい形は下の Refer の形 で扱います.

プロパティタイプ説明
idstringリソース固有の識別子. 単一取得・更新・削除パスの {...Id} の位置に入ります.
typestringリソースの種別. そのリソースの種別名が値になります (例: "Content""Media""Tag").
createdByRefer<User>作成したユーザー.
updatedByRefer<User>最後に更新したユーザー.
createdAtstring (date-time)作成日時.
updatedAtstring (date-time)最終更新日時.
versioninteger (≥1)現在のバージョン. リソースを更新するたびに 1 ずつ増えます.
spaceRefer<Space>このリソースが属する Space. Space 配下のリソースのみが持ちます.

version は同時更新の競合を防ぐためにも使われます. 更新・公開のような変更系のリクエストには, 現在の version 値を X-Weegloo-Version ヘッダーに載せて送る必要があります. 詳しいルールは 規約 を参照してください.

OrganizationSpace 配下ではないため 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 には, 指すリソースの種別名が入ります. 例えば spacetargetType"Space" であり, createdByupdatedBy"User", ContentcontentType"ContentType" です. つまり Refer&lt;User&gt;Refer&lt;Space&gt; と書くタイプはすべてこの形であり, targetType だけが異なります.

リソース種別ごとの違い

共通フィールドの上に, リソースの種別に応じて追加のプロパティが付きます. 大きく 3 つに分かれます.

公開ライフサイクルリソース (Content・Media)

ContentMedia は, 作成・公開・アーカイブというライフサイクルを持ちます. そのため sys に公開状態を表すプロパティが加わります.

プロパティタイプ説明
statusstring (enum)公開状態. DraftChangedPublishedArchived のいずれか.
publishobject公開状態ポインター. 下のキーを参照.
archiveobjectアーカイブ情報. アーカイブ中のときのみ存在し, そうでなければキーがありません.

status は次の 4 つのいずれかです.

status意味
Draft作成中で, まだ公開されていない状態.
Changed公開されたことがあるが, その後更新され, まだ公開されていない変更分がある状態.
Published公開されており, 未公開の変更分がない状態.
Archivedアーカイブされた状態.

publish オブジェクトは公開状態を指すポインターです. 公開中のときは次のキーをすべて持ちます.

キータイプ説明
versioninteger公開された時点の sys.version.
atstring (date-time)最終公開日時.
firstAtstring (date-time)初回公開日時. 公開停止しても保持されます.
counterinteger累積公開回数.
byRefer<User>最後に公開したユーザー.

公開停止すると, publish から versionatby が外れ, firstAtcounter のみが残ります. 一度も公開したことがなければ, publish{ "counter": 0 } です.

archive オブジェクトはアーカイブ中のときのみ存在し, アーカイブ時点の version, アーカイブ日時 at, アーカイブしたユーザー by を持ちます. アーカイブ状態でなければ archive キー自体がありません.

ここで sys.version は作業中のバージョン (作成・更新・公開などすべての変更ごとに増える) であり, publish.version は最後に公開されたバージョンです. 両者は異なる場合があります.

次は公開中の Contentsys の例です.

{
  "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"
}

公開ライフサイクルの状態遷移の順序と各段階のレスポンスは, ContentMedia で扱います.

設定リソース (Tag・Locale・Organization・Space など)

TagLocaleOrganizationSpaceSpaceRoleServiceUserRoleWebhookServiceLogin のようなリソースには公開という概念がありません. 作成するとすぐに適用され, 公開して配信経路に載せる段階がありません.

したがって, これらの sys には statuspublisharchive がなく, 共通フィールドとともに version のみを持ちます. version は更新するたびに 1 ずつ増え, 変更リクエスト時に X-Weegloo-Version ヘッダーに載せます.

SpaceRole はこれに加えて isLocked (boolean) を持ちます. true であれば, WEEGLOO がデフォルトで提供するロールであることを意味します.

特殊リソース (ServiceUser・WebHosting)

一部のリソースは, 上の 2 つに当てはまらない sys を持ちます.

ServiceUser は, 製品の会員登録によって生成されるリソースです. 人がコンテンツスタジオで作成・編集するリソースではないため, syscreatedByupdatedByversion がありません. 代わりに, ログイン手段 provider (string) と email (string) を持ちます. version がないため, ServiceUser を更新するときは X-Weegloo-Version ヘッダーは不要です.

WebHosting は, デプロイ成果物をホスティングするリソースです. 共通フィールドと version を持ち, これにデプロイ処理状態 state (enum) が加わります. これは公開状態ではなく, アップロードしたデプロイ成果物を処理する進行状態です.

state意味
PENDING処理待ち.
PROCESSING処理中.
COMPLETED処理完了.
FAILED処理失敗.

CMA と CDA の違い: version vs revision

同じ ContentMedia でも, どの API から受け取るかによって sys の形が異なります.

CMA (管理) から受け取る ContentMedia は作業中のリソースです. そのため versionstatuspublish (およびアーカイブ中であれば archive) をすべて含め, 現在の作業状態と公開状態をあわせて伝えます.

CDA (配信) は公開されたスナップショットのみを配信します. 作業中状態という概念がないため, sysversionstatuspublisharchive を含めません. 代わりに, 公開されたスナップショットの番号を指す 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) の配信モデル.