@rathnasgala2/schemas 2.15.0 → 2.17.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 +56 -0
- package/THIRD_PARTY_LICENSES.json +1 -1
- package/diagnostics/diagnostic-map.json +61 -0
- package/docs/catalogs/schema-inventory.json +5 -5
- package/examples/valid/build-input/rules.json +150 -0
- package/fixtures/boundary/build-input/rules.json +176 -0
- package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +17 -0
- package/fixtures/invalid/build-input/SCHEMA_ARRAY_TOO_LONG/cases.json +15 -0
- package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +44 -0
- package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_LARGE/cases.json +33 -0
- package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_SMALL/cases.json +11 -0
- package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +93 -0
- package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +31 -0
- package/fixtures/manifest.json +483 -4
- package/fixtures/unknown-field/build-input/rules.json +37 -0
- package/generated/browser/validator-core.mjs +3 -3
- package/generated/typescript/contracts/artifact-manifest.d.ts +16 -2
- package/generated/typescript/contracts/build-input.d.ts +20 -0
- package/generated/typescript/contracts/build-provenance.d.ts +16 -2
- package/openapi/http-catalog.json +2 -2
- package/openapi/openapi.yaml +299 -27
- package/package.json +1 -1
- package/sbom.cdx.json +23 -23
- package/schemas/artifact-manifest.schema.json +16 -2
- package/schemas/build-input.schema.json +71 -0
- package/schemas/build-provenance.schema.json +16 -2
|
@@ -113,9 +113,16 @@ export type ArtifactManifestManifestAsset = Readonly<{
|
|
|
113
113
|
| 'image/jpeg'
|
|
114
114
|
| 'image/webp'
|
|
115
115
|
| 'image/avif'
|
|
116
|
+
| 'image/gif'
|
|
116
117
|
| 'image/svg+xml'
|
|
117
118
|
| 'font/woff2'
|
|
118
|
-
| 'application/octet-stream'
|
|
119
|
+
| 'application/octet-stream'
|
|
120
|
+
| 'audio/mpeg'
|
|
121
|
+
| 'audio/mp4'
|
|
122
|
+
| 'audio/ogg'
|
|
123
|
+
| 'audio/wav'
|
|
124
|
+
| 'video/mp4'
|
|
125
|
+
| 'video/webm';
|
|
119
126
|
readonly path: ArtifactManifestRepoRelativePath;
|
|
120
127
|
readonly sha256: ArtifactManifestDigest;
|
|
121
128
|
}>;
|
|
@@ -258,9 +265,16 @@ export type ArtifactManifestManifestRoute = Readonly<{
|
|
|
258
265
|
| 'image/jpeg'
|
|
259
266
|
| 'image/webp'
|
|
260
267
|
| 'image/avif'
|
|
268
|
+
| 'image/gif'
|
|
261
269
|
| 'image/svg+xml'
|
|
262
270
|
| 'font/woff2'
|
|
263
|
-
| 'application/octet-stream'
|
|
271
|
+
| 'application/octet-stream'
|
|
272
|
+
| 'audio/mpeg'
|
|
273
|
+
| 'audio/mp4'
|
|
274
|
+
| 'audio/ogg'
|
|
275
|
+
| 'audio/wav'
|
|
276
|
+
| 'video/mp4'
|
|
277
|
+
| 'video/webm';
|
|
264
278
|
readonly path: ArtifactManifestRepoRelativePath;
|
|
265
279
|
readonly routeClass: 'html' | 'feed' | 'sitemap' | 'asset' | 'error';
|
|
266
280
|
readonly sha256: ArtifactManifestDigest;
|
|
@@ -84,11 +84,31 @@ export type BuildInputColorMode = Readonly<{
|
|
|
84
84
|
}> &
|
|
85
85
|
unknown;
|
|
86
86
|
|
|
87
|
+
export type BuildInputContentBuildMediaFile = Readonly<{
|
|
88
|
+
readonly byteLength: number;
|
|
89
|
+
readonly mediaType:
|
|
90
|
+
| 'image/png'
|
|
91
|
+
| 'image/jpeg'
|
|
92
|
+
| 'image/webp'
|
|
93
|
+
| 'image/avif'
|
|
94
|
+
| 'image/gif'
|
|
95
|
+
| 'audio/mpeg'
|
|
96
|
+
| 'audio/mp4'
|
|
97
|
+
| 'audio/ogg'
|
|
98
|
+
| 'audio/wav'
|
|
99
|
+
| 'video/mp4'
|
|
100
|
+
| 'video/webm';
|
|
101
|
+
readonly path: BuildInputRepoRelativePath;
|
|
102
|
+
readonly sourceDigest: BuildInputDigest;
|
|
103
|
+
}> &
|
|
104
|
+
unknown;
|
|
105
|
+
|
|
87
106
|
export type BuildInputContentBuildRecord = Readonly<{
|
|
88
107
|
readonly body: string;
|
|
89
108
|
readonly bodyDigest: BuildInputDigest;
|
|
90
109
|
readonly bodyMediaType: 'text/html';
|
|
91
110
|
readonly frontmatter: BuildInputContentFrontmatterNormalized;
|
|
111
|
+
readonly media?: ReadonlyArray<BuildInputContentBuildMediaFile>;
|
|
92
112
|
readonly renderPolicy: BuildInputManifestRenderPolicyIdentity;
|
|
93
113
|
readonly resolvedAuthorIds: ReadonlyArray<BuildInputStableId>;
|
|
94
114
|
readonly sourceDigest: BuildInputDigest;
|
|
@@ -113,9 +113,16 @@ export type BuildProvenanceManifestAsset = Readonly<{
|
|
|
113
113
|
| 'image/jpeg'
|
|
114
114
|
| 'image/webp'
|
|
115
115
|
| 'image/avif'
|
|
116
|
+
| 'image/gif'
|
|
116
117
|
| 'image/svg+xml'
|
|
117
118
|
| 'font/woff2'
|
|
118
|
-
| 'application/octet-stream'
|
|
119
|
+
| 'application/octet-stream'
|
|
120
|
+
| 'audio/mpeg'
|
|
121
|
+
| 'audio/mp4'
|
|
122
|
+
| 'audio/ogg'
|
|
123
|
+
| 'audio/wav'
|
|
124
|
+
| 'video/mp4'
|
|
125
|
+
| 'video/webm';
|
|
119
126
|
readonly path: BuildProvenanceRepoRelativePath;
|
|
120
127
|
readonly sha256: BuildProvenanceDigest;
|
|
121
128
|
}>;
|
|
@@ -258,9 +265,16 @@ export type BuildProvenanceManifestRoute = Readonly<{
|
|
|
258
265
|
| 'image/jpeg'
|
|
259
266
|
| 'image/webp'
|
|
260
267
|
| 'image/avif'
|
|
268
|
+
| 'image/gif'
|
|
261
269
|
| 'image/svg+xml'
|
|
262
270
|
| 'font/woff2'
|
|
263
|
-
| 'application/octet-stream'
|
|
271
|
+
| 'application/octet-stream'
|
|
272
|
+
| 'audio/mpeg'
|
|
273
|
+
| 'audio/mp4'
|
|
274
|
+
| 'audio/ogg'
|
|
275
|
+
| 'audio/wav'
|
|
276
|
+
| 'video/mp4'
|
|
277
|
+
| 'video/webm';
|
|
264
278
|
readonly path: BuildProvenanceRepoRelativePath;
|
|
265
279
|
readonly routeClass: 'html' | 'feed' | 'sitemap' | 'asset' | 'error';
|
|
266
280
|
readonly sha256: BuildProvenanceDigest;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "2.0.0",
|
|
3
3
|
"sourceDesignRevision": "a53052955ceb6c1aa10c886289dc832eedfe6de0a00004df07d353ac19c4403a",
|
|
4
|
-
"openApiDigest": "sha256:
|
|
4
|
+
"openApiDigest": "sha256:4fc11abc34a1de9a64eb669ed414ca4d508e5672aad79ecb6e1a88454627617b",
|
|
5
5
|
"operations": [
|
|
6
6
|
{
|
|
7
7
|
"operationId": "getInternalHealth",
|
|
@@ -1049,5 +1049,5 @@
|
|
|
1049
1049
|
"sourceFragment": "workloads"
|
|
1050
1050
|
}
|
|
1051
1051
|
],
|
|
1052
|
-
"digest": "sha256:
|
|
1052
|
+
"digest": "sha256:05dda5074e9fd6b5ca7b3f0675eaec96d0d99e8a43ba4b7636663ce20c9bb2a7"
|
|
1053
1053
|
}
|
package/openapi/openapi.yaml
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
components:
|
|
2
2
|
headers:
|
|
3
|
+
AcceptRanges:
|
|
4
|
+
description: Advertises byte-range support (SCHEMA-2.17.0), so a sound or video player can seek without downloading the whole file first.
|
|
5
|
+
required: true
|
|
6
|
+
schema:
|
|
7
|
+
pattern: ^bytes$
|
|
8
|
+
type: string
|
|
9
|
+
x-gala-const: bytes
|
|
3
10
|
CacheControlNoStore:
|
|
4
11
|
required: true
|
|
5
12
|
schema:
|
|
@@ -12,6 +19,12 @@ components:
|
|
|
12
19
|
pattern: ^inline$
|
|
13
20
|
type: string
|
|
14
21
|
x-gala-const: inline
|
|
22
|
+
ContentRange:
|
|
23
|
+
description: RFC 9110 `Content-Range`. `bytes <start>-<end>/<total>` on `206`; `bytes */<total>` on `416`, naming the asset's real total length so the caller can retry with a satisfiable range.
|
|
24
|
+
required: true
|
|
25
|
+
schema:
|
|
26
|
+
pattern: ^bytes (?:[0-9]+-[0-9]+|\*)/[0-9]+$
|
|
27
|
+
type: string
|
|
15
28
|
ETag:
|
|
16
29
|
required: true
|
|
17
30
|
schema:
|
|
@@ -95,6 +108,15 @@ components:
|
|
|
95
108
|
maximum: 100
|
|
96
109
|
minimum: 1
|
|
97
110
|
type: integer
|
|
111
|
+
Range:
|
|
112
|
+
description: RFC 9110 single-range `Range` request header (SCHEMA-2.17.0), honoured for sound and video so a player can seek. Absent means the whole asset. A multi-range request is not supported and is treated as absent.
|
|
113
|
+
example: bytes=0-1023
|
|
114
|
+
in: header
|
|
115
|
+
name: Range
|
|
116
|
+
required: false
|
|
117
|
+
schema:
|
|
118
|
+
pattern: ^bytes=[0-9]+-[0-9]*$
|
|
119
|
+
type: string
|
|
98
120
|
XCorrelationId:
|
|
99
121
|
example: 018f0000-0000-7000-8000-000000000001
|
|
100
122
|
in: header
|
|
@@ -294,14 +316,60 @@ components:
|
|
|
294
316
|
- bytesBase64
|
|
295
317
|
- contentType
|
|
296
318
|
- contentDigest
|
|
319
|
+
- if:
|
|
320
|
+
properties:
|
|
321
|
+
contentType:
|
|
322
|
+
enum:
|
|
323
|
+
- image/png
|
|
324
|
+
- image/jpeg
|
|
325
|
+
- image/webp
|
|
326
|
+
- image/gif
|
|
327
|
+
- image/avif
|
|
328
|
+
required:
|
|
329
|
+
- contentType
|
|
330
|
+
then:
|
|
331
|
+
properties:
|
|
332
|
+
bytesBase64:
|
|
333
|
+
maxLength: 6990512
|
|
334
|
+
- if:
|
|
335
|
+
properties:
|
|
336
|
+
contentType:
|
|
337
|
+
enum:
|
|
338
|
+
- audio/mpeg
|
|
339
|
+
- audio/mp4
|
|
340
|
+
- audio/ogg
|
|
341
|
+
- audio/wav
|
|
342
|
+
required:
|
|
343
|
+
- contentType
|
|
344
|
+
then:
|
|
345
|
+
properties:
|
|
346
|
+
bytesBase64:
|
|
347
|
+
maxLength: 27962032
|
|
348
|
+
- if:
|
|
349
|
+
properties:
|
|
350
|
+
contentType:
|
|
351
|
+
enum:
|
|
352
|
+
- video/mp4
|
|
353
|
+
- video/webm
|
|
354
|
+
required:
|
|
355
|
+
- contentType
|
|
356
|
+
then:
|
|
357
|
+
properties:
|
|
358
|
+
bytesBase64:
|
|
359
|
+
maxLength: 69905072
|
|
297
360
|
description: |
|
|
298
361
|
One asset write or delete inside a batch `content-changes:plan`
|
|
299
|
-
request
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
362
|
+
request -- an article's cover image, or an image, sound or video
|
|
363
|
+
file referenced from its body (pass-through: copied unchanged into
|
|
364
|
+
the built site, no resizing and no derived formats for in-text
|
|
365
|
+
media). `bytesBase64` is base64 over the raw asset bytes; the
|
|
366
|
+
per-category bound (image 5 MiB, sound 20 MiB, video 50 MiB) is
|
|
367
|
+
measured on the decoded byte length, not this field's text length,
|
|
368
|
+
and `bytesBase64`'s own `maxLength` is the base64 ceiling for that
|
|
369
|
+
same decoded bound. `contentType` is the closed vocabulary the asset
|
|
370
|
+
read declares; `image/svg+xml` is deliberately absent everywhere in
|
|
371
|
+
this contract (an SVG can carry script). `DELETE` names only the
|
|
372
|
+
path it removes and carries none of the write-only members.
|
|
305
373
|
properties:
|
|
306
374
|
action:
|
|
307
375
|
enum:
|
|
@@ -309,7 +377,7 @@ components:
|
|
|
309
377
|
- DELETE
|
|
310
378
|
type: string
|
|
311
379
|
bytesBase64:
|
|
312
|
-
maxLength:
|
|
380
|
+
maxLength: 69905072
|
|
313
381
|
pattern: ^[A-Za-z0-9+/]+={0,2}$
|
|
314
382
|
type: string
|
|
315
383
|
contentDigest:
|
|
@@ -322,6 +390,12 @@ components:
|
|
|
322
390
|
- image/webp
|
|
323
391
|
- image/gif
|
|
324
392
|
- image/avif
|
|
393
|
+
- audio/mpeg
|
|
394
|
+
- audio/mp4
|
|
395
|
+
- audio/ogg
|
|
396
|
+
- audio/wav
|
|
397
|
+
- video/mp4
|
|
398
|
+
- video/webm
|
|
325
399
|
type: string
|
|
326
400
|
path:
|
|
327
401
|
maxLength: 512
|
|
@@ -9715,20 +9789,22 @@ components:
|
|
|
9715
9789
|
(`path`, `contentDigest`, `expectedHead`) plans one document write
|
|
9716
9790
|
against the exact expected head. The additive batch shape
|
|
9717
9791
|
(`baseRevision` and at least one of `documents`/`assets`) plans up
|
|
9718
|
-
to 20 documents and
|
|
9792
|
+
to 20 documents and 40 assets -- each `PUT` with its own text or
|
|
9719
9793
|
bytes and digest, each `DELETE` naming only its path -- in one
|
|
9720
9794
|
change, against the exact expected main-branch head asserted as
|
|
9721
9795
|
`baseRevision`. A request mixing the two shapes, or a batch request
|
|
9722
9796
|
naming neither `documents` nor `assets`, is `422 VALIDATION_FAILED`.
|
|
9723
|
-
The change's total serialized size must not exceed
|
|
9797
|
+
The change's total serialized size must not exceed 100 MiB;
|
|
9724
9798
|
`assets[].bytesBase64` is base64 over raw bytes, so what counts
|
|
9725
|
-
against the
|
|
9726
|
-
|
|
9799
|
+
against the per-asset and 100 MiB per-change bounds is the decoded
|
|
9800
|
+
byte length, not this field's text length. Per-asset, by media
|
|
9801
|
+
category: image 5 MiB, sound 20 MiB, video 50 MiB (documents are
|
|
9802
|
+
unchanged since 2.14.0: 20 documents, 1 MiB text each).
|
|
9727
9803
|
properties:
|
|
9728
9804
|
assets:
|
|
9729
9805
|
items:
|
|
9730
9806
|
$ref: "#/components/schemas/ContentChangeAssetEntry"
|
|
9731
|
-
maxItems:
|
|
9807
|
+
maxItems: 40
|
|
9732
9808
|
type: array
|
|
9733
9809
|
baseRevision:
|
|
9734
9810
|
pattern: ^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$
|
|
@@ -13406,6 +13482,14 @@ paths:
|
|
|
13406
13482
|
x-gala-success-category: query
|
|
13407
13483
|
x-gala-tenant-scope: NONE
|
|
13408
13484
|
post:
|
|
13485
|
+
description: |
|
|
13486
|
+
With `startFrom: USER_TEMPLATE` (the default), the created
|
|
13487
|
+
repository generates from the `rathnasgala2/user-template` GitHub
|
|
13488
|
+
template; if that template is unreachable, this is `503
|
|
13489
|
+
DEPENDENCY_UNAVAILABLE`, retryable, exactly the same declared
|
|
13490
|
+
failure an unreachable GitHub for the create itself already answers.
|
|
13491
|
+
A repository name already taken on the resolved account is `409
|
|
13492
|
+
INVALID_SOURCE_STATE` pointed at `/name`, as already declared.
|
|
13409
13493
|
operationId: postGithubInstallationsByInstallationIdRepositories
|
|
13410
13494
|
parameters:
|
|
13411
13495
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -13718,7 +13802,7 @@ paths:
|
|
|
13718
13802
|
value:
|
|
13719
13803
|
code: DEPENDENCY_UNAVAILABLE
|
|
13720
13804
|
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
13721
|
-
detail: See the operation contract.
|
|
13805
|
+
detail: GitHub did not answer the create. With startFrom USER_TEMPLATE this also covers the rathnasgala2/user-template GitHub template itself being unreachable. Retryable. See the operation contract.
|
|
13722
13806
|
errors: []
|
|
13723
13807
|
retryable: true
|
|
13724
13808
|
schemaId: urn:gala:schema:problem:2.0.0
|
|
@@ -20593,12 +20677,29 @@ paths:
|
|
|
20593
20677
|
/v2/organizations/{organizationId}/publications/{publicationId}/content/assets:
|
|
20594
20678
|
get:
|
|
20595
20679
|
description: |
|
|
20596
|
-
Bytes of one image under a declared asset root
|
|
20597
|
-
|
|
20598
|
-
|
|
20599
|
-
|
|
20600
|
-
|
|
20601
|
-
|
|
20680
|
+
Bytes of one image, sound or video file under a declared asset root
|
|
20681
|
+
(an article's cover image, or a file referenced from its body,
|
|
20682
|
+
copied through unchanged: no resizing, no derived formats), with the
|
|
20683
|
+
same `revision` rule as the document read. `Content-Type` is
|
|
20684
|
+
sniffed from the asset's own bytes rather than trusted from what was
|
|
20685
|
+
written at plan time, with `X-Content-Type-Options: nosniff` and
|
|
20686
|
+
`Content-Disposition: inline` so a browser renders it and never
|
|
20687
|
+
executes it. This operation serves eleven types. `image/svg+xml`
|
|
20688
|
+
remains in the `200` response's declared content-type list only
|
|
20689
|
+
because it was published there since SCHEMA-2.14.0, and removing it
|
|
20690
|
+
would not be additive; no server version has ever answered with it.
|
|
20691
|
+
A stored SVG is refused with the declared `422` on read exactly as
|
|
20692
|
+
on write (`content-changes:plan`'s `ContentChangeAssetEntry` never
|
|
20693
|
+
accepts it either): an SVG can carry script, and this operation
|
|
20694
|
+
answers `Content-Disposition: inline` from the application's own
|
|
20695
|
+
origin, so serving one would let a file in a repository run script
|
|
20696
|
+
in a signed-in person's session. Every response declares
|
|
20697
|
+
`Accept-Ranges: bytes` and honours a single-range `Range` request
|
|
20698
|
+
header for sound and video, so a player can seek: a satisfiable
|
|
20699
|
+
range is `206` with `Content-Range`; an unsatisfiable one is `416`
|
|
20700
|
+
with `Content-Range: bytes */<total>`. An asset over its
|
|
20701
|
+
per-category bound (image 5 MiB, sound 20 MiB, video 50 MiB), or
|
|
20702
|
+
whose sniffed type is not one of the eleven served types, is
|
|
20602
20703
|
`422 VALIDATION_FAILED` pointed at `/path`.
|
|
20603
20704
|
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdContentAssets
|
|
20604
20705
|
parameters:
|
|
@@ -20635,9 +20736,26 @@ paths:
|
|
|
20635
20736
|
schema:
|
|
20636
20737
|
pattern: ^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$
|
|
20637
20738
|
type: string
|
|
20739
|
+
- $ref: "#/components/parameters/Range"
|
|
20638
20740
|
responses:
|
|
20639
20741
|
"200":
|
|
20640
20742
|
content:
|
|
20743
|
+
audio/mp4:
|
|
20744
|
+
schema:
|
|
20745
|
+
format: binary
|
|
20746
|
+
type: string
|
|
20747
|
+
audio/mpeg:
|
|
20748
|
+
schema:
|
|
20749
|
+
format: binary
|
|
20750
|
+
type: string
|
|
20751
|
+
audio/ogg:
|
|
20752
|
+
schema:
|
|
20753
|
+
format: binary
|
|
20754
|
+
type: string
|
|
20755
|
+
audio/wav:
|
|
20756
|
+
schema:
|
|
20757
|
+
format: binary
|
|
20758
|
+
type: string
|
|
20641
20759
|
image/avif:
|
|
20642
20760
|
schema:
|
|
20643
20761
|
format: binary
|
|
@@ -20662,8 +20780,18 @@ paths:
|
|
|
20662
20780
|
schema:
|
|
20663
20781
|
format: binary
|
|
20664
20782
|
type: string
|
|
20783
|
+
video/mp4:
|
|
20784
|
+
schema:
|
|
20785
|
+
format: binary
|
|
20786
|
+
type: string
|
|
20787
|
+
video/webm:
|
|
20788
|
+
schema:
|
|
20789
|
+
format: binary
|
|
20790
|
+
type: string
|
|
20665
20791
|
description: read one content asset succeeded
|
|
20666
20792
|
headers:
|
|
20793
|
+
Accept-Ranges:
|
|
20794
|
+
$ref: "#/components/headers/AcceptRanges"
|
|
20667
20795
|
Cache-Control:
|
|
20668
20796
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
20669
20797
|
Content-Disposition:
|
|
@@ -20672,6 +20800,66 @@ paths:
|
|
|
20672
20800
|
$ref: "#/components/headers/XContentTypeOptionsNosniff"
|
|
20673
20801
|
X-Correlation-Id:
|
|
20674
20802
|
$ref: "#/components/headers/XCorrelationId"
|
|
20803
|
+
"206":
|
|
20804
|
+
content:
|
|
20805
|
+
audio/mp4:
|
|
20806
|
+
schema:
|
|
20807
|
+
format: binary
|
|
20808
|
+
type: string
|
|
20809
|
+
audio/mpeg:
|
|
20810
|
+
schema:
|
|
20811
|
+
format: binary
|
|
20812
|
+
type: string
|
|
20813
|
+
audio/ogg:
|
|
20814
|
+
schema:
|
|
20815
|
+
format: binary
|
|
20816
|
+
type: string
|
|
20817
|
+
audio/wav:
|
|
20818
|
+
schema:
|
|
20819
|
+
format: binary
|
|
20820
|
+
type: string
|
|
20821
|
+
image/avif:
|
|
20822
|
+
schema:
|
|
20823
|
+
format: binary
|
|
20824
|
+
type: string
|
|
20825
|
+
image/gif:
|
|
20826
|
+
schema:
|
|
20827
|
+
format: binary
|
|
20828
|
+
type: string
|
|
20829
|
+
image/jpeg:
|
|
20830
|
+
schema:
|
|
20831
|
+
format: binary
|
|
20832
|
+
type: string
|
|
20833
|
+
image/png:
|
|
20834
|
+
schema:
|
|
20835
|
+
format: binary
|
|
20836
|
+
type: string
|
|
20837
|
+
image/webp:
|
|
20838
|
+
schema:
|
|
20839
|
+
format: binary
|
|
20840
|
+
type: string
|
|
20841
|
+
video/mp4:
|
|
20842
|
+
schema:
|
|
20843
|
+
format: binary
|
|
20844
|
+
type: string
|
|
20845
|
+
video/webm:
|
|
20846
|
+
schema:
|
|
20847
|
+
format: binary
|
|
20848
|
+
type: string
|
|
20849
|
+
description: read a satisfiable byte range of one content asset succeeded
|
|
20850
|
+
headers:
|
|
20851
|
+
Accept-Ranges:
|
|
20852
|
+
$ref: "#/components/headers/AcceptRanges"
|
|
20853
|
+
Cache-Control:
|
|
20854
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
20855
|
+
Content-Disposition:
|
|
20856
|
+
$ref: "#/components/headers/ContentDispositionInline"
|
|
20857
|
+
Content-Range:
|
|
20858
|
+
$ref: "#/components/headers/ContentRange"
|
|
20859
|
+
X-Content-Type-Options:
|
|
20860
|
+
$ref: "#/components/headers/XContentTypeOptionsNosniff"
|
|
20861
|
+
X-Correlation-Id:
|
|
20862
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
20675
20863
|
"400":
|
|
20676
20864
|
content:
|
|
20677
20865
|
application/problem+json:
|
|
@@ -20780,6 +20968,37 @@ paths:
|
|
|
20780
20968
|
$ref: "#/components/headers/XCorrelationId"
|
|
20781
20969
|
x-gala-problem-codes:
|
|
20782
20970
|
- RESOURCE_NOT_FOUND
|
|
20971
|
+
"416":
|
|
20972
|
+
content:
|
|
20973
|
+
application/problem+json:
|
|
20974
|
+
examples:
|
|
20975
|
+
VALIDATION_FAILED:
|
|
20976
|
+
summary: VALIDATION_FAILED
|
|
20977
|
+
value:
|
|
20978
|
+
code: VALIDATION_FAILED
|
|
20979
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
20980
|
+
detail: The requested Range is not satisfiable against this asset's real length, named on Content-Range. See the operation contract.
|
|
20981
|
+
errors:
|
|
20982
|
+
- code: VALIDATION_FAILED
|
|
20983
|
+
pointer: /
|
|
20984
|
+
retryable: false
|
|
20985
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
20986
|
+
schemaVersion: 2.0.0
|
|
20987
|
+
status: 416
|
|
20988
|
+
title: VALIDATION_FAILED
|
|
20989
|
+
type: urn:gala:problem:validation-failed
|
|
20990
|
+
schema:
|
|
20991
|
+
$ref: "#/components/schemas/Problem"
|
|
20992
|
+
description: VALIDATION_FAILED
|
|
20993
|
+
headers:
|
|
20994
|
+
Cache-Control:
|
|
20995
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
20996
|
+
Content-Range:
|
|
20997
|
+
$ref: "#/components/headers/ContentRange"
|
|
20998
|
+
X-Correlation-Id:
|
|
20999
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
21000
|
+
x-gala-problem-codes:
|
|
21001
|
+
- VALIDATION_FAILED
|
|
20783
21002
|
"422":
|
|
20784
21003
|
content:
|
|
20785
21004
|
application/problem+json:
|
|
@@ -20789,7 +21008,7 @@ paths:
|
|
|
20789
21008
|
value:
|
|
20790
21009
|
code: VALIDATION_FAILED
|
|
20791
21010
|
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
20792
|
-
detail: The asset exceeds
|
|
21011
|
+
detail: The asset exceeds its per-category read bound (image 5 MiB, sound 20 MiB, video 50 MiB), its sniffed content type is not one of the eleven served types, or it is image/svg+xml (never served, script risk). See the operation contract.
|
|
20793
21012
|
errors:
|
|
20794
21013
|
- code: VALIDATION_FAILED
|
|
20795
21014
|
pointer: /path
|
|
@@ -24858,7 +25077,15 @@ paths:
|
|
|
24858
25077
|
(`changeId`'s `proposedRevision`), Theirs (the head named by
|
|
24859
25078
|
`X-Gala-Current-Head`) -- merges in the browser, and submits a new
|
|
24860
25079
|
`content-changes:plan` with `baseRevision` set to that head (journey
|
|
24861
|
-
state P4). `changeId` itself is untouched either way.
|
|
25080
|
+
state P4). `changeId` itself is untouched either way. `changeId` may
|
|
25081
|
+
be `AWAITING_CONFIRMATION` or already `COMMITTED`: a saved,
|
|
25082
|
+
reviewed and approved change is exactly the case a publish refuses
|
|
25083
|
+
`SOURCE_OUT_OF_DATE`, and it is that change bring-up-to-date must
|
|
25084
|
+
admit. Not admitted: a change with a commit in flight
|
|
25085
|
+
(`COMMIT_REQUESTED`, `COMMITTING`, `UNKNOWN_RECONCILING`), one that
|
|
25086
|
+
already failed or was cancelled (`FAILED_NO_CHANGE`, `CANCELLED`),
|
|
25087
|
+
or one already published (its `publishId` names a publish that
|
|
25088
|
+
produced a live deployment).
|
|
24862
25089
|
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdBringUpToDate
|
|
24863
25090
|
parameters:
|
|
24864
25091
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -25065,7 +25292,7 @@ paths:
|
|
|
25065
25292
|
value:
|
|
25066
25293
|
code: INVALID_SOURCE_STATE
|
|
25067
25294
|
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
25068
|
-
detail: "One or more paths conflict at file level between changeId and the current main head: nothing was written and no change was created. Read each named path through the document or asset read at baseRevision (Before), proposedRevision (Yours) and X-Gala-Current-Head (Theirs), merge in the browser, and submit a new content-changes:plan. This code is also used, with an empty errors[], when
|
|
25295
|
+
detail: "One or more paths conflict at file level between changeId and the current main head: nothing was written and no change was created. Read each named path through the document or asset read at baseRevision (Before), proposedRevision (Yours) and X-Gala-Current-Head (Theirs), merge in the browser, and submit a new content-changes:plan. This code is also used, with an empty errors[], when the change is in flight, failed, cancelled or already published. See the operation contract."
|
|
25069
25296
|
errors:
|
|
25070
25297
|
- code: CONTENT_CONFLICT
|
|
25071
25298
|
pointer: /documents/content~1articles~1example.md
|
|
@@ -25187,7 +25414,7 @@ paths:
|
|
|
25187
25414
|
- VALIDATION_FAILED
|
|
25188
25415
|
x-gala-replay-identity: idempotency-key
|
|
25189
25416
|
x-gala-state-guards:
|
|
25190
|
-
- RepositoryChange:REQUESTED|PLANNED|AWAITING_CONFIRMATION -> PLANNED (new change)
|
|
25417
|
+
- RepositoryChange:REQUESTED|PLANNED|AWAITING_CONFIRMATION|COMMITTED -> PLANNED (new change)
|
|
25191
25418
|
x-gala-success-category: create
|
|
25192
25419
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
25193
25420
|
/v2/organizations/{organizationId}/publications/{publicationId}/repository-changes/{changeId}:confirm:
|
|
@@ -25797,9 +26024,11 @@ paths:
|
|
|
25797
26024
|
description: |
|
|
25798
26025
|
Whether the linked repository already carries the user template files
|
|
25799
26026
|
`POST .../repository:set-up` adds. `missing` names the user template
|
|
25800
|
-
files
|
|
25801
|
-
|
|
25802
|
-
|
|
26027
|
+
files not yet present; `conflicts` names ones present with different
|
|
26028
|
+
content, populated only while `state` is `CONFLICT`. Computing this
|
|
26029
|
+
reads the linked repository through the same configured GitHub App
|
|
26030
|
+
identity `POST .../repository:set-up` depends on, so the two
|
|
26031
|
+
operations answer the same `503` the same way.
|
|
25803
26032
|
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetup
|
|
25804
26033
|
parameters:
|
|
25805
26034
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -25946,6 +26175,47 @@ paths:
|
|
|
25946
26175
|
$ref: "#/components/headers/XCorrelationId"
|
|
25947
26176
|
x-gala-problem-codes:
|
|
25948
26177
|
- RESOURCE_NOT_FOUND
|
|
26178
|
+
"503":
|
|
26179
|
+
content:
|
|
26180
|
+
application/problem+json:
|
|
26181
|
+
examples:
|
|
26182
|
+
CAPABILITY_UNAVAILABLE:
|
|
26183
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
26184
|
+
value:
|
|
26185
|
+
code: CAPABILITY_UNAVAILABLE
|
|
26186
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
26187
|
+
detail: See the operation contract.
|
|
26188
|
+
errors: []
|
|
26189
|
+
retryable: false
|
|
26190
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
26191
|
+
schemaVersion: 2.0.0
|
|
26192
|
+
status: 503
|
|
26193
|
+
title: CAPABILITY_UNAVAILABLE
|
|
26194
|
+
type: urn:gala:problem:capability-unavailable
|
|
26195
|
+
DEPENDENCY_UNAVAILABLE:
|
|
26196
|
+
summary: DEPENDENCY_UNAVAILABLE
|
|
26197
|
+
value:
|
|
26198
|
+
code: DEPENDENCY_UNAVAILABLE
|
|
26199
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
26200
|
+
detail: See the operation contract.
|
|
26201
|
+
errors: []
|
|
26202
|
+
retryable: true
|
|
26203
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
26204
|
+
schemaVersion: 2.0.0
|
|
26205
|
+
status: 503
|
|
26206
|
+
title: DEPENDENCY_UNAVAILABLE
|
|
26207
|
+
type: urn:gala:problem:dependency-unavailable
|
|
26208
|
+
schema:
|
|
26209
|
+
$ref: "#/components/schemas/Problem"
|
|
26210
|
+
description: CAPABILITY_UNAVAILABLE, DEPENDENCY_UNAVAILABLE
|
|
26211
|
+
headers:
|
|
26212
|
+
Cache-Control:
|
|
26213
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
26214
|
+
X-Correlation-Id:
|
|
26215
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
26216
|
+
x-gala-problem-codes:
|
|
26217
|
+
- CAPABILITY_UNAVAILABLE
|
|
26218
|
+
- DEPENDENCY_UNAVAILABLE
|
|
25949
26219
|
security:
|
|
25950
26220
|
- browserSession: []
|
|
25951
26221
|
summary: read this publication's repository set-up state
|
|
@@ -25953,7 +26223,7 @@ paths:
|
|
|
25953
26223
|
- organizations
|
|
25954
26224
|
x-gala-activation-gate: MVP
|
|
25955
26225
|
x-gala-activation-guards:
|
|
25956
|
-
-
|
|
26226
|
+
- Active repository binding and configured GitHub App identity capability
|
|
25957
26227
|
x-gala-capability-key: publication.view
|
|
25958
26228
|
x-gala-concurrency: binding-epoch
|
|
25959
26229
|
x-gala-conditional-capabilities: []
|
|
@@ -25963,6 +26233,8 @@ paths:
|
|
|
25963
26233
|
x-gala-reachable-problems:
|
|
25964
26234
|
- AUTHENTICATION_REQUIRED
|
|
25965
26235
|
- AUTHORIZATION_DENIED
|
|
26236
|
+
- CAPABILITY_UNAVAILABLE
|
|
26237
|
+
- DEPENDENCY_UNAVAILABLE
|
|
25966
26238
|
- RESOURCE_NOT_FOUND
|
|
25967
26239
|
- VALIDATION_FAILED
|
|
25968
26240
|
x-gala-replay-identity: safe-query
|