picked 0.0.101 → 0.0.102-next.2

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 (36) hide show
  1. package/docs/reference/dashboard/workflow-test-runs.md +40 -17
  2. package/docs/reference/management-api/schema/action.md +67 -79
  3. package/docs/reference/management-api/schema/analytics-session.md +77 -94
  4. package/docs/reference/management-api/schema/analytics.md +16 -14
  5. package/docs/reference/management-api/schema/api-key.md +43 -51
  6. package/docs/reference/management-api/schema/auth.md +271 -404
  7. package/docs/reference/management-api/schema/cms-fields.md +348 -245
  8. package/docs/reference/management-api/schema/cms-models.md +369 -378
  9. package/docs/reference/management-api/schema/common.md +69 -130
  10. package/docs/reference/management-api/schema/condition.md +63 -74
  11. package/docs/reference/management-api/schema/design-system.md +59 -51
  12. package/docs/reference/management-api/schema/experience.md +388 -364
  13. package/docs/reference/management-api/schema/external-api.md +153 -171
  14. package/docs/reference/management-api/schema/feature.md +85 -103
  15. package/docs/reference/management-api/schema/feedback.md +27 -31
  16. package/docs/reference/management-api/schema/field.md +117 -135
  17. package/docs/reference/management-api/schema/index.md +184 -184
  18. package/docs/reference/management-api/schema/integration.md +72 -78
  19. package/docs/reference/management-api/schema/label.md +81 -137
  20. package/docs/reference/management-api/schema/lead.md +80 -119
  21. package/docs/reference/management-api/schema/mcp-server.md +73 -71
  22. package/docs/reference/management-api/schema/metric.md +6 -9
  23. package/docs/reference/management-api/schema/operation.md +17 -26
  24. package/docs/reference/management-api/schema/organization.md +198 -220
  25. package/docs/reference/management-api/schema/project.md +177 -186
  26. package/docs/reference/management-api/schema/report.md +69 -65
  27. package/docs/reference/management-api/schema/saved-view.md +71 -71
  28. package/docs/reference/management-api/schema/shopify.md +331 -204
  29. package/docs/reference/management-api/schema/step.md +72 -80
  30. package/docs/reference/management-api/schema/tenant-branding.md +48 -70
  31. package/docs/reference/management-api/schema/workbench.md +54 -66
  32. package/docs/reference/management-api/schema/workflow-run.md +66 -79
  33. package/docs/reference/management-api/schema/workflow.md +310 -353
  34. package/docs/reference/management-api/schema/workspace-version.md +212 -261
  35. package/docs/reference/management-api/schema/workspace.md +275 -328
  36. package/package.json +4 -4
@@ -6,13 +6,14 @@ generated: true
6
6
 
7
7
  # Project schema
8
8
 
9
- The operations and types that `project.graphql` adds to the Management API. See [Management API schema](/reference/management-api/schema) for every domain, the endpoint and authentication.
9
+ See [Management API schema](/reference/management-api/schema) for every domain, the endpoint and authentication.
10
10
 
11
11
  ## Queries
12
12
 
13
13
  ### `project`
14
14
 
15
- Fetch a single project by ID. Requires authentication.
15
+ Reads a project. Null when no project has the ID.
16
+ Scope: `ORGANIZATION_PROJECTS_READ`.
16
17
 
17
18
  ```graphql
18
19
  project(input: ProjectInput!): Project @auth
@@ -20,9 +21,8 @@ project(input: ProjectInput!): Project @auth
20
21
 
21
22
  ### `projects`
22
23
 
23
- List projects the authenticated user can reach, across every organisation they
24
- belong to. Pass `organizationId` to narrow the list to one organisation, and
25
- `search` to match project names case-insensitively. Requires authentication.
24
+ Lists the projects the user can reach, across every organisation they belong to. `search`
25
+ matches a case-insensitive substring of the name. Empty for an API key.
26
26
 
27
27
  ```graphql
28
28
  projects(organizationId: ID, first: Int, after: String, search: String, sortKey: ProjectSortKeys = NAME, reverse: Boolean = false): ProjectConnection! @auth
@@ -32,7 +32,8 @@ projects(organizationId: ID, first: Int, after: String, search: String, sortKey:
32
32
 
33
33
  ### `projectCreate`
34
34
 
35
- Create a new project. Requires scope: `ORGANIZATION_PROJECTS_CREATE`.
35
+ Creates a project, with a draft workspace named `Default`.
36
+ Scope: `ORGANIZATION_PROJECTS_CREATE`.
36
37
 
37
38
  ```graphql
38
39
  projectCreate(input: ProjectCreateInput!): ProjectCreatePayload! @auth
@@ -40,7 +41,8 @@ projectCreate(input: ProjectCreateInput!): ProjectCreatePayload! @auth
40
41
 
41
42
  ### `projectUpdate`
42
43
 
43
- Update a project. Requires scope: `ORGANIZATION_PROJECTS_UPDATE`.
44
+ Updates a project's name or brief.
45
+ Scope: `ORGANIZATION_PROJECTS_UPDATE`.
44
46
 
45
47
  ```graphql
46
48
  projectUpdate(input: ProjectUpdateInput!): ProjectUpdatePayload! @auth
@@ -48,7 +50,8 @@ projectUpdate(input: ProjectUpdateInput!): ProjectUpdatePayload! @auth
48
50
 
49
51
  ### `projectDelete`
50
52
 
51
- Delete a project. Requires scope: `ORGANIZATION_PROJECTS_DELETE`.
53
+ Deletes a project.
54
+ Scope: `ORGANIZATION_PROJECTS_DELETE`.
52
55
 
53
56
  ```graphql
54
57
  projectDelete(input: ProjectDeleteInput!): ProjectDeletePayload! @auth
@@ -56,7 +59,8 @@ projectDelete(input: ProjectDeleteInput!): ProjectDeletePayload! @auth
56
59
 
57
60
  ### `projectPreviewEnvironmentCreate`
58
61
 
59
- Create a project preview environment. Requires scope: `ORGANIZATION_PROJECTS_UPDATE`.
62
+ Creates a preview environment on a project. Invalid input comes back as `userErrors`.
63
+ Scope: `ORGANIZATION_PROJECTS_UPDATE`.
60
64
 
61
65
  ```graphql
62
66
  projectPreviewEnvironmentCreate(input: ProjectPreviewEnvironmentCreateInput!): ProjectPreviewEnvironmentCreatePayload! @auth
@@ -64,7 +68,8 @@ projectPreviewEnvironmentCreate(input: ProjectPreviewEnvironmentCreateInput!): P
64
68
 
65
69
  ### `projectPreviewEnvironmentUpdate`
66
70
 
67
- Update a project preview environment. Requires scope: `ORGANIZATION_PROJECTS_UPDATE`.
71
+ Updates a preview environment. Invalid input comes back as `userErrors`.
72
+ Scope: `ORGANIZATION_PROJECTS_UPDATE`.
68
73
 
69
74
  ```graphql
70
75
  projectPreviewEnvironmentUpdate(input: ProjectPreviewEnvironmentUpdateInput!): ProjectPreviewEnvironmentUpdatePayload! @auth
@@ -72,7 +77,8 @@ projectPreviewEnvironmentUpdate(input: ProjectPreviewEnvironmentUpdateInput!): P
72
77
 
73
78
  ### `projectPreviewEnvironmentDelete`
74
79
 
75
- Delete a project preview environment. Requires scope: `ORGANIZATION_PROJECTS_UPDATE`.
80
+ Deletes a preview environment. An unknown ID comes back as `userErrors`.
81
+ Scope: `ORGANIZATION_PROJECTS_UPDATE`.
76
82
 
77
83
  ```graphql
78
84
  projectPreviewEnvironmentDelete(input: ProjectPreviewEnvironmentDeleteInput!): ProjectPreviewEnvironmentDeletePayload! @auth
@@ -83,18 +89,13 @@ projectPreviewEnvironmentDelete(input: ProjectPreviewEnvironmentDeleteInput!): P
83
89
  ### `ProjectSortKeys`
84
90
 
85
91
  ```graphql
86
- """
87
- Sort keys accepted by `Organization.projects(...)`. Pair with `reverse: true`
88
- to flip the order.
89
- """
92
+ """The orders a project list can take. `reverse: true` flips the order."""
90
93
  enum ProjectSortKeys {
91
- """Sort by project `name` (alphabetical)."""
94
+ """By name, A to Z."""
92
95
  NAME
93
- """Sort by `createdAt`."""
96
+ """By creation time, oldest first."""
94
97
  CREATED_AT
95
- """
96
- Sort by `updatedAt`. Pair with `reverse: true` for most-recently-changed first.
97
- """
98
+ """By last change, oldest first."""
98
99
  UPDATED_AT
99
100
  }
100
101
  ```
@@ -102,20 +103,13 @@ enum ProjectSortKeys {
102
103
  ### `WorkspaceSortKeys`
103
104
 
104
105
  ```graphql
105
- """
106
- Sort keys accepted by `Project.workspaces(...)`. Pair with `reverse: true`
107
- to flip the order.
108
-
109
- `DRAFT_CHANGED_AT` orders by the last draft content change, which is what
110
- "most recently worked on" means for a workspace; `Workspace` carries no
111
- `updatedAt`.
112
- """
106
+ """The orders a workspace list can take. `reverse: true` flips the order."""
113
107
  enum WorkspaceSortKeys {
114
- """Sort by workspace `name` (alphabetical)."""
108
+ """By name, A to Z."""
115
109
  NAME
116
- """Sort by `createdAt`."""
110
+ """By creation time, oldest first."""
117
111
  CREATED_AT
118
- """Sort by `draftChangedAt`."""
112
+ """By the last change to the draft, oldest first."""
119
113
  DRAFT_CHANGED_AT
120
114
  }
121
115
  ```
@@ -124,101 +118,98 @@ enum WorkspaceSortKeys {
124
118
 
125
119
  ```graphql
126
120
  """
127
- A project — an isolated A/B testing surface under an organisation.
128
-
129
- Projects own workspaces (DRAFT / LIVE / ARCHIVED), CMS content, reports,
130
- and integrations. `LIVE` is derived, not stored. At most one workspace is
131
- live at a time (the one owning the project's served version), and
132
- `liveWorkspaceVersion` exposes that currently-published immutable snapshot
133
- (null until the first publish).
134
-
135
- The `timezone` field anchors analytics aggregations (e.g. "yesterday")
136
- and is immutable after creation.
121
+ One site or one application. Each project has its own experiences, content and configuration,
122
+ and belongs to one organisation.
137
123
  """
138
124
  type Project {
139
- """Unique project identifier."""
125
+ """The ID of the project."""
140
126
  id: ID!
141
- """Display name of the project."""
127
+ """The name of the project."""
142
128
  name: String!
143
- """ID of the organisation this project belongs to."""
129
+ """The ID of the organisation the project belongs to."""
144
130
  organizationId: ID!
145
- """When this project was created."""
131
+ """When the project was created."""
146
132
  createdAt: DateTime!
147
- """When this project was last updated."""
133
+ """When the project last changed."""
148
134
  updatedAt: DateTime!
149
135
  """
150
- IANA timezone identifier used for analytics aggregations (e.g. `America/New_York`). Immutable after creation.
136
+ The IANA time zone that analytics days follow, such as `America/New_York`. Set on create and
137
+ fixed after.
151
138
  """
152
139
  timezone: String
153
140
  """
154
- Author-provided markdown brief (audience, tone, goals, value props, entry points). Read by the Picked AI agents. Null until set.
141
+ The project brief in Markdown: audience, tone, goals, value propositions, entry points. Picked's
142
+ AI agents read it. Null until set.
155
143
  """
156
144
  context: String
157
- """The organisation this project belongs to."""
145
+ """The organisation the project belongs to."""
158
146
  organization: Organization!
159
- """Configuration settings for this project (key/value pairs)."""
147
+ """
148
+ The settings of the project, as key/value pairs.
149
+ Scope: `ORGANIZATION_PROJECTS_READ`.
150
+ """
160
151
  settings: [ProjectSetting!]!
161
152
  """
162
- SDK presence recorded against this project, or null when none was ever recorded.
153
+ The SDK presence recorded for the project. Null when none was recorded.
154
+ Scope: `ORGANIZATION_PROJECTS_READ`.
163
155
  """
164
156
  sdkPresence: SdkPresence @deprecated(reason: "No SDK version records presence. Reads frozen rows; will be removed.")
165
157
  """
166
- The workspace that owns the project's currently-served version, or null if
167
- the project has never been published. Requires authentication.
158
+ The workspace whose version the project serves. Null until the first publish.
168
159
  """
169
160
  liveWorkspace: Workspace @auth
170
161
  """
171
- The version this project currently serves (resolved through
172
- `projects.live_workspace_version_id`), or null if no workspace has been
173
- published yet. After a rollback this may be an earlier version, not the
174
- most recently published one. The snapshot's `config_json` blob is
175
- intentionally not exposed. Use `workspaceDiff` to read its contents.
176
- Requires authentication.
162
+ The version the project serves. Null until the first publish. After a restore it can be an
163
+ earlier version than the latest. Read its contents with `workspaceDiff`.
164
+ Scope: `ORGANIZATION_WORKSPACE_READ`.
177
165
  """
178
166
  liveWorkspaceVersion: WorkspaceVersion @auth
179
167
  """
180
- Every published version across all of the project's workspaces, ordered
181
- newest-first by `publishedAt`. This is the project-wide rollback history:
182
- each version carries the `workspace` it was published from, and the one
183
- matching `liveWorkspaceVersion` is the currently-served version. Versions
184
- owned by a soft-deleted workspace are excluded. Supports forward
185
- (`first`/`after`) and backward (`last`/`before`) pagination with stable
186
- cursors over `(publishedAt, id)`. Requires authentication.
168
+ Every published version across the project's workspaces, newest first: the history a restore
169
+ picks from. Versions of a deleted workspace are left out.
170
+ Scope: `ORGANIZATION_WORKSPACE_READ`.
187
171
  """
188
172
  workspaceVersions(first: Int, after: String, last: Int, before: String): WorkspaceVersionConnection! @auth
189
173
  """
190
- Workspaces belonging to this project. Filter by name with `search`
191
- (case-insensitive substring) and by status with `status`, which keeps
192
- workspaces holding any of the listed statuses and applies to `totalCount`
193
- too. `HIDDEN` matches nothing, since snapshots never appear here. Requires
194
- authentication.
174
+ The workspaces of the project. `search` matches a case-insensitive substring of the name;
175
+ `status` keeps workspaces holding any listed status, and `totalCount` follows it. `HIDDEN`
176
+ matches nothing.
195
177
  """
196
178
  workspaces(first: Int, after: String, last: Int, before: String, search: String, status: [WorkspaceStatus!], sortKey: WorkspaceSortKeys = CREATED_AT, reverse: Boolean = false): WorkspaceConnection! @auth
197
- """Reports associated with this project. Requires authentication."""
179
+ """
180
+ The reports on the project.
181
+ Scope: `ORGANIZATION_REPORTS_READ`.
182
+ """
198
183
  reports(first: Int, after: String, sortKey: ReportSortKeys = NAME, reverse: Boolean = false): ProjectReportConnection! @auth
199
- """All integrations installed for this project. Requires authentication."""
184
+ """
185
+ The integrations installed on the project.
186
+ Scope: `ORGANIZATION_INTEGRATIONS_READ`.
187
+ """
200
188
  integrations: [Integration!]! @auth
201
189
  """
202
- A specific integration by type, or null if not installed. Requires authentication.
190
+ The integration of a type. Null when it is not installed.
191
+ Scope: `ORGANIZATION_INTEGRATIONS_READ`.
203
192
  """
204
193
  integration(type: IntegrationType!): Integration @auth
205
194
  """
206
- Third-party MCP servers registered to this project. Requires authentication.
195
+ The third-party MCP servers registered to the project.
196
+ Scope: `ORGANIZATION_INTEGRATIONS_READ`.
207
197
  """
208
198
  mcpServers(first: Int, after: String): McpServerConnection! @auth
209
199
  """
210
- External APIs registered to this project — the origins its workflows may call. Requires authentication.
200
+ The external APIs registered to the project: the origins its workflows may call.
201
+ Scope: `ORGANIZATION_INTEGRATIONS_READ`.
211
202
  """
212
203
  externalApis(first: Int, after: String): ExternalApiConnection! @auth
213
204
  """
214
- The project's own labels, ordered by namespace then key: state a workflow or a
215
- person keeps for the whole project, such as a counter or a lock. An expired
216
- label is not listed. Project labels outlive every lead. Write them with `labelsSet`, `ownerType: PROJECT` and the
217
- project's id. Requires scope: `ORGANIZATION_PROJECTS_READ`.
205
+ The project's own labels, such as a counter or a lock, ordered by namespace then key. Expired
206
+ labels are left out. Write them with `labelsSet` and `ownerType: PROJECT`.
207
+ Scope: `ORGANIZATION_PROJECTS_READ`.
218
208
  """
219
209
  labels: [Label!]! @auth
220
210
  """
221
- Leads captured by this project, newest first by default. Requires scope: `ORGANIZATION_LEADS_READ`.
211
+ The leads the project captured, newest first by default.
212
+ Scope: `ORGANIZATION_LEADS_READ`.
222
213
  """
223
214
  leads(
224
215
  first: Int
@@ -234,62 +225,54 @@ type Project {
234
225
  """
235
226
  query: String
236
227
  """
237
- The path to order by, in the same grammar `query` uses:
238
- `labels.<namespace>.<key>`, `responses.<key>`, or `id`, `userId`,
239
- `createdAt`. A path naming nothing sortable orders by capture time, so a
240
- hand-edited URL degrades rather than fails. Leads carrying no value at the
241
- path sort last in either direction. A query with a `session.` clause lists
242
- its leads by their capture events, newest first unless `reverse` is false,
243
- and takes either no sort or `createdAt`; any other sort is a validation error.
228
+ The path to order by, in the grammar `query` uses: `labels.<namespace>.<key>`,
229
+ `responses.<key>`, `id`, `userId` or `createdAt`. A path naming nothing sortable orders by
230
+ capture time. Leads with no value at the path sort last in either direction. A query with a
231
+ `session.` clause orders by capture event and takes no sort or `createdAt` alone.
244
232
  """
245
233
  sort: String
246
234
  reverse: Boolean = true
247
235
  """
248
- Narrows the leads to those captured inside this window, in the project's
249
- time zone. `totalCount` and `metrics` count under the same window, and a
250
- metric measures over it unless given its own.
236
+ The window, in the project's time zone, the leads were captured inside. `totalCount` and
237
+ `metrics` count under it, and a metric measures over it unless given its own.
251
238
  """
252
239
  window: MetricWindowInput
253
240
  """
254
- How the leads captured under one SDK session id read. `SESSION` lists each
255
- session's newest matching lead alone, and `matchCount` and `metrics` count
256
- sessions. A query with a `session.` clause takes `NONE` alone.
241
+ How leads captured in one SDK session read. `SESSION` lists each session's newest matching
242
+ lead alone, and `matchCount` and `metrics` count sessions. A query with a `session.` clause
243
+ takes `NONE` alone.
257
244
  """
258
245
  collapse: LeadCollapse = NONE
259
246
  ): LeadConnection! @auth
260
247
  """
261
- The Leads reports on this project, in order: how leads are
262
- acquired, the journeys behind them, and how visits convert to leads. Each is
263
- a signed guest embed URL with the project locked and the date range left
264
- editable, read from the project's analytics warehouse. Requires scope:
265
- `ORGANIZATION_LEADS_READ` or `ORGANIZATION_REPORTS_READ`.
248
+ The Leads reports on the project, in order: how leads are acquired, the journeys behind them,
249
+ and how visits convert to leads. Each is a signed embed URL locked to the project, with an
250
+ editable date range.
251
+ Scope: `ORGANIZATION_LEADS_READ` or `ORGANIZATION_REPORTS_READ`.
266
252
  """
267
253
  leadReports: [LeadReport!]! @auth
268
254
  """
269
- The Sessions reports on this project, in order: how its sessions arrive, the
270
- journeys they take, and which of them convert. Each is a signed guest embed URL
271
- with the project locked and the date range left editable, read from the
272
- project's analytics warehouse. Requires scope: `ORGANIZATION_LEADS_READ`.
255
+ The Sessions reports on the project, in order: how its sessions arrive, the journeys they take,
256
+ and which of them convert. Each is a signed embed URL locked to the project, with an editable
257
+ date range.
258
+ Scope: `ORGANIZATION_LEADS_READ` or `ORGANIZATION_REPORTS_READ`.
273
259
  """
274
260
  analyticsSessionsReports: [AnalyticsSessionsReport!]! @auth
275
261
  """
276
- One visitor session on this project's sites, read from the project's analytics
277
- warehouse across all of its events, anchored on its latest lead capture, else on
278
- its latest timeline event. Null when the warehouse holds no event of it. Requires
279
- scope: `ORGANIZATION_LEADS_READ`.
262
+ One visitor session on the project's sites, across all of its events, anchored on its latest
263
+ lead capture, else on its latest timeline event. Null when no event of it is recorded.
264
+ Scope: `ORGANIZATION_LEADS_READ`.
280
265
  """
281
266
  analyticsSession(
282
- """The identity resolver's session identifier."""
267
+ """The ID of the session."""
283
268
  id: ID!
284
269
  ): AnalyticsSession @auth
285
270
  """
286
- Visitor sessions on this project's sites, newest first by when they started, read
287
- from the project's analytics warehouse. A session is its events inside `window`,
288
- so one that began before the window starts at its first event inside it, and its
289
- `summary` adds up those events alone. Pages by keyset: `first` and `after` read
290
- older sessions, `last` and `before` newer ones; a page holds at most 100. The
291
- newest events can take a few minutes to arrive. Requires scope:
292
- `ORGANIZATION_LEADS_READ`.
271
+ The visitor sessions on the project's sites, newest first by start. A session is its events
272
+ inside `window`, and its `summary` adds up those events alone. `first` and `after` read older
273
+ sessions, `last` and `before` newer ones, at most 100 a page. The newest events can take a few
274
+ minutes to arrive.
275
+ Scope: `ORGANIZATION_LEADS_READ`.
293
276
  """
294
277
  analyticsSessions(
295
278
  first: Int
@@ -297,8 +280,8 @@ type Project {
297
280
  last: Int
298
281
  before: String
299
282
  """
300
- The window the sessions' events fall inside, in the project's time zone.
301
- Defaults to today and the six days before it.
283
+ The window, in the project's time zone, the sessions' events fall inside. Defaults to today
284
+ and the six days before it.
302
285
  """
303
286
  window: MetricWindowInput
304
287
  """
@@ -324,20 +307,18 @@ type Project {
324
307
  includeBots: Boolean = false
325
308
  ): AnalyticsSessionConnection! @auth
326
309
  """
327
- Saved views of one of this project's lists, oldest first. Requires scope:
328
- `ORGANIZATION_PROJECTS_READ`.
310
+ The saved views of one of the project's lists, oldest first.
311
+ Scope: `ORGANIZATION_PROJECTS_READ`.
329
312
  """
330
313
  savedViews(
331
- """Which list to read the views of."""
314
+ """The list to read the views of."""
332
315
  resource: SavedViewResource!
333
316
  first: Int
334
317
  after: String
335
318
  last: Int
336
319
  before: String
337
320
  ): SavedViewConnection! @auth
338
- """
339
- Customer-site URLs registered for embedding CMS page previews, ordered by `createdAt` ascending.
340
- """
321
+ """The preview environments of the project, oldest first."""
341
322
  previewEnvironments: [ProjectPreviewEnvironment!]!
342
323
  }
343
324
  ```
@@ -346,14 +327,16 @@ type Project {
346
327
 
347
328
  ```graphql
348
329
  """
349
- A customer-installed SDK URL (Production, Staging, etc.) used by the page-preview iframe.
330
+ A named site with the SDK installed, such as Production or Staging, that a preview opens on.
350
331
  """
351
332
  type ProjectPreviewEnvironment {
333
+ """The ID of the preview environment."""
352
334
  id: ID!
353
- """Human-readable label (e.g. 'Production', 'Staging'). 1-40 characters."""
335
+ """The name of the preview environment, 1 to 40 characters."""
354
336
  label: String!
355
337
  """
356
- Origin or URL where the SDK is installed; the dashboard appends `?picked-preview-token=<token>`.
338
+ The origin or URL of the site. A preview opens it with a `picked-preview-token` query
339
+ parameter.
357
340
  """
358
341
  url: String!
359
342
  }
@@ -362,15 +345,19 @@ type ProjectPreviewEnvironment {
362
345
  ### `ProjectPreviewEnvironmentErrorCode`
363
346
 
364
347
  ```graphql
365
- """
366
- Validation error code returned by the projectPreviewEnvironment* mutations.
367
- """
348
+ """The validation errors of the preview environment operations."""
368
349
  enum ProjectPreviewEnvironmentErrorCode {
350
+ """No project has the ID."""
369
351
  PROJECT_NOT_FOUND
352
+ """No preview environment has the ID."""
370
353
  ENVIRONMENT_NOT_FOUND
354
+ """The label is empty."""
371
355
  LABEL_REQUIRED
356
+ """The label is longer than 40 characters."""
372
357
  LABEL_TOO_LONG
358
+ """The URL is empty."""
373
359
  URL_REQUIRED
360
+ """The URL does not parse."""
374
361
  URL_INVALID
375
362
  }
376
363
  ```
@@ -378,15 +365,13 @@ enum ProjectPreviewEnvironmentErrorCode {
378
365
  ### `ProjectPreviewEnvironmentUserError`
379
366
 
380
367
  ```graphql
381
- """
382
- User-facing validation error returned by the projectPreviewEnvironment* mutations.
383
- """
368
+ """A validation error from a preview environment operation."""
384
369
  type ProjectPreviewEnvironmentUserError {
385
- """Path to the offending input field, e.g. ['label']."""
370
+ """The path to the input field at fault, such as `["label"]`."""
386
371
  field: [String!]
387
- """Human-readable message suitable for display."""
372
+ """A message to show the user."""
388
373
  message: String!
389
- """Machine-readable error code."""
374
+ """The error code."""
390
375
  code: ProjectPreviewEnvironmentErrorCode!
391
376
  }
392
377
  ```
@@ -394,10 +379,15 @@ type ProjectPreviewEnvironmentUserError {
394
379
  ### `ProjectPreviewEnvironmentCreateInput`
395
380
 
396
381
  ```graphql
397
- """Input for creating a project preview environment."""
382
+ """The input of `projectPreviewEnvironmentCreate`."""
398
383
  input ProjectPreviewEnvironmentCreateInput {
384
+ """The ID of the project."""
399
385
  projectId: ID!
386
+ """The name of the preview environment, 1 to 40 characters."""
400
387
  label: String!
388
+ """
389
+ The origin or URL of the site. Without a protocol, `https://` is assumed.
390
+ """
401
391
  url: String!
402
392
  }
403
393
  ```
@@ -405,11 +395,13 @@ input ProjectPreviewEnvironmentCreateInput {
405
395
  ### `ProjectPreviewEnvironmentCreatePayload`
406
396
 
407
397
  ```graphql
408
- """Payload returned by `projectPreviewEnvironmentCreate`."""
398
+ """The result of `projectPreviewEnvironmentCreate`."""
409
399
  type ProjectPreviewEnvironmentCreatePayload {
410
- """The created environment, or null when input failed validation."""
400
+ """
401
+ The created preview environment. Null when the input failed validation.
402
+ """
411
403
  environment: ProjectPreviewEnvironment
412
- """Per-field validation errors; empty on success."""
404
+ """The validation errors. Empty on success."""
413
405
  userErrors: [ProjectPreviewEnvironmentUserError!]!
414
406
  }
415
407
  ```
@@ -417,10 +409,15 @@ type ProjectPreviewEnvironmentCreatePayload {
417
409
  ### `ProjectPreviewEnvironmentUpdateInput`
418
410
 
419
411
  ```graphql
420
- """Input for updating a project preview environment."""
412
+ """
413
+ The input of `projectPreviewEnvironmentUpdate`. Every field is required.
414
+ """
421
415
  input ProjectPreviewEnvironmentUpdateInput {
416
+ """The ID of the preview environment."""
422
417
  id: ID!
418
+ """The name of the preview environment, 1 to 40 characters. Required."""
423
419
  label: String!
420
+ """The origin or URL of the site. Required."""
424
421
  url: String!
425
422
  }
426
423
  ```
@@ -428,11 +425,13 @@ input ProjectPreviewEnvironmentUpdateInput {
428
425
  ### `ProjectPreviewEnvironmentUpdatePayload`
429
426
 
430
427
  ```graphql
431
- """Payload returned by `projectPreviewEnvironmentUpdate`."""
428
+ """The result of `projectPreviewEnvironmentUpdate`."""
432
429
  type ProjectPreviewEnvironmentUpdatePayload {
433
- """The updated environment, or null when input failed validation."""
430
+ """
431
+ The updated preview environment. Null when the input failed validation.
432
+ """
434
433
  environment: ProjectPreviewEnvironment
435
- """Per-field validation errors; empty on success."""
434
+ """The validation errors. Empty on success."""
436
435
  userErrors: [ProjectPreviewEnvironmentUserError!]!
437
436
  }
438
437
  ```
@@ -440,8 +439,9 @@ type ProjectPreviewEnvironmentUpdatePayload {
440
439
  ### `ProjectPreviewEnvironmentDeleteInput`
441
440
 
442
441
  ```graphql
443
- """Input for deleting a project preview environment."""
442
+ """The input of `projectPreviewEnvironmentDelete`."""
444
443
  input ProjectPreviewEnvironmentDeleteInput {
444
+ """The ID of the preview environment."""
445
445
  id: ID!
446
446
  }
447
447
  ```
@@ -449,13 +449,13 @@ input ProjectPreviewEnvironmentDeleteInput {
449
449
  ### `ProjectPreviewEnvironmentDeletePayload`
450
450
 
451
451
  ```graphql
452
- """Payload returned by `projectPreviewEnvironmentDelete`."""
452
+ """The result of `projectPreviewEnvironmentDelete`."""
453
453
  type ProjectPreviewEnvironmentDeletePayload {
454
454
  """
455
- ID of the deleted environment, or null when the input failed validation.
455
+ The ID of the deleted preview environment. Null when the input failed validation.
456
456
  """
457
457
  deletedEnvironmentId: ID
458
- """Per-field validation errors; empty on success."""
458
+ """The validation errors. Empty on success."""
459
459
  userErrors: [ProjectPreviewEnvironmentUserError!]!
460
460
  }
461
461
  ```
@@ -463,15 +463,11 @@ type ProjectPreviewEnvironmentDeletePayload {
463
463
  ### `ProjectSetting`
464
464
 
465
465
  ```graphql
466
- """
467
- A single key/value setting on a project. The shape of `value` depends on
468
- `key`; well-known keys are documented in the dashboard. Free-form keys
469
- are allowed for use by integrations and the SDK plugin system.
470
- """
466
+ """One setting of a project. The shape of `value` depends on `key`."""
471
467
  type ProjectSetting {
472
- """Setting key. Stable across SDK versions."""
468
+ """The key of the setting."""
473
469
  key: String!
474
- """Setting value as a JSON value. Shape depends on the key."""
470
+ """The value of the setting."""
475
471
  value: JSON!
476
472
  }
477
473
  ```
@@ -480,14 +476,13 @@ type ProjectSetting {
480
476
 
481
477
  ```graphql
482
478
  """
483
- SDK presence recorded against a project. The rows are frozen: `lastSeenAt`
484
- reports the last boot recorded while presence tracking was live, so it answers
485
- "when did this project last report in", not "is the SDK reaching us now".
479
+ The SDK presence recorded for a project. The records are frozen: `lastSeenAt` is the last boot
480
+ recorded while tracking ran, not whether the SDK is reaching Picked today.
486
481
  """
487
482
  type SdkPresence {
488
- """ID of the project this presence belongs to."""
483
+ """The ID of the project."""
489
484
  projectId: ID!
490
- """When the SDK was last seen booting."""
485
+ """When the SDK was last seen booting. Null when unknown."""
491
486
  lastSeenAt: DateTime
492
487
  """Always null."""
493
488
  sdkVersion: String
@@ -499,9 +494,9 @@ type SdkPresence {
499
494
  ### `ProjectEdge`
500
495
 
501
496
  ```graphql
502
- """Edge type for `ProjectConnection`."""
497
+ """A project in a page of results."""
503
498
  type ProjectEdge {
504
- """Pagination cursor for this edge."""
499
+ """The cursor of this edge."""
505
500
  cursor: String!
506
501
  """The project."""
507
502
  node: Project!
@@ -511,13 +506,13 @@ type ProjectEdge {
511
506
  ### `ProjectConnection`
512
507
 
513
508
  ```graphql
514
- """Relay-style connection of projects."""
509
+ """A page of projects."""
515
510
  type ProjectConnection {
516
- """List of project edges."""
511
+ """The edges in this page."""
517
512
  edges: [ProjectEdge!]!
518
- """Pagination metadata."""
513
+ """Where this page sits in the list."""
519
514
  pageInfo: PageInfo!
520
- """Total number of projects."""
515
+ """The total number of projects."""
521
516
  totalCount: Int!
522
517
  }
523
518
  ```
@@ -525,9 +520,9 @@ type ProjectConnection {
525
520
  ### `ProjectInput`
526
521
 
527
522
  ```graphql
528
- """Input for looking up a single project."""
523
+ """The input of `project`."""
529
524
  input ProjectInput {
530
- """Project ID to look up."""
525
+ """The ID of the project."""
531
526
  id: ID!
532
527
  }
533
528
  ```
@@ -535,14 +530,14 @@ input ProjectInput {
535
530
  ### `ProjectCreateInput`
536
531
 
537
532
  ```graphql
538
- """Input for `projectCreate`."""
533
+ """The input of `projectCreate`."""
539
534
  input ProjectCreateInput {
540
- """Name of the project."""
535
+ """The name of the project. Must not be blank."""
541
536
  name: String!
542
- """ID of the organisation to create the project in."""
537
+ """The ID of the organisation to create the project in."""
543
538
  organizationId: ID!
544
539
  """
545
- IANA timezone identifier for analytics and reporting (e.g. `America/New_York`). Cannot be changed after creation.
540
+ The IANA time zone that analytics days follow, such as `America/New_York`. Fixed after.
546
541
  """
547
542
  timezone: String!
548
543
  }
@@ -551,9 +546,9 @@ input ProjectCreateInput {
551
546
  ### `ProjectCreatePayload`
552
547
 
553
548
  ```graphql
554
- """Payload returned by `projectCreate`."""
549
+ """The result of `projectCreate`."""
555
550
  type ProjectCreatePayload {
556
- """The newly created project."""
551
+ """The created project."""
557
552
  project: Project
558
553
  }
559
554
  ```
@@ -561,17 +556,13 @@ type ProjectCreatePayload {
561
556
  ### `ProjectUpdateInput`
562
557
 
563
558
  ```graphql
564
- """
565
- Input for `projectUpdate`. Only mutable fields are accepted — `timezone` is immutable.
566
- """
559
+ """The input of `projectUpdate`. Omit a field to keep its value."""
567
560
  input ProjectUpdateInput {
568
- """ID of the project to update."""
561
+ """The ID of the project."""
569
562
  id: ID!
570
- """New name for the project. Omit to leave unchanged."""
563
+ """The name of the project. Must not be blank."""
571
564
  name: String
572
- """
573
- New markdown context brief. Omit to leave unchanged; pass an empty string to clear.
574
- """
565
+ """The project brief in Markdown. An empty string clears it."""
575
566
  context: String
576
567
  }
577
568
  ```
@@ -579,7 +570,7 @@ input ProjectUpdateInput {
579
570
  ### `ProjectUpdatePayload`
580
571
 
581
572
  ```graphql
582
- """Payload returned by `projectUpdate`."""
573
+ """The result of `projectUpdate`."""
583
574
  type ProjectUpdatePayload {
584
575
  """The updated project."""
585
576
  project: Project
@@ -589,9 +580,9 @@ type ProjectUpdatePayload {
589
580
  ### `ProjectDeleteInput`
590
581
 
591
582
  ```graphql
592
- """Input for `projectDelete`."""
583
+ """The input of `projectDelete`."""
593
584
  input ProjectDeleteInput {
594
- """ID of the project to delete."""
585
+ """The ID of the project."""
595
586
  id: ID!
596
587
  }
597
588
  ```
@@ -599,9 +590,9 @@ input ProjectDeleteInput {
599
590
  ### `ProjectDeletePayload`
600
591
 
601
592
  ```graphql
602
- """Payload returned by `projectDelete`."""
593
+ """The result of `projectDelete`."""
603
594
  type ProjectDeletePayload {
604
- """ID of the deleted project."""
595
+ """The ID of the deleted project."""
605
596
  deletedProjectId: ID
606
597
  }
607
598
  ```