@shipeasy/openapi 3.2.0 → 3.4.0
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 +1 -1
- package/dist/{chunk-RTN572TI.js → chunk-JJA7XEPU.js} +91 -1
- package/dist/chunk-JJA7XEPU.js.map +1 -0
- package/dist/{chunk-DW33MG4B.js → chunk-Z3CY5Y44.js} +514 -126
- package/dist/chunk-Z3CY5Y44.js.map +1 -0
- package/dist/{client-BPVn4hMC.d.ts → client-CkRbr8I2.d.ts} +1544 -212
- package/dist/client.d.ts +1 -1
- package/dist/client.js +23 -1
- package/dist/custom.d.ts +5 -5
- package/dist/custom.js +128 -84
- package/dist/custom.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts +1935 -963
- package/dist/schemas.js +141 -1
- package/openapi-sdk.json +31 -9
- package/openapi.json +10449 -8118
- package/openapi.yaml +2274 -634
- package/package.json +1 -1
- package/spec/components/schemas/alert-rules.yaml +434 -10
- package/spec/components/schemas/alerts.yaml +9 -7
- package/spec/components/schemas/common.yaml +2 -2
- package/spec/components/schemas/connectors.yaml +69 -6
- package/spec/components/schemas/events.yaml +20 -9
- package/spec/components/schemas/keys.yaml +39 -0
- package/spec/components/schemas/metrics.yaml +131 -251
- package/spec/components/schemas/ops.yaml +471 -29
- package/spec/components/schemas/projects.yaml +18 -0
- package/spec/components/schemas/search.yaml +1 -0
- package/spec/components/schemas/tags.yaml +91 -0
- package/spec/openapi.yaml +56 -0
- package/spec/paths/alerts.yaml +5 -3
- package/spec/paths/i18n.yaml +2 -1
- package/spec/paths/keys.yaml +79 -0
- package/spec/paths/metrics.yaml +26 -17
- package/spec/paths/ops.yaml +514 -11
- package/spec/paths/tags.yaml +270 -0
- package/dist/chunk-DW33MG4B.js.map +0 -1
- package/dist/chunk-RTN572TI.js.map +0 -1
|
@@ -204,7 +204,7 @@ CreateCursorTriggerRequest:
|
|
|
204
204
|
opsKey:
|
|
205
205
|
type: string
|
|
206
206
|
minLength: 1
|
|
207
|
-
description: Restricted Shipeasy ops key
|
|
207
|
+
description: Restricted Shipeasy ops key (secret). Sent as the Bearer for the Shipeasy MCP server handed to each run inline — never in the prompt text or the run env. Encrypted; never returned.
|
|
208
208
|
enabled:
|
|
209
209
|
type: boolean
|
|
210
210
|
default: true
|
|
@@ -308,33 +308,82 @@ ClaudeTriggerConfig:
|
|
|
308
308
|
- routineId
|
|
309
309
|
additionalProperties: false
|
|
310
310
|
description: Non-secret config for a Claude trigger.
|
|
311
|
+
CursorTriggerRepo:
|
|
312
|
+
type: object
|
|
313
|
+
properties:
|
|
314
|
+
url:
|
|
315
|
+
type: string
|
|
316
|
+
format: uri
|
|
317
|
+
description: "Repo the cloud agent runs against, e.g. `https://github.com/owner/repo`."
|
|
318
|
+
startingRef:
|
|
319
|
+
type: string
|
|
320
|
+
minLength: 1
|
|
321
|
+
description: "Optional branch this repo's runs start from. Omit for the repo's default branch."
|
|
322
|
+
required:
|
|
323
|
+
- url
|
|
324
|
+
additionalProperties: false
|
|
325
|
+
description: One repo a trigger runs against, with the branch its runs start from.
|
|
311
326
|
CursorTriggerConfig:
|
|
312
327
|
type: object
|
|
313
328
|
properties:
|
|
314
329
|
repoUrl:
|
|
315
330
|
type: string
|
|
316
331
|
format: uri
|
|
317
|
-
description:
|
|
332
|
+
description: "**First** repo the cloud agent runs against, e.g. `https://github.com/owner/repo`. Idempotency key for the connector, and always a mirror of `repos[0].url` when `repos` is supplied."
|
|
318
333
|
startingRef:
|
|
319
334
|
type: string
|
|
320
335
|
minLength: 1
|
|
321
|
-
description: Optional git ref the run starts from.
|
|
336
|
+
description: Optional git ref the run starts from. Mirrors `repos[0].startingRef`. Pinned onto the Cursor agent at creation, so changing it provisions a replacement agent.
|
|
337
|
+
repos:
|
|
338
|
+
type: array
|
|
339
|
+
minItems: 1
|
|
340
|
+
items:
|
|
341
|
+
$ref: "#/CursorTriggerRepo"
|
|
342
|
+
description: "Every repo this trigger runs against, each with its own starting branch — Cursor launches ONE agent across the whole set. Omit for a single-repo trigger, which is then described by `repoUrl`/`startingRef` alone; when supplied, the first entry must match them. Changing the set re-provisions the agent (its repos are pinned at creation)."
|
|
322
343
|
projectId:
|
|
323
344
|
type: string
|
|
324
345
|
minLength: 1
|
|
325
346
|
description: Shipeasy project id the run targets.
|
|
347
|
+
agentId:
|
|
348
|
+
type: string
|
|
349
|
+
minLength: 1
|
|
350
|
+
description: "Server-managed. The reusable Cursor cloud agent (`bc-…`) Shipeasy provisions once at connect and then starts every run on. A supplied value is ignored on create; if Cursor stops recognising the id (404), the next fire provisions a replacement and stores it here."
|
|
351
|
+
fireText:
|
|
352
|
+
type: string
|
|
353
|
+
minLength: 1
|
|
354
|
+
description: "Optional standing instruction prepended to every run's prompt — the trigger's base prompt. Lets two triggers on different repos steer their runs differently without changing the `/shipeasy-ops-work` task block."
|
|
326
355
|
required:
|
|
327
356
|
- repoUrl
|
|
328
357
|
- projectId
|
|
329
358
|
additionalProperties: false
|
|
330
359
|
description: Non-secret config for a Cursor trigger.
|
|
360
|
+
CopilotTriggerRepo:
|
|
361
|
+
type: object
|
|
362
|
+
properties:
|
|
363
|
+
owner:
|
|
364
|
+
type: string
|
|
365
|
+
minLength: 1
|
|
366
|
+
description: GitHub repo owner.
|
|
367
|
+
repo:
|
|
368
|
+
type: string
|
|
369
|
+
minLength: 1
|
|
370
|
+
description: GitHub repo name.
|
|
371
|
+
baseRef:
|
|
372
|
+
type: string
|
|
373
|
+
minLength: 1
|
|
374
|
+
description: "Optional base ref this repo's agent task branches from. Omit for the repo's default branch."
|
|
375
|
+
required:
|
|
376
|
+
- owner
|
|
377
|
+
- repo
|
|
378
|
+
additionalProperties: false
|
|
379
|
+
description: One repo a Copilot trigger runs against, with the base branch its tasks branch from.
|
|
331
380
|
CopilotTriggerConfig:
|
|
332
381
|
type: object
|
|
333
382
|
properties:
|
|
334
383
|
owner:
|
|
335
384
|
type: string
|
|
336
385
|
minLength: 1
|
|
337
|
-
description: GitHub repo owner. Together with `repo` forms the connector's idempotency key (`owner/repo`).
|
|
386
|
+
description: "**First** GitHub repo owner. Together with `repo` forms the connector's idempotency key (`owner/repo`), and both mirror `repos[0]` when `repos` is supplied."
|
|
338
387
|
repo:
|
|
339
388
|
type: string
|
|
340
389
|
minLength: 1
|
|
@@ -342,11 +391,21 @@ CopilotTriggerConfig:
|
|
|
342
391
|
baseRef:
|
|
343
392
|
type: string
|
|
344
393
|
minLength: 1
|
|
345
|
-
description: Optional base ref the agent branches from.
|
|
394
|
+
description: Optional base ref the agent branches from. Mirrors `repos[0].baseRef`.
|
|
395
|
+
repos:
|
|
396
|
+
type: array
|
|
397
|
+
minItems: 1
|
|
398
|
+
items:
|
|
399
|
+
$ref: "#/CopilotTriggerRepo"
|
|
400
|
+
description: "Every repo this trigger runs against, each with its own base branch. GitHub's agent-tasks API is per-repo, so ONE fire starts one task per entry. Omit for a single-repo trigger, which is then described by `owner`/`repo`/`baseRef` alone; when supplied, the first entry must match them."
|
|
346
401
|
projectId:
|
|
347
402
|
type: string
|
|
348
403
|
minLength: 1
|
|
349
404
|
description: Shipeasy project id the run targets.
|
|
405
|
+
fireText:
|
|
406
|
+
type: string
|
|
407
|
+
minLength: 1
|
|
408
|
+
description: "Optional standing instruction prepended to every run's prompt — the trigger's base prompt. Lets two triggers on different repos steer their runs differently without changing the `/shipeasy-ops-work` task block."
|
|
350
409
|
required:
|
|
351
410
|
- owner
|
|
352
411
|
- repo
|
|
@@ -368,6 +427,10 @@ JulesTriggerConfig:
|
|
|
368
427
|
type: string
|
|
369
428
|
minLength: 1
|
|
370
429
|
description: Shipeasy project id the run targets.
|
|
430
|
+
fireText:
|
|
431
|
+
type: string
|
|
432
|
+
minLength: 1
|
|
433
|
+
description: "Optional standing instruction prepended to every run's prompt — the trigger's base prompt. Lets two triggers on different repos steer their runs differently without changing the `/shipeasy-ops-work` task block."
|
|
371
434
|
required:
|
|
372
435
|
- source
|
|
373
436
|
- projectId
|
|
@@ -452,7 +515,7 @@ UpdateCursorTriggerRequest:
|
|
|
452
515
|
- provider
|
|
453
516
|
- config
|
|
454
517
|
additionalProperties: false
|
|
455
|
-
description: "Per-provider PATCH body for editing an existing `cursor_trigger` connector. `config` replaces the stored config wholesale
|
|
518
|
+
description: "Per-provider PATCH body for editing an existing `cursor_trigger` connector. `config` replaces the stored config wholesale, except for the server-managed keys: the provisioned `agentId` is carried over (and dropped, so a replacement agent is provisioned, when `repoUrl`/`startingRef` change), as is the last-run pointer. `name` and either credential are optional (a supplied credential rotates just that key)."
|
|
456
519
|
UpdateCopilotTriggerRequest:
|
|
457
520
|
type: object
|
|
458
521
|
properties:
|
|
@@ -33,7 +33,8 @@ ListEventsResponse:
|
|
|
33
33
|
type: string
|
|
34
34
|
minLength: 1
|
|
35
35
|
maxLength: 64
|
|
36
|
-
|
|
36
|
+
pattern: ^[a-zA-Z_][a-zA-Z_0-9]*$
|
|
37
|
+
description: Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
37
38
|
type:
|
|
38
39
|
type: string
|
|
39
40
|
enum:
|
|
@@ -49,11 +50,14 @@ ListEventsResponse:
|
|
|
49
50
|
default: ""
|
|
50
51
|
description: Human-readable description of the property.
|
|
51
52
|
type: string
|
|
53
|
+
pending:
|
|
54
|
+
description: "`true` when this property was DISCOVERED in live traffic rather than declared. Nothing is recorded for it yet — a property is written to Analytics Engine only once it owns a column, and a column is allocated when an admin declares the property (include it in a `PATCH .../events/{id}` body). Approval is a gate rather than a formality: columns are finite and permanently reserved, so auto-allocating them from customer payload keys would exhaust an event's schema irreversibly."
|
|
55
|
+
type: boolean
|
|
52
56
|
required:
|
|
53
57
|
- name
|
|
54
58
|
- type
|
|
55
59
|
additionalProperties: false
|
|
56
|
-
description: One typed property
|
|
60
|
+
description: One typed property on a catalogued event — declared by an admin, or discovered in traffic and awaiting declaration.
|
|
57
61
|
description: Typed properties declared on the event.
|
|
58
62
|
pending:
|
|
59
63
|
type: integer
|
|
@@ -106,7 +110,8 @@ GetEventResponse:
|
|
|
106
110
|
type: string
|
|
107
111
|
minLength: 1
|
|
108
112
|
maxLength: 64
|
|
109
|
-
|
|
113
|
+
pattern: ^[a-zA-Z_][a-zA-Z_0-9]*$
|
|
114
|
+
description: Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
110
115
|
type:
|
|
111
116
|
type: string
|
|
112
117
|
enum:
|
|
@@ -122,11 +127,14 @@ GetEventResponse:
|
|
|
122
127
|
default: ""
|
|
123
128
|
description: Human-readable description of the property.
|
|
124
129
|
type: string
|
|
130
|
+
pending:
|
|
131
|
+
description: "`true` when this property was DISCOVERED in live traffic rather than declared. Nothing is recorded for it yet — a property is written to Analytics Engine only once it owns a column, and a column is allocated when an admin declares the property (include it in a `PATCH .../events/{id}` body). Approval is a gate rather than a formality: columns are finite and permanently reserved, so auto-allocating them from customer payload keys would exhaust an event's schema irreversibly."
|
|
132
|
+
type: boolean
|
|
125
133
|
required:
|
|
126
134
|
- name
|
|
127
135
|
- type
|
|
128
136
|
additionalProperties: false
|
|
129
|
-
description: One typed property
|
|
137
|
+
description: One typed property on a catalogued event — declared by an admin, or discovered in traffic and awaiting declaration.
|
|
130
138
|
description: Typed properties declared on the event.
|
|
131
139
|
pending:
|
|
132
140
|
type: integer
|
|
@@ -150,8 +158,8 @@ CreateEventRequest:
|
|
|
150
158
|
properties:
|
|
151
159
|
name:
|
|
152
160
|
type: string
|
|
153
|
-
pattern: ^[a-zA-Z0-9_][a-zA-Z0-9_\-.]{0,
|
|
154
|
-
description: Event name. Starts with a letter, digit, or `_`; letters, digits, `_`, `-`, `.`; max 128
|
|
161
|
+
pattern: ^[a-zA-Z0-9_][a-zA-Z0-9_\-.]{0,49}$
|
|
162
|
+
description: Event name. Starts with a letter, digit, or `_`; letters, digits, `_`, `-`, `.`; max 50 characters. The cap is the Analytics Engine index budget — 96 bytes total, less a 36-byte project UUID and a separator — and the API has always enforced 50 while this spec advertised 128. The charset is ASCII, so characters and bytes are the same count. Immutable after create — this is the handle metric queries reference.
|
|
155
163
|
folder:
|
|
156
164
|
$ref: ./common.yaml#/Folder
|
|
157
165
|
description:
|
|
@@ -168,7 +176,8 @@ CreateEventRequest:
|
|
|
168
176
|
type: string
|
|
169
177
|
minLength: 1
|
|
170
178
|
maxLength: 64
|
|
171
|
-
|
|
179
|
+
pattern: ^[a-zA-Z_][a-zA-Z_0-9]*$
|
|
180
|
+
description: Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
172
181
|
type:
|
|
173
182
|
type: string
|
|
174
183
|
enum:
|
|
@@ -225,7 +234,8 @@ UpdateEventRequest:
|
|
|
225
234
|
type: string
|
|
226
235
|
minLength: 1
|
|
227
236
|
maxLength: 64
|
|
228
|
-
|
|
237
|
+
pattern: ^[a-zA-Z_][a-zA-Z_0-9]*$
|
|
238
|
+
description: Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
229
239
|
type:
|
|
230
240
|
type: string
|
|
231
241
|
enum:
|
|
@@ -276,7 +286,8 @@ ApproveEventRequest:
|
|
|
276
286
|
type: string
|
|
277
287
|
minLength: 1
|
|
278
288
|
maxLength: 64
|
|
279
|
-
|
|
289
|
+
pattern: ^[a-zA-Z_][a-zA-Z_0-9]*$
|
|
290
|
+
description: Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
280
291
|
type:
|
|
281
292
|
type: string
|
|
282
293
|
enum:
|
|
@@ -60,6 +60,11 @@ KeyRecord:
|
|
|
60
60
|
- type: string
|
|
61
61
|
- type: "null"
|
|
62
62
|
description: Human label for the key. `null` for unnamed dashboard mints; programmatic mints auto-name themselves.
|
|
63
|
+
description:
|
|
64
|
+
anyOf:
|
|
65
|
+
- type: string
|
|
66
|
+
- type: "null"
|
|
67
|
+
description: Free-text note recording what the key is for (the service that holds it, the rotation owner, the ticket it was minted under). Display only — `null` unless someone set it via `PATCH /api/admin/keys/{id}`.
|
|
63
68
|
scopes:
|
|
64
69
|
anyOf:
|
|
65
70
|
- type: array
|
|
@@ -72,6 +77,14 @@ KeyRecord:
|
|
|
72
77
|
- type: string
|
|
73
78
|
- type: "null"
|
|
74
79
|
description: Last 4 characters of the raw token, so the dashboard mask is matchable against the held key. `null` for keys minted before this column.
|
|
80
|
+
origin:
|
|
81
|
+
type: string
|
|
82
|
+
enum:
|
|
83
|
+
- cli
|
|
84
|
+
- mobile
|
|
85
|
+
- dashboard
|
|
86
|
+
- api
|
|
87
|
+
description: Where the key was minted. `cli` (a signed-in CLI session from device auth), `mobile` (a mobile app login), `dashboard` (the "New API key" dialog) or `api` (minted with another key — CLI, MCP, agents). Set at mint time; keys that predate the column were backfilled from their label, defaulting to `dashboard`.
|
|
75
88
|
required:
|
|
76
89
|
- id
|
|
77
90
|
- type
|
|
@@ -81,8 +94,34 @@ KeyRecord:
|
|
|
81
94
|
- expires_at
|
|
82
95
|
- created_by_email
|
|
83
96
|
- name
|
|
97
|
+
- description
|
|
84
98
|
- scopes
|
|
85
99
|
- last4
|
|
100
|
+
- origin
|
|
101
|
+
additionalProperties: false
|
|
102
|
+
UpdateKeyRequest:
|
|
103
|
+
type: object
|
|
104
|
+
description: |-
|
|
105
|
+
Body for `PATCH /api/admin/keys/{id}`. Only the key's **label** is editable — `name` and `description`.
|
|
106
|
+
|
|
107
|
+
Everything that gives a key its authority (`type`, `env`, `scopes`, `expires_at`) is fixed at mint: those are the isolation boundary the worker derives the read env and permissions from, so changing them would silently re-point a credential that is already deployed. Rotate instead — mint a replacement and revoke the old key.
|
|
108
|
+
|
|
109
|
+
Omitted fields are left untouched; send `null` to clear one.
|
|
110
|
+
properties:
|
|
111
|
+
name:
|
|
112
|
+
anyOf:
|
|
113
|
+
- type: string
|
|
114
|
+
minLength: 1
|
|
115
|
+
maxLength: 160
|
|
116
|
+
- type: "null"
|
|
117
|
+
description: New human label, or `null` to clear it. Same 160-char budget as create — provenance labels are composed, not typed.
|
|
118
|
+
description:
|
|
119
|
+
anyOf:
|
|
120
|
+
- type: string
|
|
121
|
+
minLength: 1
|
|
122
|
+
maxLength: 500
|
|
123
|
+
- type: "null"
|
|
124
|
+
description: New free-text note, or `null` to clear it.
|
|
86
125
|
additionalProperties: false
|
|
87
126
|
CreateKeyRequest:
|
|
88
127
|
type: object
|