@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.
@@ -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:ca5cf80a6fc7b91e4a029d9962efc0da84b31a267b0e1a7bbaaba731d426dffc",
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:f4c2d4b69632958faefc39a1a229877a70a60b86a22b9e891bbecb1924878c68"
1052
+ "digest": "sha256:05dda5074e9fd6b5ca7b3f0675eaec96d0d99e8a43ba4b7636663ce20c9bb2a7"
1053
1053
  }
@@ -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. `bytesBase64` is base64 over the raw asset bytes; the 5 MiB
300
- per-asset bound is measured on the decoded byte length, not this
301
- field's text length. `contentType` is the closed vocabulary the
302
- asset read declares; `image/svg+xml` is deliberately absent (an SVG
303
- can carry script). `DELETE` names only the path it removes and
304
- carries none of the write-only members.
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: 6990512
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 20 assets -- each `PUT` with its own text or
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 20 MiB;
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 5 MiB per-asset and 20 MiB per-change bounds is the
9726
- decoded byte length, not this field's text length.
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: 20
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, with the same
20597
- `revision` rule as the document read. `Content-Type` is exactly one of
20598
- the six closed values below, sniffed from the asset's own bytes rather
20599
- than trusted from what was written at plan time, with
20600
- `X-Content-Type-Options: nosniff` and `Content-Disposition: inline` so
20601
- a browser renders it and never executes it. An asset over 5 MiB is
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 the 5 MiB read bound, or its content type is not one of the six accepted image types. See the operation contract.
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 changeId is no longer in a state bring-up-to-date admits (already committed or cancelled). See the operation contract."
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
- not yet present; `conflicts` names ones present with different content,
25802
- populated only while `state` is `CONFLICT`.
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
- - NONE
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rathnasgala2/schemas",
3
- "version": "2.15.0",
3
+ "version": "2.17.0",
4
4
  "description": "Executable JSON Schema and OpenAPI contracts for Galascribe",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",