picked 0.0.101-next.2 → 0.0.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +27 -12
  2. package/docs/explanation/conditions-and-the-logic-engine.md +94 -0
  3. package/docs/explanation/content-references.md +99 -0
  4. package/docs/explanation/feature-flag-allocation.md +218 -0
  5. package/docs/explanation/how-picked-works.md +124 -0
  6. package/docs/explanation/how-pickedql-works.md +76 -0
  7. package/docs/explanation/pages-and-flows.md +64 -0
  8. package/docs/explanation/the-content-model.md +87 -0
  9. package/docs/explanation/the-two-apis.md +68 -0
  10. package/docs/explanation/why-server-side-rendering.md +76 -0
  11. package/docs/explanation/workspaces-and-versions.md +71 -0
  12. package/docs/how-to/add-a-step-field-or-action.md +56 -0
  13. package/docs/how-to/analytics/index.md +324 -0
  14. package/docs/how-to/archive-or-delete-a-workspace.md +59 -0
  15. package/docs/how-to/authenticate-the-cli.md +101 -0
  16. package/docs/how-to/authenticate-with-a-magic-link.md +56 -0
  17. package/docs/how-to/authenticate-with-a-password.md +68 -0
  18. package/docs/how-to/authenticate-with-an-api-key.md +60 -0
  19. package/docs/how-to/authenticate-with-oauth.md +49 -0
  20. package/docs/how-to/build-a-flow.md +106 -0
  21. package/docs/how-to/call-an-external-api-from-a-workflow.md +116 -0
  22. package/docs/how-to/connect-the-mcp-server.md +46 -0
  23. package/docs/how-to/create-a-content-entry.md +58 -0
  24. package/docs/how-to/create-a-project.md +40 -0
  25. package/docs/how-to/create-an-experience.md +51 -0
  26. package/docs/how-to/create-and-revoke-an-api-key.md +54 -0
  27. package/docs/how-to/debug-with-the-chrome-extension.md +57 -0
  28. package/docs/how-to/define-a-page-layout.md +54 -0
  29. package/docs/how-to/fill-and-publish-a-page.md +82 -0
  30. package/docs/how-to/install-the-gtm-template.md +84 -0
  31. package/docs/how-to/install-the-sdk.md +93 -0
  32. package/docs/how-to/install-the-vite-plugin.md +69 -0
  33. package/docs/how-to/invite-and-remove-members.md +45 -0
  34. package/docs/how-to/point-one-entry-at-another.md +75 -0
  35. package/docs/how-to/preview-a-workspace.md +39 -0
  36. package/docs/how-to/publish-a-workspace.md +42 -0
  37. package/docs/how-to/read-a-feature-flag.md +113 -0
  38. package/docs/how-to/read-a-referenced-entry.md +109 -0
  39. package/docs/how-to/register-a-component.md +55 -0
  40. package/docs/how-to/register-an-action-handler.md +85 -0
  41. package/docs/how-to/register-an-api-that-uses-oauth2.md +107 -0
  42. package/docs/how-to/render-a-step-form.md +131 -0
  43. package/docs/how-to/render-an-unpublished-preview.md +41 -0
  44. package/docs/how-to/retry-a-failed-call-with-a-loop.md +81 -0
  45. package/docs/how-to/reuse-a-section.md +64 -0
  46. package/docs/how-to/reuse-a-step-field-or-action.md +39 -0
  47. package/docs/how-to/roll-back-a-published-version.md +39 -0
  48. package/docs/how-to/run-an-ab-test.md +59 -0
  49. package/docs/how-to/run-code-on-a-form-submission.md +125 -0
  50. package/docs/how-to/server-render-a-page.md +81 -0
  51. package/docs/how-to/set-a-content-security-policy.md +32 -0
  52. package/docs/how-to/set-up-mfa.md +126 -0
  53. package/docs/how-to/switch-workspaces.md +122 -0
  54. package/docs/how-to/upload-and-use-an-asset.mdx +87 -0
  55. package/docs/how-to/validate-a-field.md +52 -0
  56. package/docs/how-to/wait-for-an-action-response.md +182 -0
  57. package/docs/how-to/write-a-condition.md +57 -0
  58. package/docs/how-to/write-a-predicate.md +60 -0
  59. package/docs/index.md +59 -0
  60. package/docs/reference/dashboard/actions.mdx +65 -0
  61. package/docs/reference/dashboard/api-keys.mdx +47 -0
  62. package/docs/reference/dashboard/conditions.mdx +51 -0
  63. package/docs/reference/dashboard/content/asset-library.mdx +74 -0
  64. package/docs/reference/dashboard/content/blocks.mdx +66 -0
  65. package/docs/reference/dashboard/content/content-entries.mdx +109 -0
  66. package/docs/reference/dashboard/content/models.mdx +119 -0
  67. package/docs/reference/dashboard/content/pages.mdx +72 -0
  68. package/docs/reference/dashboard/experiences.mdx +61 -0
  69. package/docs/reference/dashboard/external-apis.md +182 -0
  70. package/docs/reference/dashboard/features.mdx +165 -0
  71. package/docs/reference/dashboard/fields.mdx +120 -0
  72. package/docs/reference/dashboard/flow-builder/canvas.mdx +58 -0
  73. package/docs/reference/dashboard/flow-builder/condition-builder.md +69 -0
  74. package/docs/reference/dashboard/flow-builder/keyboard-shortcuts.md +72 -0
  75. package/docs/reference/dashboard/flow-builder/nodes.md +74 -0
  76. package/docs/reference/dashboard/labels.md +321 -0
  77. package/docs/reference/dashboard/lead-search.md +235 -0
  78. package/docs/reference/dashboard/projects.mdx +53 -0
  79. package/docs/reference/dashboard/reports.mdx +53 -0
  80. package/docs/reference/dashboard/steps.mdx +47 -0
  81. package/docs/reference/dashboard/team-management.md +38 -0
  82. package/docs/reference/dashboard/workflow-runs.md +157 -0
  83. package/docs/reference/dashboard/workflow-templates.md +182 -0
  84. package/docs/reference/dashboard/workflow-test-runs.md +85 -0
  85. package/docs/reference/dashboard/workspace-versioning.mdx +42 -0
  86. package/docs/reference/dashboard/workspaces.mdx +91 -0
  87. package/docs/reference/delivery-api/experience-content.md +152 -0
  88. package/docs/reference/delivery-api/index.md +45 -0
  89. package/docs/reference/delivery-api/preview-caching-crawling.md +79 -0
  90. package/docs/reference/delivery-api/project-config.md +65 -0
  91. package/docs/reference/delivery-api/workspace-schema.md +107 -0
  92. package/docs/reference/glossary.md +201 -0
  93. package/docs/reference/management-api/authentication.md +87 -0
  94. package/docs/reference/management-api/authorization-and-scopes.md +291 -0
  95. package/docs/reference/management-api/error-handling.md +232 -0
  96. package/docs/reference/management-api/pagination.md +192 -0
  97. package/docs/reference/management-api/schema/action.md +261 -0
  98. package/docs/reference/management-api/schema/analytics-session.md +363 -0
  99. package/docs/reference/management-api/schema/analytics.md +73 -0
  100. package/docs/reference/management-api/schema/api-key.md +170 -0
  101. package/docs/reference/management-api/schema/auth.md +1177 -0
  102. package/docs/reference/management-api/schema/cms-fields.md +954 -0
  103. package/docs/reference/management-api/schema/cms-models.md +1155 -0
  104. package/docs/reference/management-api/schema/common.md +362 -0
  105. package/docs/reference/management-api/schema/condition.md +254 -0
  106. package/docs/reference/management-api/schema/design-system.md +199 -0
  107. package/docs/reference/management-api/schema/experience.md +1098 -0
  108. package/docs/reference/management-api/schema/external-api.md +637 -0
  109. package/docs/reference/management-api/schema/feature.md +350 -0
  110. package/docs/reference/management-api/schema/feedback.md +103 -0
  111. package/docs/reference/management-api/schema/field.md +400 -0
  112. package/docs/reference/management-api/schema/index.md +243 -0
  113. package/docs/reference/management-api/schema/integration.md +272 -0
  114. package/docs/reference/management-api/schema/label.md +349 -0
  115. package/docs/reference/management-api/schema/lead.md +340 -0
  116. package/docs/reference/management-api/schema/mcp-server.md +299 -0
  117. package/docs/reference/management-api/schema/metric.md +223 -0
  118. package/docs/reference/management-api/schema/operation.md +96 -0
  119. package/docs/reference/management-api/schema/organization.md +749 -0
  120. package/docs/reference/management-api/schema/project.md +607 -0
  121. package/docs/reference/management-api/schema/report.md +243 -0
  122. package/docs/reference/management-api/schema/saved-view.md +288 -0
  123. package/docs/reference/management-api/schema/shopify.md +795 -0
  124. package/docs/reference/management-api/schema/step.md +273 -0
  125. package/docs/reference/management-api/schema/tenant-branding.md +185 -0
  126. package/docs/reference/management-api/schema/workbench.md +246 -0
  127. package/docs/reference/management-api/schema/workflow-run.md +263 -0
  128. package/docs/reference/management-api/schema/workflow.md +1110 -0
  129. package/docs/reference/management-api/schema/workspace-version.md +823 -0
  130. package/docs/reference/management-api/schema/workspace.md +917 -0
  131. package/docs/reference/pickedql/data-sources.md +174 -0
  132. package/docs/reference/pickedql/dimensions.md +103 -0
  133. package/docs/reference/pickedql/filtering.md +64 -0
  134. package/docs/reference/pickedql/index.md +18 -0
  135. package/docs/reference/pickedql/schema.md +172 -0
  136. package/docs/reference/pickedql/virtual-functions.md +248 -0
  137. package/docs/reference/sdk/actions.md +154 -0
  138. package/docs/reference/sdk/analytics-events.md +453 -0
  139. package/docs/reference/sdk/conditions.md +147 -0
  140. package/docs/reference/sdk/content-security-policy.md +21 -0
  141. package/docs/reference/sdk/content.md +253 -0
  142. package/docs/reference/sdk/experiences.md +51 -0
  143. package/docs/reference/sdk/features.md +256 -0
  144. package/docs/reference/sdk/fields.md +255 -0
  145. package/docs/reference/sdk/index.md +68 -0
  146. package/docs/reference/sdk/plugins/create-experience.md +123 -0
  147. package/docs/reference/sdk/plugins/dynamic-experiences.md +74 -0
  148. package/docs/reference/sdk/plugins/fingerprintjs.md +39 -0
  149. package/docs/reference/sdk/plugins/hotjar.md +60 -0
  150. package/docs/reference/sdk/plugins/index.md +33 -0
  151. package/docs/reference/sdk/plugins/sentry.md +51 -0
  152. package/docs/reference/sdk/plugins/shopify.md +109 -0
  153. package/docs/reference/sdk/plugins/window-object.md +25 -0
  154. package/docs/reference/sdk/predicates.md +43 -0
  155. package/docs/reference/sdk/react.md +61 -0
  156. package/docs/reference/sdk/ssr/index.md +33 -0
  157. package/docs/reference/sdk/ssr/rendering-and-hydration.md +103 -0
  158. package/docs/reference/sdk/ssr/serialize.md +80 -0
  159. package/docs/reference/sdk/ssr/slots-and-placements.md +113 -0
  160. package/docs/reference/sdk/steps.md +86 -0
  161. package/docs/reference/sdk/svelte.md +74 -0
  162. package/docs/reference/sdk/type-generation.md +265 -0
  163. package/docs/reference/tools/admin-api-client.md +89 -0
  164. package/docs/reference/tools/chrome-extension.md +16 -0
  165. package/docs/reference/tools/cli.md +319 -0
  166. package/docs/reference/tools/delivery-api-client.md +60 -0
  167. package/docs/reference/tools/image-optimisation-service.md +104 -0
  168. package/docs/reference/tools/mcp-run.md +121 -0
  169. package/docs/reference/tools/mcp.md +391 -0
  170. package/docs/reference/tools/vite-plugin.md +163 -0
  171. package/docs/tutorials/first-api-call.md +253 -0
  172. package/docs/tutorials/first-experience-in-the-dashboard.mdx +160 -0
  173. package/docs/tutorials/first-experience.mdx +254 -0
  174. package/docs/tutorials/first-server-rendered-page.mdx +186 -0
  175. package/package.json +8 -7
@@ -0,0 +1,823 @@
1
+ ---
2
+ type: reference
3
+ layout: docs
4
+ generated: true
5
+ ---
6
+
7
+ # Workspace version schema
8
+
9
+ The operations and types that `workspace-version.graphql` adds to the Management API. See [Management API schema](/reference/management-api/schema) for every domain, the endpoint and authentication.
10
+
11
+ ## Queries
12
+
13
+ ### `workspaceDiff`
14
+
15
+ Compute a structural diff between two workspace snapshots. Each side
16
+ can be either a live workspace (diffed against its current draft
17
+ snapshot) or a previously-published `WorkspaceVersion`. Requires
18
+ authentication and `ORGANIZATION_PROJECTS_READ` scope on the project
19
+ shared by both sides.
20
+
21
+ ```graphql
22
+ workspaceDiff(input: WorkspaceDiffInput!): WorkspaceDiffPayload! @auth
23
+ ```
24
+
25
+ ## Types
26
+
27
+ ### `WorkspaceVersion`
28
+
29
+ ```graphql
30
+ """
31
+ An immutable snapshot of a workspace's config at publish time. Created
32
+ by `workspacePublish`; never modified after creation.
33
+
34
+ Snapshot contents (the underlying `config_json` blob) are deliberately
35
+ not exposed via this type. To inspect the contents, use `workspaceDiff`
36
+ to compare a snapshot against another snapshot or against the current
37
+ draft.
38
+ """
39
+ type WorkspaceVersion {
40
+ """Unique snapshot identifier."""
41
+ id: ID!
42
+ """The workspace this snapshot belongs to."""
43
+ workspaceId: ID!
44
+ """The workspace this snapshot was published from."""
45
+ workspace: Workspace!
46
+ """Id of the hidden workspace duplicated at publish time, if one exists."""
47
+ snapshotWorkspaceId: ID
48
+ """
49
+ The hidden workspace duplicated from the published workspace at publish
50
+ time — the editable state behind this version, opened by Publish History's
51
+ Restore action. Null on versions published before snapshots existed, when
52
+ snapshot duplication failed, or after the snapshot workspace was deleted.
53
+ """
54
+ snapshotWorkspace: Workspace
55
+ """When this snapshot was published."""
56
+ publishedAt: DateTime!
57
+ }
58
+ ```
59
+
60
+ ### `WorkspaceVersionEdge`
61
+
62
+ ```graphql
63
+ """Edge type for `WorkspaceVersionConnection`."""
64
+ type WorkspaceVersionEdge {
65
+ """Pagination cursor for this edge."""
66
+ cursor: String!
67
+ """The workspace version."""
68
+ node: WorkspaceVersion!
69
+ }
70
+ ```
71
+
72
+ ### `WorkspaceVersionConnection`
73
+
74
+ ```graphql
75
+ """
76
+ Relay-style connection of workspace versions, ordered newest-first by `publishedAt`.
77
+ """
78
+ type WorkspaceVersionConnection {
79
+ """List of workspace-version edges."""
80
+ edges: [WorkspaceVersionEdge!]!
81
+ """Pagination metadata."""
82
+ pageInfo: PageInfo!
83
+ """Total number of published versions for the workspace."""
84
+ totalCount: Int!
85
+ }
86
+ ```
87
+
88
+ ### `WorkspaceDiffInput`
89
+
90
+ ```graphql
91
+ """
92
+ Input for `workspaceDiff`. Each side resolves to a snapshot: either a
93
+ live workspace (diffed against its current draft snapshot) or a
94
+ previously-published `WorkspaceVersion`.
95
+
96
+ Exactly one of `baseWorkspaceId` / `baseWorkspaceVersionId` must be set,
97
+ and exactly one of `compareWorkspaceId` / `compareWorkspaceVersionId`
98
+ must be set. Both sides must resolve to the same project.
99
+ """
100
+ input WorkspaceDiffInput {
101
+ """Base-side live workspace (diffed against its current draft snapshot)."""
102
+ baseWorkspaceId: ID
103
+ """Base-side published workspace version."""
104
+ baseWorkspaceVersionId: ID
105
+ """
106
+ Compare-side live workspace (diffed against its current draft snapshot).
107
+ """
108
+ compareWorkspaceId: ID
109
+ """Compare-side published workspace version."""
110
+ compareWorkspaceVersionId: ID
111
+ }
112
+ ```
113
+
114
+ ### `WorkspaceDiffPayload`
115
+
116
+ ```graphql
117
+ """Payload returned by `workspaceDiff`."""
118
+ type WorkspaceDiffPayload {
119
+ """The computed diff, or null when a `userError` was returned."""
120
+ diff: WorkspaceDiff
121
+ """
122
+ Validation, authorisation, and referential-integrity errors. Empty array indicates success.
123
+ """
124
+ userErrors: [UserError!]!
125
+ }
126
+ ```
127
+
128
+ ### `WorkspaceSnapshotSummary`
129
+
130
+ ```graphql
131
+ """
132
+ Identifies a snapshot on one side of a diff — workspace id plus optional version id and publish time.
133
+ """
134
+ type WorkspaceSnapshotSummary {
135
+ """
136
+ The workspace the snapshot belongs to (for both live workspaces and published versions).
137
+ """
138
+ workspaceId: ID!
139
+ """
140
+ The workspace-version id, when this side resolves to a published version.
141
+ """
142
+ workspaceVersionId: ID
143
+ """
144
+ When the snapshot was published, when this side resolves to a published version.
145
+ """
146
+ publishedAt: DateTime
147
+ }
148
+ ```
149
+
150
+ ### `WorkspaceDiff`
151
+
152
+ ```graphql
153
+ """
154
+ A workspace-level structural diff between two snapshots. Each top-level
155
+ section enumerates entities that were added, removed, or modified for
156
+ one entity kind.
157
+
158
+ `hasChanges` is `true` iff any per-entity section is non-empty —
159
+ convenient for showing a "no changes to publish" CTA without scanning
160
+ every section.
161
+ """
162
+ type WorkspaceDiff {
163
+ """Identifier information for the base snapshot."""
164
+ base: WorkspaceSnapshotSummary!
165
+ """Identifier information for the compare snapshot."""
166
+ compare: WorkspaceSnapshotSummary!
167
+ """True iff any per-entity section is non-empty."""
168
+ hasChanges: Boolean!
169
+ """Per-entity feature differences."""
170
+ features: FeatureDiff!
171
+ """Per-entity step differences."""
172
+ steps: StepDiff!
173
+ """Per-entity field differences."""
174
+ fields: FieldDiff!
175
+ """Per-entity action differences."""
176
+ actions: ActionDiff!
177
+ """Per-entity condition differences."""
178
+ conditions: ConditionDiff!
179
+ """Per-entity experience differences."""
180
+ experiences: ExperienceDiff!
181
+ """Per-entity CMS Content Model differences."""
182
+ contentModels: ContentModelDiff!
183
+ """Per-entity CMS Content Block differences."""
184
+ contentBlocks: ContentBlockDiff!
185
+ """Per-entity CMS Content Entry differences."""
186
+ contentEntries: ContentEntryDiff!
187
+ """Per-entity workflow differences."""
188
+ workflows: WorkflowDiff!
189
+ }
190
+ ```
191
+
192
+ ### `PropertyChange`
193
+
194
+ ```graphql
195
+ """A scalar or JSON-valued property that changed between two snapshots."""
196
+ type PropertyChange {
197
+ """The property name on the parent entity (e.g. `name`, `weight`)."""
198
+ property: String!
199
+ """The base snapshot's value, as JSON."""
200
+ base: JSON
201
+ """The compare snapshot's value, as JSON."""
202
+ compare: JSON
203
+ }
204
+ ```
205
+
206
+ ### `LogicChange`
207
+
208
+ ```graphql
209
+ """
210
+ A structural change to a JSON subtree (conditions' `logic`, fields'
211
+ `validation`, Content Model schemas). Presented as two opaque JSON
212
+ values rather than a fine-grained path diff — clients render their own
213
+ visualisations.
214
+ """
215
+ type LogicChange {
216
+ """Which subtree changed (e.g. `logic`, `validation`)."""
217
+ property: String!
218
+ """Base snapshot's subtree."""
219
+ base: JSON
220
+ """Compare snapshot's subtree."""
221
+ compare: JSON
222
+ }
223
+ ```
224
+
225
+ ### `FieldOptionSummary`
226
+
227
+ ```graphql
228
+ """
229
+ A selectable option within a field, summarised for diff display. Named
230
+ `FieldOptionSummary` (not `FieldOption`) because the workspace's
231
+ `FieldOption` type carries a `JSON` `value`, whereas diffing keys by a
232
+ string `value` identity.
233
+ """
234
+ type FieldOptionSummary {
235
+ """Option machine value (identity key for diff comparison)."""
236
+ value: String!
237
+ """Option display label."""
238
+ label: String!
239
+ }
240
+ ```
241
+
242
+ ### `FieldOptionModification`
243
+
244
+ ```graphql
245
+ """
246
+ An option whose label changed while the `value` identity stayed the same.
247
+ """
248
+ type FieldOptionModification {
249
+ """The option's unchanged identity key."""
250
+ value: String!
251
+ """Base snapshot's label."""
252
+ baseLabel: String!
253
+ """Compare snapshot's label."""
254
+ compareLabel: String!
255
+ }
256
+ ```
257
+
258
+ ### `FieldOptionsChange`
259
+
260
+ ```graphql
261
+ """Changes to a field's selectable options, keyed by option `value`."""
262
+ type FieldOptionsChange {
263
+ """Options present only in the compare snapshot."""
264
+ added: [FieldOptionSummary!]!
265
+ """Options present only in the base snapshot."""
266
+ removed: [FieldOptionSummary!]!
267
+ """Options whose `label` changed (same `value`)."""
268
+ modified: [FieldOptionModification!]!
269
+ }
270
+ ```
271
+
272
+ ### `DiffStepRef`
273
+
274
+ ```graphql
275
+ """A reference to a step, used inside the diff payload."""
276
+ type DiffStepRef {
277
+ """Stable id of the referenced step."""
278
+ id: ID!
279
+ """Display name from the snapshot."""
280
+ name: String!
281
+ """Stable, human-readable key from the snapshot."""
282
+ key: String!
283
+ }
284
+ ```
285
+
286
+ ### `DiffFieldRef`
287
+
288
+ ```graphql
289
+ """A reference to a field, used inside the diff payload."""
290
+ type DiffFieldRef {
291
+ """Stable id of the referenced field."""
292
+ id: ID!
293
+ """Display name from the snapshot."""
294
+ name: String!
295
+ """Stable, human-readable key from the snapshot."""
296
+ key: String!
297
+ }
298
+ ```
299
+
300
+ ### `DiffActionRef`
301
+
302
+ ```graphql
303
+ """A reference to an action, used inside the diff payload."""
304
+ type DiffActionRef {
305
+ """Stable id of the referenced action."""
306
+ id: ID!
307
+ """Display name from the snapshot."""
308
+ name: String!
309
+ """Stable, human-readable key from the snapshot."""
310
+ key: String!
311
+ }
312
+ ```
313
+
314
+ ### `DiffConditionRef`
315
+
316
+ ```graphql
317
+ """A reference to a condition, used inside the diff payload."""
318
+ type DiffConditionRef {
319
+ """Stable id of the referenced condition."""
320
+ id: ID!
321
+ """Display name from the snapshot."""
322
+ name: String!
323
+ """Stable, human-readable key from the snapshot."""
324
+ key: String!
325
+ }
326
+ ```
327
+
328
+ ### `FlowStepRefsChange`
329
+
330
+ ```graphql
331
+ """Step refs added/removed from an experience's flow."""
332
+ type FlowStepRefsChange {
333
+ """Step refs referenced only in the compare snapshot."""
334
+ added: [DiffStepRef!]!
335
+ """Step refs referenced only in the base snapshot."""
336
+ removed: [DiffStepRef!]!
337
+ }
338
+ ```
339
+
340
+ ### `FlowActionRefsChange`
341
+
342
+ ```graphql
343
+ """Action refs added/removed from an experience's flow."""
344
+ type FlowActionRefsChange {
345
+ """Action refs referenced only in the compare snapshot."""
346
+ added: [DiffActionRef!]!
347
+ """Action refs referenced only in the base snapshot."""
348
+ removed: [DiffActionRef!]!
349
+ }
350
+ ```
351
+
352
+ ### `FlowConditionRefsChange`
353
+
354
+ ```graphql
355
+ """Condition refs added/removed from an experience's flow."""
356
+ type FlowConditionRefsChange {
357
+ """Condition refs referenced only in the compare snapshot."""
358
+ added: [DiffConditionRef!]!
359
+ """Condition refs referenced only in the base snapshot."""
360
+ removed: [DiffConditionRef!]!
361
+ }
362
+ ```
363
+
364
+ ### `FieldRefsChange`
365
+
366
+ ```graphql
367
+ """
368
+ `Step.fieldIds` change — added/removed field refs, plus an order-only flag.
369
+ """
370
+ type FieldRefsChange {
371
+ """Field refs present only in the compare snapshot."""
372
+ added: [DiffFieldRef!]!
373
+ """Field refs present only in the base snapshot."""
374
+ removed: [DiffFieldRef!]!
375
+ """True iff the same set of refs is present in a different order."""
376
+ reordered: Boolean!
377
+ }
378
+ ```
379
+
380
+ ### `ExperienceFlowChange`
381
+
382
+ ```graphql
383
+ """
384
+ Summary of how an experience's flow graph changed. `structureChanged` is
385
+ true when the graph (nodes/edges) differs beyond node/edge id renaming
386
+ despite every referenced-entity set being equal — i.e. existing
387
+ nodes/edges were re-arranged without changing what they reference.
388
+ """
389
+ type ExperienceFlowChange {
390
+ """Step ref changes, or null when unchanged."""
391
+ stepRefsChange: FlowStepRefsChange
392
+ """Action ref changes, or null when unchanged."""
393
+ actionRefsChange: FlowActionRefsChange
394
+ """Condition ref changes, or null when unchanged."""
395
+ conditionRefsChange: FlowConditionRefsChange
396
+ """
397
+ True iff nodes/edges differ beyond id renaming while all referenced-entity sets are equal.
398
+ """
399
+ structureChanged: Boolean!
400
+ }
401
+ ```
402
+
403
+ ### `FeatureDiffEntry`
404
+
405
+ ```graphql
406
+ """A feature's scalar property differences."""
407
+ type FeatureDiffEntry {
408
+ """Feature id (stable across snapshots)."""
409
+ id: ID!
410
+ """Display name of the feature, sourced from the compare snapshot."""
411
+ name: String!
412
+ """Scalar property changes."""
413
+ propertyChanges: [PropertyChange!]!
414
+ }
415
+ ```
416
+
417
+ ### `FeatureDiff`
418
+
419
+ ```graphql
420
+ """Feature section of the workspace diff."""
421
+ type FeatureDiff {
422
+ """Features present only in the compare snapshot."""
423
+ added: [JSON!]!
424
+ """Features present only in the base snapshot."""
425
+ removed: [JSON!]!
426
+ """Features present in both snapshots but with differing properties."""
427
+ modified: [FeatureDiffEntry!]!
428
+ }
429
+ ```
430
+
431
+ ### `StepDiffEntry`
432
+
433
+ ```graphql
434
+ """A step's scalar property and field-ref differences."""
435
+ type StepDiffEntry {
436
+ """Step id (stable across snapshots)."""
437
+ id: ID!
438
+ """Display name of the step, sourced from the compare snapshot."""
439
+ name: String!
440
+ """Stable, human-readable key, sourced from the compare snapshot."""
441
+ key: String!
442
+ """Scalar property changes."""
443
+ propertyChanges: [PropertyChange!]!
444
+ """Field-ref change (the step's `fieldIds`), or null when unchanged."""
445
+ fieldRefsChange: FieldRefsChange
446
+ }
447
+ ```
448
+
449
+ ### `StepDiff`
450
+
451
+ ```graphql
452
+ """Step section of the workspace diff."""
453
+ type StepDiff {
454
+ """Steps present only in the compare snapshot."""
455
+ added: [JSON!]!
456
+ """Steps present only in the base snapshot."""
457
+ removed: [JSON!]!
458
+ """Steps present in both snapshots but with differing properties."""
459
+ modified: [StepDiffEntry!]!
460
+ }
461
+ ```
462
+
463
+ ### `FieldDiffEntry`
464
+
465
+ ```graphql
466
+ """A field's scalar, validation, and options differences."""
467
+ type FieldDiffEntry {
468
+ """Field id (stable across snapshots)."""
469
+ id: ID!
470
+ """Display name of the field, sourced from the compare snapshot."""
471
+ name: String!
472
+ """Stable, human-readable key, sourced from the compare snapshot."""
473
+ key: String!
474
+ """Scalar property changes."""
475
+ propertyChanges: [PropertyChange!]!
476
+ """Validation subtree change, or null when unchanged."""
477
+ validationChange: LogicChange
478
+ """Visibility-condition subtree change, or null when unchanged."""
479
+ conditionChange: LogicChange
480
+ """Options-set change, or null when unchanged."""
481
+ optionsChange: FieldOptionsChange
482
+ }
483
+ ```
484
+
485
+ ### `FieldDiff`
486
+
487
+ ```graphql
488
+ """Field section of the workspace diff."""
489
+ type FieldDiff {
490
+ """Fields present only in the compare snapshot."""
491
+ added: [JSON!]!
492
+ """Fields present only in the base snapshot."""
493
+ removed: [JSON!]!
494
+ """Fields present in both snapshots but with differing properties."""
495
+ modified: [FieldDiffEntry!]!
496
+ }
497
+ ```
498
+
499
+ ### `ActionDiffEntry`
500
+
501
+ ```graphql
502
+ """An action's scalar property differences."""
503
+ type ActionDiffEntry {
504
+ """Action id (stable across snapshots)."""
505
+ id: ID!
506
+ """Display name of the action, sourced from the compare snapshot."""
507
+ name: String!
508
+ """Stable, human-readable key, sourced from the compare snapshot."""
509
+ key: String!
510
+ """Scalar property changes."""
511
+ propertyChanges: [PropertyChange!]!
512
+ }
513
+ ```
514
+
515
+ ### `ActionDiff`
516
+
517
+ ```graphql
518
+ """Action section of the workspace diff."""
519
+ type ActionDiff {
520
+ """Actions present only in the compare snapshot."""
521
+ added: [JSON!]!
522
+ """Actions present only in the base snapshot."""
523
+ removed: [JSON!]!
524
+ """Actions present in both snapshots but with differing properties."""
525
+ modified: [ActionDiffEntry!]!
526
+ }
527
+ ```
528
+
529
+ ### `ConditionDiffEntry`
530
+
531
+ ```graphql
532
+ """A condition's scalar and logic differences."""
533
+ type ConditionDiffEntry {
534
+ """Condition id (stable across snapshots)."""
535
+ id: ID!
536
+ """Display name of the condition, sourced from the compare snapshot."""
537
+ name: String!
538
+ """Stable, human-readable key, sourced from the compare snapshot."""
539
+ key: String!
540
+ """Scalar property changes."""
541
+ propertyChanges: [PropertyChange!]!
542
+ """Logic subtree change, or null when unchanged."""
543
+ logicChange: LogicChange
544
+ }
545
+ ```
546
+
547
+ ### `ConditionDiff`
548
+
549
+ ```graphql
550
+ """Condition section of the workspace diff."""
551
+ type ConditionDiff {
552
+ """Conditions present only in the compare snapshot."""
553
+ added: [JSON!]!
554
+ """Conditions present only in the base snapshot."""
555
+ removed: [JSON!]!
556
+ """Conditions present in both snapshots but with differing properties."""
557
+ modified: [ConditionDiffEntry!]!
558
+ }
559
+ ```
560
+
561
+ ### `ExperienceDiffEntry`
562
+
563
+ ```graphql
564
+ """An experience's scalar property, target, and flow differences."""
565
+ type ExperienceDiffEntry {
566
+ """Experience id (stable across snapshots)."""
567
+ id: ID!
568
+ """Display name of the experience, sourced from the compare snapshot."""
569
+ name: String!
570
+ """Stable, human-readable key, sourced from the compare snapshot."""
571
+ key: String!
572
+ """Scalar property changes."""
573
+ propertyChanges: [PropertyChange!]!
574
+ """Targeting change, or null when unchanged."""
575
+ targetChange: LogicChange
576
+ """Flow change, or null when unchanged."""
577
+ flowChange: ExperienceFlowChange
578
+ }
579
+ ```
580
+
581
+ ### `ExperienceDiff`
582
+
583
+ ```graphql
584
+ """Experience section of the workspace diff."""
585
+ type ExperienceDiff {
586
+ """Experiences present only in the compare snapshot."""
587
+ added: [JSON!]!
588
+ """Experiences present only in the base snapshot."""
589
+ removed: [JSON!]!
590
+ """Experiences present in both snapshots but with differing properties."""
591
+ modified: [ExperienceDiffEntry!]!
592
+ }
593
+ ```
594
+
595
+ ### `ContentModelDiffEntry`
596
+
597
+ ```graphql
598
+ """A Content Model's scalar and schema differences."""
599
+ type ContentModelDiffEntry {
600
+ """Content Model id (stable across snapshots)."""
601
+ id: ID!
602
+ """Display name, sourced from the compare snapshot."""
603
+ name: String!
604
+ """Scalar property changes."""
605
+ propertyChanges: [PropertyChange!]!
606
+ """Schema subtree change, or null when unchanged."""
607
+ schemaChange: LogicChange
608
+ }
609
+ ```
610
+
611
+ ### `ContentModelDiff`
612
+
613
+ ```graphql
614
+ """Content Model section of the workspace diff."""
615
+ type ContentModelDiff {
616
+ """Content Models present only in the compare snapshot."""
617
+ added: [JSON!]!
618
+ """Content Models present only in the base snapshot."""
619
+ removed: [JSON!]!
620
+ """
621
+ Content Models present in both snapshots but with differing properties.
622
+ """
623
+ modified: [ContentModelDiffEntry!]!
624
+ }
625
+ ```
626
+
627
+ ### `ContentBlockDiffEntry`
628
+
629
+ ```graphql
630
+ """A Content Block's scalar and schema differences."""
631
+ type ContentBlockDiffEntry {
632
+ """Content Block id (stable across snapshots)."""
633
+ id: ID!
634
+ """Display name, sourced from the compare snapshot."""
635
+ name: String!
636
+ """Scalar property changes."""
637
+ propertyChanges: [PropertyChange!]!
638
+ """Schema subtree change, or null when unchanged."""
639
+ schemaChange: LogicChange
640
+ }
641
+ ```
642
+
643
+ ### `ContentBlockDiff`
644
+
645
+ ```graphql
646
+ """Content Block section of the workspace diff."""
647
+ type ContentBlockDiff {
648
+ """Content Blocks present only in the compare snapshot."""
649
+ added: [JSON!]!
650
+ """Content Blocks present only in the base snapshot."""
651
+ removed: [JSON!]!
652
+ """
653
+ Content Blocks present in both snapshots but with differing properties.
654
+ """
655
+ modified: [ContentBlockDiffEntry!]!
656
+ }
657
+ ```
658
+
659
+ ### `ContentEntryDiffEntry`
660
+
661
+ ```graphql
662
+ """A Content Entry's scalar and data differences."""
663
+ type ContentEntryDiffEntry {
664
+ """Content Entry id (stable across snapshots)."""
665
+ id: ID!
666
+ """Parent Content Model id, sourced from the compare snapshot."""
667
+ contentModelId: ID!
668
+ """Scalar property changes."""
669
+ propertyChanges: [PropertyChange!]!
670
+ """Data subtree change, or null when unchanged."""
671
+ dataChange: LogicChange
672
+ }
673
+ ```
674
+
675
+ ### `ContentEntryDiff`
676
+
677
+ ```graphql
678
+ """Content Entry section of the workspace diff."""
679
+ type ContentEntryDiff {
680
+ """Content Entries present only in the compare snapshot."""
681
+ added: [JSON!]!
682
+ """Content Entries present only in the base snapshot."""
683
+ removed: [JSON!]!
684
+ """
685
+ Content Entries present in both snapshots but with differing properties.
686
+ """
687
+ modified: [ContentEntryDiffEntry!]!
688
+ }
689
+ ```
690
+
691
+ ### `WorkflowDiffTrigger`
692
+
693
+ ```graphql
694
+ """
695
+ A workflow's trigger as the diff reports it. The action an `ACTION` trigger
696
+ names is resolved against the snapshot the workflow belongs to, so a removed
697
+ workflow still shows the action it was bound to.
698
+ """
699
+ type WorkflowDiffTrigger {
700
+ """Which kind of trigger this is."""
701
+ type: WorkflowTriggerType!
702
+ """The event that starts the run. Set for an `EVENT` trigger only."""
703
+ eventName: WorkflowEventName
704
+ """
705
+ ID of the action whose run starts the workflow. Set for an `ACTION` trigger only.
706
+ """
707
+ actionId: ID
708
+ """
709
+ The action `actionId` names, resolved from the snapshot. Null for an
710
+ `EVENT` trigger, and for an `ACTION` trigger whose action neither snapshot holds.
711
+ """
712
+ action: DiffActionRef
713
+ }
714
+ ```
715
+
716
+ ### `WorkflowDiffNodeRef`
717
+
718
+ ```graphql
719
+ """A node in a workflow graph, summarised for the diff."""
720
+ type WorkflowDiffNodeRef {
721
+ """Graph-unique node id, stable across snapshots of the same workflow."""
722
+ id: ID!
723
+ """
724
+ The node kind as stored: `ORIGIN`, `TOOL`, `CONDITION` or `SLEEP`; `UNKNOWN` when missing.
725
+ """
726
+ type: String!
727
+ """
728
+ What tells the node apart from others of its kind: the tool name, or the sleep duration. Null for other kinds.
729
+ """
730
+ label: String
731
+ }
732
+ ```
733
+
734
+ ### `WorkflowGraphChange`
735
+
736
+ ```graphql
737
+ """
738
+ How a workflow's graph changed between two snapshots. Nodes are matched by
739
+ id; a node's canvas position is layout and never makes it a modified node.
740
+ """
741
+ type WorkflowGraphChange {
742
+ """Number of nodes in the base snapshot's graph."""
743
+ baseNodeCount: Int!
744
+ """Number of nodes in the compare snapshot's graph."""
745
+ compareNodeCount: Int!
746
+ """Number of edges in the base snapshot's graph."""
747
+ baseEdgeCount: Int!
748
+ """Number of edges in the compare snapshot's graph."""
749
+ compareEdgeCount: Int!
750
+ """Nodes present only in the compare snapshot."""
751
+ addedNodes: [WorkflowDiffNodeRef!]!
752
+ """Nodes present only in the base snapshot."""
753
+ removedNodes: [WorkflowDiffNodeRef!]!
754
+ """Nodes present in both snapshots whose configuration differs."""
755
+ modifiedNodes: [WorkflowDiffNodeRef!]!
756
+ """
757
+ True iff the graph differs with no node added, removed or reconfigured: edges were rewired, or nodes moved.
758
+ """
759
+ structureChanged: Boolean!
760
+ }
761
+ ```
762
+
763
+ ### `WorkflowDiffSummary`
764
+
765
+ ```graphql
766
+ """
767
+ A workflow as the diff lists it when it is present in one snapshot only.
768
+ """
769
+ type WorkflowDiffSummary {
770
+ """Workflow id (stable across snapshots)."""
771
+ id: ID!
772
+ """Display name of the workflow."""
773
+ name: String!
774
+ """The trigger, or null when the stored trigger cannot be read."""
775
+ trigger: WorkflowDiffTrigger
776
+ """Number of nodes in the workflow's graph."""
777
+ nodeCount: Int!
778
+ """Number of edges in the workflow's graph."""
779
+ edgeCount: Int!
780
+ }
781
+ ```
782
+
783
+ ### `WorkflowDiffEntry`
784
+
785
+ ```graphql
786
+ """A workflow's scalar, trigger and graph differences."""
787
+ type WorkflowDiffEntry {
788
+ """Workflow id (stable across snapshots)."""
789
+ id: ID!
790
+ """Display name of the workflow, sourced from the compare snapshot."""
791
+ name: String!
792
+ """
793
+ The compare snapshot's trigger, or null when the stored trigger cannot be read.
794
+ """
795
+ trigger: WorkflowDiffTrigger
796
+ """Scalar property changes."""
797
+ propertyChanges: [PropertyChange!]!
798
+ """Trigger subtree change, or null when unchanged."""
799
+ triggerChange: LogicChange
800
+ """Graph change, or null when unchanged."""
801
+ graphChange: WorkflowGraphChange
802
+ }
803
+ ```
804
+
805
+ ### `WorkflowDiff`
806
+
807
+ ```graphql
808
+ """
809
+ Workflow section of the workspace diff. Workflows are frozen onto a version
810
+ by `workspacePublish`, so a live workspace's workflows are compared against
811
+ the copies the version froze.
812
+ """
813
+ type WorkflowDiff {
814
+ """Workflows present only in the compare snapshot."""
815
+ added: [WorkflowDiffSummary!]!
816
+ """Workflows present only in the base snapshot."""
817
+ removed: [WorkflowDiffSummary!]!
818
+ """
819
+ Workflows present in both snapshots but with differing properties, trigger or graph.
820
+ """
821
+ modified: [WorkflowDiffEntry!]!
822
+ }
823
+ ```