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.
- package/README.md +27 -12
- package/docs/explanation/conditions-and-the-logic-engine.md +94 -0
- package/docs/explanation/content-references.md +99 -0
- package/docs/explanation/feature-flag-allocation.md +218 -0
- package/docs/explanation/how-picked-works.md +124 -0
- package/docs/explanation/how-pickedql-works.md +76 -0
- package/docs/explanation/pages-and-flows.md +64 -0
- package/docs/explanation/the-content-model.md +87 -0
- package/docs/explanation/the-two-apis.md +68 -0
- package/docs/explanation/why-server-side-rendering.md +76 -0
- package/docs/explanation/workspaces-and-versions.md +71 -0
- package/docs/how-to/add-a-step-field-or-action.md +56 -0
- package/docs/how-to/analytics/index.md +324 -0
- package/docs/how-to/archive-or-delete-a-workspace.md +59 -0
- package/docs/how-to/authenticate-the-cli.md +101 -0
- package/docs/how-to/authenticate-with-a-magic-link.md +56 -0
- package/docs/how-to/authenticate-with-a-password.md +68 -0
- package/docs/how-to/authenticate-with-an-api-key.md +60 -0
- package/docs/how-to/authenticate-with-oauth.md +49 -0
- package/docs/how-to/build-a-flow.md +106 -0
- package/docs/how-to/call-an-external-api-from-a-workflow.md +116 -0
- package/docs/how-to/connect-the-mcp-server.md +46 -0
- package/docs/how-to/create-a-content-entry.md +58 -0
- package/docs/how-to/create-a-project.md +40 -0
- package/docs/how-to/create-an-experience.md +51 -0
- package/docs/how-to/create-and-revoke-an-api-key.md +54 -0
- package/docs/how-to/debug-with-the-chrome-extension.md +57 -0
- package/docs/how-to/define-a-page-layout.md +54 -0
- package/docs/how-to/fill-and-publish-a-page.md +82 -0
- package/docs/how-to/install-the-gtm-template.md +84 -0
- package/docs/how-to/install-the-sdk.md +93 -0
- package/docs/how-to/install-the-vite-plugin.md +69 -0
- package/docs/how-to/invite-and-remove-members.md +45 -0
- package/docs/how-to/point-one-entry-at-another.md +75 -0
- package/docs/how-to/preview-a-workspace.md +39 -0
- package/docs/how-to/publish-a-workspace.md +42 -0
- package/docs/how-to/read-a-feature-flag.md +113 -0
- package/docs/how-to/read-a-referenced-entry.md +109 -0
- package/docs/how-to/register-a-component.md +55 -0
- package/docs/how-to/register-an-action-handler.md +85 -0
- package/docs/how-to/register-an-api-that-uses-oauth2.md +107 -0
- package/docs/how-to/render-a-step-form.md +131 -0
- package/docs/how-to/render-an-unpublished-preview.md +41 -0
- package/docs/how-to/retry-a-failed-call-with-a-loop.md +81 -0
- package/docs/how-to/reuse-a-section.md +64 -0
- package/docs/how-to/reuse-a-step-field-or-action.md +39 -0
- package/docs/how-to/roll-back-a-published-version.md +39 -0
- package/docs/how-to/run-an-ab-test.md +59 -0
- package/docs/how-to/run-code-on-a-form-submission.md +125 -0
- package/docs/how-to/server-render-a-page.md +81 -0
- package/docs/how-to/set-a-content-security-policy.md +32 -0
- package/docs/how-to/set-up-mfa.md +126 -0
- package/docs/how-to/switch-workspaces.md +122 -0
- package/docs/how-to/upload-and-use-an-asset.mdx +87 -0
- package/docs/how-to/validate-a-field.md +52 -0
- package/docs/how-to/wait-for-an-action-response.md +182 -0
- package/docs/how-to/write-a-condition.md +57 -0
- package/docs/how-to/write-a-predicate.md +60 -0
- package/docs/index.md +59 -0
- package/docs/reference/dashboard/actions.mdx +65 -0
- package/docs/reference/dashboard/api-keys.mdx +47 -0
- package/docs/reference/dashboard/conditions.mdx +51 -0
- package/docs/reference/dashboard/content/asset-library.mdx +74 -0
- package/docs/reference/dashboard/content/blocks.mdx +66 -0
- package/docs/reference/dashboard/content/content-entries.mdx +109 -0
- package/docs/reference/dashboard/content/models.mdx +119 -0
- package/docs/reference/dashboard/content/pages.mdx +72 -0
- package/docs/reference/dashboard/experiences.mdx +61 -0
- package/docs/reference/dashboard/external-apis.md +182 -0
- package/docs/reference/dashboard/features.mdx +165 -0
- package/docs/reference/dashboard/fields.mdx +120 -0
- package/docs/reference/dashboard/flow-builder/canvas.mdx +58 -0
- package/docs/reference/dashboard/flow-builder/condition-builder.md +69 -0
- package/docs/reference/dashboard/flow-builder/keyboard-shortcuts.md +72 -0
- package/docs/reference/dashboard/flow-builder/nodes.md +74 -0
- package/docs/reference/dashboard/labels.md +321 -0
- package/docs/reference/dashboard/lead-search.md +235 -0
- package/docs/reference/dashboard/projects.mdx +53 -0
- package/docs/reference/dashboard/reports.mdx +53 -0
- package/docs/reference/dashboard/steps.mdx +47 -0
- package/docs/reference/dashboard/team-management.md +38 -0
- package/docs/reference/dashboard/workflow-runs.md +157 -0
- package/docs/reference/dashboard/workflow-templates.md +182 -0
- package/docs/reference/dashboard/workflow-test-runs.md +85 -0
- package/docs/reference/dashboard/workspace-versioning.mdx +42 -0
- package/docs/reference/dashboard/workspaces.mdx +91 -0
- package/docs/reference/delivery-api/experience-content.md +152 -0
- package/docs/reference/delivery-api/index.md +45 -0
- package/docs/reference/delivery-api/preview-caching-crawling.md +79 -0
- package/docs/reference/delivery-api/project-config.md +65 -0
- package/docs/reference/delivery-api/workspace-schema.md +107 -0
- package/docs/reference/glossary.md +201 -0
- package/docs/reference/management-api/authentication.md +87 -0
- package/docs/reference/management-api/authorization-and-scopes.md +291 -0
- package/docs/reference/management-api/error-handling.md +232 -0
- package/docs/reference/management-api/pagination.md +192 -0
- package/docs/reference/management-api/schema/action.md +261 -0
- package/docs/reference/management-api/schema/analytics-session.md +363 -0
- package/docs/reference/management-api/schema/analytics.md +73 -0
- package/docs/reference/management-api/schema/api-key.md +170 -0
- package/docs/reference/management-api/schema/auth.md +1177 -0
- package/docs/reference/management-api/schema/cms-fields.md +954 -0
- package/docs/reference/management-api/schema/cms-models.md +1155 -0
- package/docs/reference/management-api/schema/common.md +362 -0
- package/docs/reference/management-api/schema/condition.md +254 -0
- package/docs/reference/management-api/schema/design-system.md +199 -0
- package/docs/reference/management-api/schema/experience.md +1098 -0
- package/docs/reference/management-api/schema/external-api.md +637 -0
- package/docs/reference/management-api/schema/feature.md +350 -0
- package/docs/reference/management-api/schema/feedback.md +103 -0
- package/docs/reference/management-api/schema/field.md +400 -0
- package/docs/reference/management-api/schema/index.md +243 -0
- package/docs/reference/management-api/schema/integration.md +272 -0
- package/docs/reference/management-api/schema/label.md +349 -0
- package/docs/reference/management-api/schema/lead.md +340 -0
- package/docs/reference/management-api/schema/mcp-server.md +299 -0
- package/docs/reference/management-api/schema/metric.md +223 -0
- package/docs/reference/management-api/schema/operation.md +96 -0
- package/docs/reference/management-api/schema/organization.md +749 -0
- package/docs/reference/management-api/schema/project.md +607 -0
- package/docs/reference/management-api/schema/report.md +243 -0
- package/docs/reference/management-api/schema/saved-view.md +288 -0
- package/docs/reference/management-api/schema/shopify.md +795 -0
- package/docs/reference/management-api/schema/step.md +273 -0
- package/docs/reference/management-api/schema/tenant-branding.md +185 -0
- package/docs/reference/management-api/schema/workbench.md +246 -0
- package/docs/reference/management-api/schema/workflow-run.md +263 -0
- package/docs/reference/management-api/schema/workflow.md +1110 -0
- package/docs/reference/management-api/schema/workspace-version.md +823 -0
- package/docs/reference/management-api/schema/workspace.md +917 -0
- package/docs/reference/pickedql/data-sources.md +174 -0
- package/docs/reference/pickedql/dimensions.md +103 -0
- package/docs/reference/pickedql/filtering.md +64 -0
- package/docs/reference/pickedql/index.md +18 -0
- package/docs/reference/pickedql/schema.md +172 -0
- package/docs/reference/pickedql/virtual-functions.md +248 -0
- package/docs/reference/sdk/actions.md +154 -0
- package/docs/reference/sdk/analytics-events.md +453 -0
- package/docs/reference/sdk/conditions.md +147 -0
- package/docs/reference/sdk/content-security-policy.md +21 -0
- package/docs/reference/sdk/content.md +253 -0
- package/docs/reference/sdk/experiences.md +51 -0
- package/docs/reference/sdk/features.md +256 -0
- package/docs/reference/sdk/fields.md +255 -0
- package/docs/reference/sdk/index.md +68 -0
- package/docs/reference/sdk/plugins/create-experience.md +123 -0
- package/docs/reference/sdk/plugins/dynamic-experiences.md +74 -0
- package/docs/reference/sdk/plugins/fingerprintjs.md +39 -0
- package/docs/reference/sdk/plugins/hotjar.md +60 -0
- package/docs/reference/sdk/plugins/index.md +33 -0
- package/docs/reference/sdk/plugins/sentry.md +51 -0
- package/docs/reference/sdk/plugins/shopify.md +109 -0
- package/docs/reference/sdk/plugins/window-object.md +25 -0
- package/docs/reference/sdk/predicates.md +43 -0
- package/docs/reference/sdk/react.md +61 -0
- package/docs/reference/sdk/ssr/index.md +33 -0
- package/docs/reference/sdk/ssr/rendering-and-hydration.md +103 -0
- package/docs/reference/sdk/ssr/serialize.md +80 -0
- package/docs/reference/sdk/ssr/slots-and-placements.md +113 -0
- package/docs/reference/sdk/steps.md +86 -0
- package/docs/reference/sdk/svelte.md +74 -0
- package/docs/reference/sdk/type-generation.md +265 -0
- package/docs/reference/tools/admin-api-client.md +89 -0
- package/docs/reference/tools/chrome-extension.md +16 -0
- package/docs/reference/tools/cli.md +319 -0
- package/docs/reference/tools/delivery-api-client.md +60 -0
- package/docs/reference/tools/image-optimisation-service.md +104 -0
- package/docs/reference/tools/mcp-run.md +121 -0
- package/docs/reference/tools/mcp.md +391 -0
- package/docs/reference/tools/vite-plugin.md +163 -0
- package/docs/tutorials/first-api-call.md +253 -0
- package/docs/tutorials/first-experience-in-the-dashboard.mdx +160 -0
- package/docs/tutorials/first-experience.mdx +254 -0
- package/docs/tutorials/first-server-rendered-page.mdx +186 -0
- package/package.json +8 -7
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: reference
|
|
3
|
+
layout: docs
|
|
4
|
+
generated: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step schema
|
|
8
|
+
|
|
9
|
+
The operations and types that `step.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
|
+
### `step`
|
|
14
|
+
|
|
15
|
+
Get a step by ID within a workspace.
|
|
16
|
+
|
|
17
|
+
```graphql
|
|
18
|
+
step(id: ID!, workspaceId: ID!): Step @auth
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### `steps`
|
|
22
|
+
|
|
23
|
+
Get list of steps within a workspace.
|
|
24
|
+
|
|
25
|
+
```graphql
|
|
26
|
+
steps(first: Int, after: String, last: Int, before: String, workspaceId: ID!, search: String, sortKey: StepSortKeys = NAME, reverse: Boolean = false): StepConnection! @auth
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Mutations
|
|
30
|
+
|
|
31
|
+
### `stepCreate`
|
|
32
|
+
|
|
33
|
+
Create a new step. Requires scope: `ORGANIZATION_PROJECTS_CREATE`.
|
|
34
|
+
|
|
35
|
+
```graphql
|
|
36
|
+
stepCreate(input: StepCreateInput!): StepCreatePayload! @auth
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### `stepUpdate`
|
|
40
|
+
|
|
41
|
+
Update a step. Requires scope: `ORGANIZATION_PROJECTS_UPDATE`.
|
|
42
|
+
|
|
43
|
+
```graphql
|
|
44
|
+
stepUpdate(input: StepUpdateInput!): StepUpdatePayload! @auth
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### `stepDelete`
|
|
48
|
+
|
|
49
|
+
Delete a step. Requires scope: `ORGANIZATION_PROJECTS_DELETE`.
|
|
50
|
+
|
|
51
|
+
```graphql
|
|
52
|
+
stepDelete(input: StepDeleteInput!): StepDeletePayload! @auth
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Types
|
|
56
|
+
|
|
57
|
+
### `Step`
|
|
58
|
+
|
|
59
|
+
```graphql
|
|
60
|
+
"""
|
|
61
|
+
A step within a workspace. Rendered by the SDK as one screen of UI when
|
|
62
|
+
the flow reaches a `StepNode` referencing this step.
|
|
63
|
+
|
|
64
|
+
Carries a list of `Field`s (form inputs) and an optional `layoutName` or
|
|
65
|
+
`layoutContentEntry` (the layout the SDK renders the fields into). The
|
|
66
|
+
fields are workspace-level resources shared across steps; `Step.fields`
|
|
67
|
+
returns this step's selection.
|
|
68
|
+
"""
|
|
69
|
+
type Step {
|
|
70
|
+
"""Unique step identifier."""
|
|
71
|
+
id: ID!
|
|
72
|
+
"""Display name of the step."""
|
|
73
|
+
name: String!
|
|
74
|
+
"""Stable, human-readable key for SDK consumers."""
|
|
75
|
+
key: String!
|
|
76
|
+
"""Optional description of the step."""
|
|
77
|
+
description: String
|
|
78
|
+
"""
|
|
79
|
+
Name of the layout the SDK should render this step with (free-form string, plug-in defined).
|
|
80
|
+
"""
|
|
81
|
+
layoutName: String
|
|
82
|
+
"""
|
|
83
|
+
Optional 1:1 reference to the CMS Content Entry that backs this step's layout. Mutually exclusive with `layoutName`.
|
|
84
|
+
"""
|
|
85
|
+
layoutContentEntry: ContentEntry
|
|
86
|
+
"""When this step was created."""
|
|
87
|
+
createdAt: DateTime!
|
|
88
|
+
"""When this step was last updated."""
|
|
89
|
+
updatedAt: DateTime!
|
|
90
|
+
"""The workspace this step belongs to."""
|
|
91
|
+
workspace: Workspace!
|
|
92
|
+
"""
|
|
93
|
+
The workspace ID this step belongs to (denormalised for query convenience).
|
|
94
|
+
"""
|
|
95
|
+
workspaceId: ID
|
|
96
|
+
"""Fields within this step."""
|
|
97
|
+
fields(first: Int, after: String, last: Int, before: String): FieldConnection!
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### `StepEdge`
|
|
102
|
+
|
|
103
|
+
```graphql
|
|
104
|
+
"""Edge type for `StepConnection`."""
|
|
105
|
+
type StepEdge {
|
|
106
|
+
"""Pagination cursor for this edge."""
|
|
107
|
+
cursor: String!
|
|
108
|
+
"""The step."""
|
|
109
|
+
node: Step!
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### `StepConnection`
|
|
114
|
+
|
|
115
|
+
```graphql
|
|
116
|
+
"""
|
|
117
|
+
Relay-style connection of steps, with both an `edges` list and a flat `nodes` accessor.
|
|
118
|
+
"""
|
|
119
|
+
type StepConnection {
|
|
120
|
+
"""List of step edges."""
|
|
121
|
+
edges: [StepEdge!]!
|
|
122
|
+
"""
|
|
123
|
+
Flat list of steps, equivalent to `edges[].node`. Convenience accessor.
|
|
124
|
+
"""
|
|
125
|
+
nodes: [Step!]!
|
|
126
|
+
"""Pagination metadata."""
|
|
127
|
+
pageInfo: PageInfo!
|
|
128
|
+
"""Total number of steps."""
|
|
129
|
+
totalCount: Int!
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### `StepCreateInput`
|
|
134
|
+
|
|
135
|
+
```graphql
|
|
136
|
+
"""Input for `stepCreate`."""
|
|
137
|
+
input StepCreateInput {
|
|
138
|
+
"""Workspace ID to create the step in."""
|
|
139
|
+
workspaceId: ID!
|
|
140
|
+
"""Display name for the step."""
|
|
141
|
+
name: String!
|
|
142
|
+
"""Unique key identifier for the step."""
|
|
143
|
+
key: String!
|
|
144
|
+
"""Optional description."""
|
|
145
|
+
description: String
|
|
146
|
+
"""Name of the layout the SDK should render this step with."""
|
|
147
|
+
layoutName: String
|
|
148
|
+
"""
|
|
149
|
+
IDs of workspace-level fields to associate with this step. Order is preserved.
|
|
150
|
+
"""
|
|
151
|
+
fieldIds: [ID!]
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### `StepCreatePayload`
|
|
156
|
+
|
|
157
|
+
```graphql
|
|
158
|
+
"""Payload returned by `stepCreate`."""
|
|
159
|
+
type StepCreatePayload {
|
|
160
|
+
"""The created step."""
|
|
161
|
+
step: Step
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### `StepUpdateInput`
|
|
166
|
+
|
|
167
|
+
```graphql
|
|
168
|
+
"""Input for `stepUpdate`. Omit a field to leave it unchanged."""
|
|
169
|
+
input StepUpdateInput {
|
|
170
|
+
"""Step ID."""
|
|
171
|
+
id: ID!
|
|
172
|
+
"""Workspace ID the step belongs to."""
|
|
173
|
+
workspaceId: ID!
|
|
174
|
+
"""New display name."""
|
|
175
|
+
name: String
|
|
176
|
+
"""New description."""
|
|
177
|
+
description: String
|
|
178
|
+
"""New layout name."""
|
|
179
|
+
layoutName: String
|
|
180
|
+
"""
|
|
181
|
+
ID of the CMS Content Entry to use as this step's layout. Pass null to detach the entry; mutually exclusive with `layoutName`.
|
|
182
|
+
"""
|
|
183
|
+
layoutContentEntryId: ID
|
|
184
|
+
"""
|
|
185
|
+
IDs of workspace-level fields to associate with this step. Replaces the existing field list when set.
|
|
186
|
+
"""
|
|
187
|
+
fieldIds: [ID!]
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### `StepUpdatePayload`
|
|
192
|
+
|
|
193
|
+
```graphql
|
|
194
|
+
"""Payload returned by `stepUpdate`."""
|
|
195
|
+
type StepUpdatePayload {
|
|
196
|
+
"""The updated step."""
|
|
197
|
+
step: Step
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### `StepDeleteInput`
|
|
202
|
+
|
|
203
|
+
```graphql
|
|
204
|
+
"""Input for `stepDelete`."""
|
|
205
|
+
input StepDeleteInput {
|
|
206
|
+
"""Step ID."""
|
|
207
|
+
id: ID!
|
|
208
|
+
"""Workspace ID the step belongs to."""
|
|
209
|
+
workspaceId: ID!
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### `StepDeletePayload`
|
|
214
|
+
|
|
215
|
+
```graphql
|
|
216
|
+
"""
|
|
217
|
+
Payload returned by `stepDelete`. Returns `userErrors` when the step is in use.
|
|
218
|
+
"""
|
|
219
|
+
type StepDeletePayload {
|
|
220
|
+
"""ID of the deleted step (null when `userErrors` is non-empty)."""
|
|
221
|
+
deletedStepId: ID
|
|
222
|
+
"""Validation errors. Empty array indicates success."""
|
|
223
|
+
userErrors: [StepDeleteUserError!]!
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### `StepDeleteUserErrorCode`
|
|
228
|
+
|
|
229
|
+
```graphql
|
|
230
|
+
"""Machine-readable error codes for `stepDelete`."""
|
|
231
|
+
enum StepDeleteUserErrorCode {
|
|
232
|
+
"""
|
|
233
|
+
The step is referenced by one or more experiences and cannot be deleted.
|
|
234
|
+
"""
|
|
235
|
+
IN_USE
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### `StepDeleteUserError`
|
|
240
|
+
|
|
241
|
+
```graphql
|
|
242
|
+
"""
|
|
243
|
+
A user error from `stepDelete`. Carries the experiences that block the delete when `code` is `IN_USE`.
|
|
244
|
+
"""
|
|
245
|
+
type StepDeleteUserError {
|
|
246
|
+
"""Path to the input field that caused the error."""
|
|
247
|
+
field: [String!]
|
|
248
|
+
"""Human-readable error message."""
|
|
249
|
+
message: String!
|
|
250
|
+
"""Machine-readable error code."""
|
|
251
|
+
code: StepDeleteUserErrorCode!
|
|
252
|
+
"""
|
|
253
|
+
Experiences that reference this step (present when `code` is `IN_USE`).
|
|
254
|
+
"""
|
|
255
|
+
referencingExperiences: [ReferencingExperience!]
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### `StepSortKeys`
|
|
260
|
+
|
|
261
|
+
```graphql
|
|
262
|
+
"""
|
|
263
|
+
Sort keys for `steps(...)`. Pair with `reverse: true` to flip the order (`NAME` + `reverse: false` sorts A→Z; `CREATED_AT` + `reverse: true` is newest-first).
|
|
264
|
+
"""
|
|
265
|
+
enum StepSortKeys {
|
|
266
|
+
"""Sort by `name` (alphabetical)."""
|
|
267
|
+
NAME
|
|
268
|
+
"""Sort by `createdAt`."""
|
|
269
|
+
CREATED_AT
|
|
270
|
+
"""Sort by `updatedAt`."""
|
|
271
|
+
UPDATED_AT
|
|
272
|
+
}
|
|
273
|
+
```
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: reference
|
|
3
|
+
layout: docs
|
|
4
|
+
generated: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tenant branding schema
|
|
8
|
+
|
|
9
|
+
The operations and types that `tenant-branding.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
|
+
### `tenant`
|
|
14
|
+
|
|
15
|
+
Resolve a tenant (and its branding) by host or explicit slug. Unauthenticated; cached for 5 minutes.
|
|
16
|
+
|
|
17
|
+
```graphql
|
|
18
|
+
tenant(input: TenantInput!): Tenant! @cache(policy: "public, max-age=300, stale-while-revalidate=3600")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Types
|
|
22
|
+
|
|
23
|
+
### `Tenant`
|
|
24
|
+
|
|
25
|
+
```graphql
|
|
26
|
+
"""A tenant dashboard deployment (e.g. `picked`, `convincely`)."""
|
|
27
|
+
type Tenant {
|
|
28
|
+
"""
|
|
29
|
+
Machine-readable identifier for the tenant (e.g. `picked`, `convincely`).
|
|
30
|
+
"""
|
|
31
|
+
slug: String!
|
|
32
|
+
"""Hostnames this tenant serves the dashboard on."""
|
|
33
|
+
hosts: [String!]!
|
|
34
|
+
"""Visual identity for this tenant — logos, colours, radii."""
|
|
35
|
+
branding: Branding!
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### `Branding`
|
|
40
|
+
|
|
41
|
+
```graphql
|
|
42
|
+
"""
|
|
43
|
+
Visual identity for a tenant — logos, colour palette, and shape tokens.
|
|
44
|
+
"""
|
|
45
|
+
type Branding {
|
|
46
|
+
"""Human-readable product name shown in chrome and document titles."""
|
|
47
|
+
productName: String!
|
|
48
|
+
"""Logos used throughout the dashboard."""
|
|
49
|
+
logos: BrandingLogos!
|
|
50
|
+
"""Brand colour tokens."""
|
|
51
|
+
colors: BrandingColors!
|
|
52
|
+
"""Border-radius tokens."""
|
|
53
|
+
radii: BrandingRadii!
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### `BrandingLogos`
|
|
58
|
+
|
|
59
|
+
```graphql
|
|
60
|
+
"""
|
|
61
|
+
Logo URLs for a tenant. Paths are absolute relative to the dashboard origin.
|
|
62
|
+
"""
|
|
63
|
+
type BrandingLogos {
|
|
64
|
+
"""Small logo shown in the dashboard header."""
|
|
65
|
+
header: String!
|
|
66
|
+
"""Larger logo shown on authentication pages (sign-in, OAuth)."""
|
|
67
|
+
auth: String!
|
|
68
|
+
"""Optional favicon URL."""
|
|
69
|
+
favicon: String
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### `BrandingColors`
|
|
74
|
+
|
|
75
|
+
```graphql
|
|
76
|
+
"""
|
|
77
|
+
Brand colour tokens for a tenant. Values are CSS colour expressions (`#rrggbb`, `rgb(...)`, etc.).
|
|
78
|
+
"""
|
|
79
|
+
type BrandingColors {
|
|
80
|
+
"""Primary brand colour."""
|
|
81
|
+
primary: String!
|
|
82
|
+
"""Focus / outline ring colour used across the site."""
|
|
83
|
+
focusRing: String!
|
|
84
|
+
"""Colour tokens for unauthenticated / auth pages."""
|
|
85
|
+
auth: BrandingAuthColors!
|
|
86
|
+
"""Colour tokens for authenticated / app pages."""
|
|
87
|
+
app: BrandingAppColors!
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### `BrandingAuthColors`
|
|
92
|
+
|
|
93
|
+
```graphql
|
|
94
|
+
"""
|
|
95
|
+
Colour tokens used on authentication pages (sign-in, OAuth callback, etc.).
|
|
96
|
+
"""
|
|
97
|
+
type BrandingAuthColors {
|
|
98
|
+
"""Full auth page background."""
|
|
99
|
+
shellBg: String!
|
|
100
|
+
"""`AuthModal` / sign-in card background."""
|
|
101
|
+
cardBg: String!
|
|
102
|
+
"""Primary text colour on auth pages."""
|
|
103
|
+
text: String!
|
|
104
|
+
"""Primary button background on auth pages."""
|
|
105
|
+
buttonBg: String!
|
|
106
|
+
"""Primary button text colour on auth pages."""
|
|
107
|
+
buttonText: String!
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### `BrandingAppColors`
|
|
112
|
+
|
|
113
|
+
```graphql
|
|
114
|
+
"""Colour tokens used on authenticated application pages."""
|
|
115
|
+
type BrandingAppColors {
|
|
116
|
+
"""Authenticated app shell (header / sidebar chrome) background."""
|
|
117
|
+
shellBg: String!
|
|
118
|
+
"""
|
|
119
|
+
Foreground colour for chrome (text + icons) sitting on the shell background.
|
|
120
|
+
"""
|
|
121
|
+
shellText: String!
|
|
122
|
+
"""Primary content area background (what sits inside the shell)."""
|
|
123
|
+
contentBg: String!
|
|
124
|
+
"""
|
|
125
|
+
Subdued content background (used for card subdued variants and similar muted surfaces inside the content area).
|
|
126
|
+
"""
|
|
127
|
+
contentBgSubdued: String!
|
|
128
|
+
"""
|
|
129
|
+
Page-level background sitting behind page content (the main scroll viewport).
|
|
130
|
+
"""
|
|
131
|
+
pageBg: String!
|
|
132
|
+
"""Subtle surface background for card headers and similar chrome."""
|
|
133
|
+
surfaceBg: String!
|
|
134
|
+
"""Sidebar (left nav rail) background."""
|
|
135
|
+
sidebarBg: String!
|
|
136
|
+
"""
|
|
137
|
+
Neutral surface background used for secondary buttons and similar muted chrome.
|
|
138
|
+
"""
|
|
139
|
+
neutralBg: String!
|
|
140
|
+
"""Primary text colour in the content area."""
|
|
141
|
+
text: String!
|
|
142
|
+
"""Primary button background in the app."""
|
|
143
|
+
buttonBg: String!
|
|
144
|
+
"""Primary button text colour in the app."""
|
|
145
|
+
buttonText: String!
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### `BrandingRadii`
|
|
150
|
+
|
|
151
|
+
```graphql
|
|
152
|
+
"""
|
|
153
|
+
Border-radius tokens for a tenant. Values are CSS length expressions (`8px`, `0.5rem`, etc.).
|
|
154
|
+
"""
|
|
155
|
+
type BrandingRadii {
|
|
156
|
+
"""Border radius for buttons."""
|
|
157
|
+
button: String!
|
|
158
|
+
"""Border radius for cards."""
|
|
159
|
+
card: String!
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### `TenantInput`
|
|
164
|
+
|
|
165
|
+
```graphql
|
|
166
|
+
"""
|
|
167
|
+
Input for the `tenant` query. Either `host`, `slug`, both, or neither
|
|
168
|
+
may be provided.
|
|
169
|
+
|
|
170
|
+
When both are absent the default tenant is returned. When `slug` is set
|
|
171
|
+
it wins over `host`. When only `host` is set, the server resolves the
|
|
172
|
+
slug from the host registry; unknown hosts fall back to the default
|
|
173
|
+
tenant.
|
|
174
|
+
"""
|
|
175
|
+
input TenantInput {
|
|
176
|
+
"""
|
|
177
|
+
Dashboard hostname (e.g. `dashboard.convincely.com`). Used when `slug` is absent or unknown.
|
|
178
|
+
"""
|
|
179
|
+
host: String
|
|
180
|
+
"""
|
|
181
|
+
Explicit tenant slug override. Wins over `host` when it matches a registered tenant.
|
|
182
|
+
"""
|
|
183
|
+
slug: String
|
|
184
|
+
}
|
|
185
|
+
```
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: reference
|
|
3
|
+
layout: docs
|
|
4
|
+
generated: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Workbench schema
|
|
8
|
+
|
|
9
|
+
The operations and types that `workbench.graphql` adds to the Management API. See [Management API schema](/reference/management-api/schema) for every domain, the endpoint and authentication.
|
|
10
|
+
|
|
11
|
+
## Mutations
|
|
12
|
+
|
|
13
|
+
### `workbenchAssetImport`
|
|
14
|
+
|
|
15
|
+
Imports an Asset owned elsewhere into a Workbench, creating an `IMPORTED` membership. Removing the import (`workbenchAssetRemove`) drops only the join, never the Asset.
|
|
16
|
+
|
|
17
|
+
```graphql
|
|
18
|
+
workbenchAssetImport(input: WorkbenchAssetImportInput!): WorkbenchAssetImportPayload! @auth
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### `workbenchAssetAdoptOwned`
|
|
22
|
+
|
|
23
|
+
Adopts an existing project-library Asset as `OWNED` by a Workbench, transferring the Asset's ownership. Used when a Create-Page upload is bound to its Workbench after the Workbench is created.
|
|
24
|
+
|
|
25
|
+
```graphql
|
|
26
|
+
workbenchAssetAdoptOwned(input: WorkbenchAssetAdoptOwnedInput!): WorkbenchAssetAdoptOwnedPayload! @auth
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### `workbenchAssetRemove`
|
|
30
|
+
|
|
31
|
+
Removes an Asset's membership from a Workbench. If the membership was `OWNED`, the Asset is also soft-deleted; if `IMPORTED`, only the join is dropped.
|
|
32
|
+
|
|
33
|
+
```graphql
|
|
34
|
+
workbenchAssetRemove(input: WorkbenchAssetRemoveInput!): WorkbenchAssetRemovePayload! @auth
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Types
|
|
38
|
+
|
|
39
|
+
### `WorkbenchAssetRelationship`
|
|
40
|
+
|
|
41
|
+
```graphql
|
|
42
|
+
"""How an Asset relates to the Workbench it is joined to."""
|
|
43
|
+
enum WorkbenchAssetRelationship {
|
|
44
|
+
"""
|
|
45
|
+
Authored or uploaded directly into this Workbench. Soft-deleted when removed.
|
|
46
|
+
"""
|
|
47
|
+
OWNED
|
|
48
|
+
"""
|
|
49
|
+
A reference to an Asset owned elsewhere (for example a Design System's DESIGN.md). Removing it drops only the join.
|
|
50
|
+
"""
|
|
51
|
+
IMPORTED
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### `WorkbenchOwner`
|
|
56
|
+
|
|
57
|
+
```graphql
|
|
58
|
+
"""Identifies the logical entity a Workbench belongs to."""
|
|
59
|
+
type WorkbenchOwner {
|
|
60
|
+
"""The owner kind: `"experience"` or `"design_system"`."""
|
|
61
|
+
type: String!
|
|
62
|
+
"""
|
|
63
|
+
The owner's stable cross-workspace reference: an Experience's `key`, or a Design System's `id`.
|
|
64
|
+
"""
|
|
65
|
+
ref: String!
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### `WorkbenchAsset`
|
|
70
|
+
|
|
71
|
+
```graphql
|
|
72
|
+
"""One Asset's membership in a Workbench."""
|
|
73
|
+
type WorkbenchAsset {
|
|
74
|
+
"""
|
|
75
|
+
Whether this Asset is owned by the Workbench or imported from elsewhere.
|
|
76
|
+
"""
|
|
77
|
+
relationship: WorkbenchAssetRelationship!
|
|
78
|
+
"""
|
|
79
|
+
The logical path of this Asset within the Workbench, if one was assigned at upload time.
|
|
80
|
+
"""
|
|
81
|
+
path: String
|
|
82
|
+
"""The Asset."""
|
|
83
|
+
asset: Asset!
|
|
84
|
+
"""
|
|
85
|
+
The Design System this Asset was imported from, when it is a Design System's file; null otherwise.
|
|
86
|
+
"""
|
|
87
|
+
sourceDesignSystem: DesignSystem
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### `WorkbenchAssetEdge`
|
|
92
|
+
|
|
93
|
+
```graphql
|
|
94
|
+
"""Edge type for `WorkbenchAssetConnection`."""
|
|
95
|
+
type WorkbenchAssetEdge {
|
|
96
|
+
"""Pagination cursor for this edge."""
|
|
97
|
+
cursor: String!
|
|
98
|
+
"""The Workbench-Asset membership."""
|
|
99
|
+
node: WorkbenchAsset!
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### `WorkbenchAssetConnection`
|
|
104
|
+
|
|
105
|
+
```graphql
|
|
106
|
+
"""
|
|
107
|
+
Relay-style connection of Workbench-Asset memberships, with both an `edges` list and a flat `nodes` accessor.
|
|
108
|
+
"""
|
|
109
|
+
type WorkbenchAssetConnection {
|
|
110
|
+
"""List of Workbench-Asset membership edges."""
|
|
111
|
+
edges: [WorkbenchAssetEdge!]!
|
|
112
|
+
"""
|
|
113
|
+
Flat list of Workbench-Asset memberships, equivalent to `edges[].node`.
|
|
114
|
+
"""
|
|
115
|
+
nodes: [WorkbenchAsset!]!
|
|
116
|
+
"""Pagination metadata."""
|
|
117
|
+
pageInfo: PageInfo!
|
|
118
|
+
"""
|
|
119
|
+
Total number of memberships in this Workbench, optionally filtered by `relationship`.
|
|
120
|
+
"""
|
|
121
|
+
totalCount: Int!
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### `Workbench`
|
|
126
|
+
|
|
127
|
+
```graphql
|
|
128
|
+
"""
|
|
129
|
+
A cross-workspace working directory for a logical entity (an Experience or a
|
|
130
|
+
Design System), associated by `(project, ownerType, ownerRef)`. A Workbench is
|
|
131
|
+
NOT scoped to a workspace version, so one Workbench serves every workspace of
|
|
132
|
+
a project that shares the owner reference — including duplicates, since
|
|
133
|
+
workspace duplication preserves an Experience's `key`.
|
|
134
|
+
"""
|
|
135
|
+
type Workbench {
|
|
136
|
+
"""Unique Workbench identifier."""
|
|
137
|
+
id: ID!
|
|
138
|
+
"""The logical entity this Workbench belongs to."""
|
|
139
|
+
owner: WorkbenchOwner!
|
|
140
|
+
"""
|
|
141
|
+
The Assets joined to this Workbench, each carrying its `relationship` and logical `path`.
|
|
142
|
+
"""
|
|
143
|
+
assets(
|
|
144
|
+
"""
|
|
145
|
+
Filter to only `OWNED` or only `IMPORTED` memberships. Omit to return both.
|
|
146
|
+
"""
|
|
147
|
+
relationship: WorkbenchAssetRelationship
|
|
148
|
+
first: Int
|
|
149
|
+
after: String
|
|
150
|
+
): WorkbenchAssetConnection!
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### `Experience` (extension)
|
|
155
|
+
|
|
156
|
+
```graphql
|
|
157
|
+
extend type Experience {
|
|
158
|
+
"""
|
|
159
|
+
This Experience's Workbench, resolved (and created on first access) by its stable `key`.
|
|
160
|
+
"""
|
|
161
|
+
workbench: Workbench!
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### `DesignSystem` (extension)
|
|
166
|
+
|
|
167
|
+
```graphql
|
|
168
|
+
extend type DesignSystem {
|
|
169
|
+
"""
|
|
170
|
+
This Design System's Workbench, resolved (and created on first access) by its `id`.
|
|
171
|
+
"""
|
|
172
|
+
workbench: Workbench!
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### `WorkbenchAssetImportInput`
|
|
177
|
+
|
|
178
|
+
```graphql
|
|
179
|
+
"""Input for `workbenchAssetImport`."""
|
|
180
|
+
input WorkbenchAssetImportInput {
|
|
181
|
+
"""The Workbench to import into."""
|
|
182
|
+
workbenchId: ID!
|
|
183
|
+
"""The Asset to import, owned elsewhere."""
|
|
184
|
+
assetId: ID!
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### `WorkbenchAssetImportPayload`
|
|
189
|
+
|
|
190
|
+
```graphql
|
|
191
|
+
"""Payload returned by `workbenchAssetImport`."""
|
|
192
|
+
type WorkbenchAssetImportPayload {
|
|
193
|
+
"""The newly created `IMPORTED` membership."""
|
|
194
|
+
workbenchAsset: WorkbenchAsset!
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### `WorkbenchAssetAdoptOwnedInput`
|
|
199
|
+
|
|
200
|
+
```graphql
|
|
201
|
+
"""Input for `workbenchAssetAdoptOwned`."""
|
|
202
|
+
input WorkbenchAssetAdoptOwnedInput {
|
|
203
|
+
"""The Workbench that should take ownership of the Asset."""
|
|
204
|
+
workbenchId: ID!
|
|
205
|
+
"""
|
|
206
|
+
The project-library Asset to adopt as `OWNED`, transferring its ownership to the Workbench.
|
|
207
|
+
"""
|
|
208
|
+
assetId: ID!
|
|
209
|
+
"""Optional logical path to assign the membership within the Workbench."""
|
|
210
|
+
path: String
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### `WorkbenchAssetAdoptOwnedPayload`
|
|
215
|
+
|
|
216
|
+
```graphql
|
|
217
|
+
"""Payload returned by `workbenchAssetAdoptOwned`."""
|
|
218
|
+
type WorkbenchAssetAdoptOwnedPayload {
|
|
219
|
+
"""The `OWNED` membership after adoption."""
|
|
220
|
+
workbenchAsset: WorkbenchAsset!
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### `WorkbenchAssetRemoveInput`
|
|
225
|
+
|
|
226
|
+
```graphql
|
|
227
|
+
"""Input for `workbenchAssetRemove`."""
|
|
228
|
+
input WorkbenchAssetRemoveInput {
|
|
229
|
+
"""The Workbench to remove the Asset from."""
|
|
230
|
+
workbenchId: ID!
|
|
231
|
+
"""The Asset to remove."""
|
|
232
|
+
assetId: ID!
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### `WorkbenchAssetRemovePayload`
|
|
237
|
+
|
|
238
|
+
```graphql
|
|
239
|
+
"""Payload returned by `workbenchAssetRemove`."""
|
|
240
|
+
type WorkbenchAssetRemovePayload {
|
|
241
|
+
"""
|
|
242
|
+
The Asset id that was removed from the Workbench. Only the join is guaranteed removed; the Asset itself is also soft-deleted when the membership was `OWNED`.
|
|
243
|
+
"""
|
|
244
|
+
removedAssetId: ID!
|
|
245
|
+
}
|
|
246
|
+
```
|