@rathnasgala2/schemas 2.13.0 → 2.15.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 CHANGED
@@ -59,22 +59,23 @@ removed it as unconsumed -- see "Package layout"). The schema inventory adds the
59
59
  separately owned OpenAPI contract as the twenty-first identity and carries
60
60
  DEC-091's domain-separated `sourceDesignRevision`. S0-T07 materializes the
61
61
  reviewed OpenAPI 3.1 source fragments, deterministic bundle, and digest-bound
62
- HTTP catalog for exactly 76 MVP operations plus `/internal/health` (77 catalog
62
+ HTTP catalog for exactly 85 MVP operations plus `/internal/health` (86 catalog
63
63
  rows; 71 at S0-T07, plus the two SCHEMA-2.8.0 reads, the two SCHEMA-2.10.0
64
- publication-destination reads/writes, and the SCHEMA-2.13.0 repository create).
65
- The bundle includes the accepted DEC-097 receipt-exchange and deployment-receipt
66
- amendments and serializes the fixed OpenAPI Generator 7.25.0 option sets. Every
67
- operation also declares its tenant scope, lifecycle and activation guards, maps
68
- every reachable problem, and carries schema-validated nominal and problem
69
- examples. S0-T08 projects the exact 19 admitted transition families into 77
70
- independently identified event actions (SCHEMA-2.11.0 adds the
71
- `github_installation` family so the worker-only compare-and-set writer can
72
- retire into the sole aggregate gateway). Each action binds its aggregate and
73
- organization or publication scope, exact predecessor/target states, the closed
74
- DEC-101 payload, the transactional outbox producer, and a non-empty registered
75
- consumer set. S5-T00 materializes document 07's closed 15-component App semantic
76
- catalog and document 14's 20-entry MVP App route registry (S5 brief section 4)
77
- as `docs/catalogs/app-components.json` and `docs/catalogs/app-routes.json`, with
64
+ publication-destination reads/writes, the SCHEMA-2.13.0 repository create, and
65
+ the nine SCHEMA-2.14.0 write/preview/publish operations). The bundle includes
66
+ the accepted DEC-097 receipt-exchange and deployment-receipt amendments and
67
+ serializes the fixed OpenAPI Generator 7.25.0 option sets. Every operation also
68
+ declares its tenant scope, lifecycle and activation guards, maps every reachable
69
+ problem, and carries schema-validated nominal and problem examples. S0-T08
70
+ projects the exact 19 admitted transition families into 77 independently
71
+ identified event actions (SCHEMA-2.11.0 adds the `github_installation` family so
72
+ the worker-only compare-and-set writer can retire into the sole aggregate
73
+ gateway). Each action binds its aggregate and organization or publication scope,
74
+ exact predecessor/target states, the closed DEC-101 payload, the transactional
75
+ outbox producer, and a non-empty registered consumer set. S5-T00 materializes
76
+ document 07's closed 15-component App semantic catalog and document 14's
77
+ 20-entry MVP App route registry (S5 brief section 4) as
78
+ `docs/catalogs/app-components.json` and `docs/catalogs/app-routes.json`, with
78
79
  every `apiOperationIds` entry validated against `openapi/openapi.yaml`, every
79
80
  `componentIds`/`contentKeyIds` entry validated against the component catalog,
80
81
  and `capabilityKeys` projected from `openapi/http-catalog.json`. S4-T01 adds the
@@ -90,6 +91,97 @@ calls `postMembershipInvitationsByTokenAccept`; its non-enumerating failure
90
91
  states collapse onto that operation's single declared `INVALID_SOURCE_STATE`
91
92
  problem, which covers an expired, already-used or unknown token alike.
92
93
 
94
+ SCHEMA-2.15.0 closes a Content-list gap SCHEMA-2.14.0 left: with `kind` the only
95
+ fact the inventory carried about a flat file, a row could not show title, kind,
96
+ status or last-changed, and a client could not check web-address uniqueness,
97
+ without one round trip per row. `ContentInventoryItem` gains two optional
98
+ members, exactly one of which the server returns on every item from this version
99
+ on: `summary` (`ContentInventoryItemSummary` --
100
+ `contentId`/`title`/`slug`/`status`/`language`/`createdAt` required,
101
+ `updatedAt`/`publishedAt` optional; `status` is the new closed
102
+ `ContentItemStatus`, `DRAFT`/`PUBLISHED`/`UNLISTED`/`ARCHIVED`) when the header
103
+ block the server now reads for every listed path parses, or `unreadable`
104
+ (`ContentInventoryItemUnreadable`, `{reason}`, the new closed
105
+ `ContentItemUnreadableReason`: `HEADER_MISSING`/`HEADER_UNPARSABLE`/
106
+ `HEADER_INVALID`/`TOO_LARGE`) when it does not. `kind` itself now comes from the
107
+ header when `summary` is present, from the content root as before when it is
108
+ not. This is stated in the operation description rather than schema- enforced,
109
+ because a `oneOf` requiring one of the two would make a pre-2.15.0 item -- one
110
+ with neither field, valid until now -- invalid; member types reuse
111
+ `content-frontmatter.schema.json`'s `$defs`, matching how
112
+ `ContentFrontmatter`/`ContentPublicationSummary` already do. `GET .../content`
113
+ also gains its own `limit` bound (`ContentLimit`): default 50 in place of the
114
+ shared default of 25, the existing 100 maximum kept unchanged since lowering a
115
+ maximum is never additive; the server may return fewer items than `limit` even
116
+ when more are available.
117
+
118
+ SCHEMA-2.14.0 (design `scrap/20260928_write-preview-publish.md` section 3) is
119
+ additive, closing the write/preview/publish content journey. Nine operations
120
+ join the contract under
121
+ `/v2/organizations/{organizationId}/publications/{publicationId}`:
122
+ `GET .../content` (bounded git-trees inventory at the main branch head,
123
+ `items[].kind` ARTICLE/PAGE derived from the content root, never from parsing
124
+ the file; the required `publication` object -- `defaultLanguage`, `theme`, and
125
+ up to 200 `authors` -- is read from `gala/repository.json`,
126
+ `gala/appearance.json` and `gala/authors/` at the same main head and returned on
127
+ every page, not only the first, carrying no personal data beyond what each
128
+ author file itself publishes), `GET .../content/documents` and
129
+ `GET .../content/assets` (one document or one binary image, `revision` omitted
130
+ meaning the main head and otherwise enforced against the database -- the main
131
+ head, this publication's own `RepositoryChange`'s `proposedRevision` or
132
+ `baseRevision`, or its own published revision -- never accepted on the caller's
133
+ assertion), `GET`/single-read `.../repository-changes` (list and read proposed
134
+ changes across every plan kind, modelled on the reviews list and read),
135
+ `POST .../repository-changes/{changeId}:bring-up-to-date` (a file-level
136
+ three-way merge from blob ids only, never a text merge: every path merging
137
+ cleanly plans a new change and returns `201`; any path conflicting writes
138
+ nothing and returns `409 INVALID_SOURCE_STATE` naming each conflicting path, so
139
+ the App merges the text itself in the browser from the document read and submits
140
+ a new `content-changes:plan`), `POST .../repository:set-up` and
141
+ `GET .../repository/setup` (add the user template repository's missing files to
142
+ an already-linked repository, never overwriting a path that exists with
143
+ different content), and `POST .../publishes/{publishId}:update-default-branch`
144
+ (retry moving the linked repository's default branch forward after GitHub
145
+ refused it). `content-changes:plan` is extended, additively: the 2.13.0
146
+ single-document shape (`path`, `contentDigest`, `expectedHead`) stays accepted,
147
+ and a new batch shape (`baseRevision` plus `documents[]`/`assets[]`, each entry
148
+ `PUT` or `DELETE`, up to 20 of each, a document capped at 1 MiB and an asset at
149
+ 5 MiB) plans up to 20 MiB in one change; every path is checked against a closed
150
+ safety pattern that makes `gala/`, `gala.lock.json`, `.github/`,
151
+ dot-directories, absolute paths, `..` segments, backslashes and control
152
+ characters unrepresentable, and every asset write names its `contentType` from
153
+ the same five-member closed list the asset read serves (`image/svg+xml` is
154
+ deliberately not among them). A stale `expectedHead`/`baseRevision` is
155
+ `409 INVALID_SOURCE_STATE` carrying the live main head on the new
156
+ `X-Gala-Current-Head` response header, so the App can merge without ever holding
157
+ a commit id itself; `bring-up-to-date`'s file-level conflict reuses the same
158
+ header, with one `errors[]` entry per conflicting path
159
+ (`code: CONTENT_CONFLICT`, `pointer` a JSON Pointer under `/documents/` or
160
+ `/assets/`). `RepositoryChangeSummary` gains `baseRevision` (required for a
161
+ `CONTENT`-kind change), `proposedRevision` (absent until the commit exists), and
162
+ `broughtUpToDateFromChangeId`. `POST .../publishes` gains the declared refusal
163
+ `SOURCE_OUT_OF_DATE` (an `errors[].code` on the same `409 INVALID_SOURCE_STATE`,
164
+ pointed at `/sourceRevision`, described in prose alongside the existing
165
+ `/scheduledFor` cause since the generator admits one example per problem code
166
+ per operation): a publish is refused unless the current default-branch head is
167
+ an ancestor of the revision being published, which is what a verified publish's
168
+ own worker then fast-forwards the default branch to, non-forced, retryable
169
+ through `update-default-branch` when GitHub reports the branch protected
170
+ (`BLOCKED_BY_PROTECTION`) or moved since (`DIVERGED`) -- the site stays live
171
+ either way. `DeploymentSummary` gains the optional `defaultBranchUpdate` block
172
+ (`state` PENDING/UPDATED/BLOCKED_BY_PROTECTION/DIVERGED/FAILED, optional
173
+ `updatedAt`), and repository creation's `startFrom` (`USER_TEMPLATE`, the
174
+ default, or `EMPTY`) chooses whether the created repository generates from the
175
+ `rathnasgala2/user-template` GitHub template. `docs/catalogs/app-routes.json`'s
176
+ Content route gains the new operation ids and its `screenJob` no longer says the
177
+ screen is unavailable; the Source route gains the two set-up operations and
178
+ Releases gains the default-branch retry. The 15-component App semantic catalog
179
+ and its shared closed state vocabulary already cover every state this journey
180
+ needs, so `catalog-sources/app-components.json` is unchanged. The 80-domain
181
+ digest inventory, every existing operation id, schema, enum member and required
182
+ field are unchanged; a consumer pinned to 2.13.0 changes nothing but the package
183
+ version to move to 2.14.0.
184
+
93
185
  SCHEMA-2.7.1 (LOCAL-50) adds the optional operation-level vendor extension
94
186
  `x-gala-conditional-capability-keys`: an array of `{capabilityKey, condition}`
95
187
  pairs naming an alternate capability key that also admits the operation, next to
@@ -535,7 +627,7 @@ remediation, and documentation URL fields without including authored values.
535
627
  fragments grouped by the first literal resource token. A build input, not part
536
628
  of the npm payload (SCH-H7: `!openapi/source/` in `package.json`'s `files`) --
537
629
  a consumer reads the materialized `openapi/openapi.yaml` instead.
538
- - `openapi/openapi.yaml` — deterministic OpenAPI 3.1 bundle for the exact 76 MVP
630
+ - `openapi/openapi.yaml` — deterministic OpenAPI 3.1 bundle for the exact 85 MVP
539
631
  operations plus health.
540
632
  - `openapi/http-catalog.json` — generated digest-bound method/path/purpose and
541
633
  capability inventory, including `conditionalCapabilityKeys` (SCHEMA-2.7.1) and
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "package": "@rathnasgala2/schemas@2.13.0",
3
+ "package": "@rathnasgala2/schemas@2.15.0",
4
4
  "source": "package-lock.json",
5
5
  "dependencies": [
6
6
  {
@@ -2286,7 +2286,7 @@
2286
2286
  },
2287
2287
  {
2288
2288
  "contentKey": "organizations.by-organization-id.publications.by-publication-id.content.screen.ready.summary",
2289
- "defaultMessage": "Browsing and editing this publication's content is not available yet.",
2289
+ "defaultMessage": "Write, preview, propose, review and publish this publication's content, with drafts kept in the browser until proposed.",
2290
2290
  "description": "Summary for the organizations.by-organization-id.publications.by-publication-id.content screen, copied verbatim from document 14's Screen/job cell.",
2291
2291
  "placeholders": {},
2292
2292
  "sensitivity": "AUTHENTICATED"
@@ -4707,5 +4707,5 @@
4707
4707
  "sensitivity": "PUBLIC"
4708
4708
  }
4709
4709
  ],
4710
- "digest": "sha256:d5610f4528de71e2293bc30198e1e47247cd4b910da549fa1721ddd72faa499d"
4710
+ "digest": "sha256:3c8f46cb53c89980a26d8d4134d0f8bdd72d80cd96576a24baec31edf335ce2a"
4711
4711
  }
@@ -972,7 +972,13 @@
972
972
  "capabilityKeys": ["publication.source.write", "publication.view"],
973
973
  "apiOperationIds": [
974
974
  "getOrganizationsByOrganizationIdPublicationsByPublicationId",
975
- "postOrganizationsByOrganizationIdPublicationsByPublicationIdContentChangesPlan"
975
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdContent",
976
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdContentAssets",
977
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdContentDocuments",
978
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChanges",
979
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeId",
980
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdContentChangesPlan",
981
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdBringUpToDate"
976
982
  ],
977
983
  "componentIds": [
978
984
  "AppShell",
@@ -1060,7 +1066,8 @@
1060
1066
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsByGenerationId",
1061
1067
  "postOrganizationsByOrganizationIdOperationsByOperationIdCancel",
1062
1068
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsByGenerationIdReconcile",
1063
- "postOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsRollback"
1069
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsRollback",
1070
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdPublishesByPublishIdUpdateDefaultBranch"
1064
1071
  ],
1065
1072
  "componentIds": [
1066
1073
  "AppShell",
@@ -1298,7 +1305,8 @@
1298
1305
  "publication.publish",
1299
1306
  "publication.schedule",
1300
1307
  "publication.settings.manage",
1301
- "publication.source.write"
1308
+ "publication.source.write",
1309
+ "publication.view"
1302
1310
  ],
1303
1311
  "apiOperationIds": [
1304
1312
  "deleteOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindingsCurrent",
@@ -1306,13 +1314,15 @@
1306
1314
  "getGithubInstallations",
1307
1315
  "getGithubInstallationsByInstallationIdRepositories",
1308
1316
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindingsCurrent",
1317
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetup",
1309
1318
  "postGithubInstallationsByInstallationIdRepositories",
1310
1319
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdConfigurationChangesPlan",
1311
1320
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdPublishes",
1312
1321
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdPublishesByPublishIdCancel",
1313
1322
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindings",
1314
1323
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdConfirm",
1315
- "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesPlan"
1324
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesPlan",
1325
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetUp"
1316
1326
  ],
1317
1327
  "componentIds": [
1318
1328
  "AppShell",
@@ -1592,5 +1602,5 @@
1592
1602
  ]
1593
1603
  }
1594
1604
  ],
1595
- "digest": "sha256:d2eccb738dcd301d9e83a6ce0ef7dd8ed4e71f6f6f4fa7e67126c2ef0a99e84b"
1605
+ "digest": "sha256:80401d17e9366bb0c496db9c2fe7520a7f106b1fef24d3c1be11b4cace48581d"
1596
1606
  }
@@ -209,9 +209,9 @@
209
209
  "version": "2.0.0",
210
210
  "path": "openapi/openapi.yaml",
211
211
  "materialized": true,
212
- "sourceDigest": "sha256:5d997a363085652fa2d78b6ffd7f3e307edabecbcb18cc56ed785353bcf33896",
212
+ "sourceDigest": "sha256:ca5cf80a6fc7b91e4a029d9962efc0da84b31a267b0e1a7bbaaba731d426dffc",
213
213
  "typescriptRootType": null
214
214
  }
215
215
  ],
216
- "digest": "sha256:c98e1d350d67018d609def3606d02049bb6acc5b5bb165912606d5215fdd3623"
216
+ "digest": "sha256:fe8e29466fbeaafd38b28e6d09f94a4f9e05045aaa4af954431d5b493a13ba14"
217
217
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "2.0.0",
3
3
  "sourceDesignRevision": "a53052955ceb6c1aa10c886289dc832eedfe6de0a00004df07d353ac19c4403a",
4
- "openApiDigest": "sha256:5d997a363085652fa2d78b6ffd7f3e307edabecbcb18cc56ed785353bcf33896",
4
+ "openApiDigest": "sha256:ca5cf80a6fc7b91e4a029d9962efc0da84b31a267b0e1a7bbaaba731d426dffc",
5
5
  "operations": [
6
6
  {
7
7
  "operationId": "getInternalHealth",
@@ -476,6 +476,18 @@
476
476
  "actionGrant": "none",
477
477
  "sourceFragment": "organizations"
478
478
  },
479
+ {
480
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdContent",
481
+ "method": "GET",
482
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/content",
483
+ "purpose": "inventory this publication's content at the main branch head",
484
+ "capabilityKey": "publication.view",
485
+ "conditionalCapabilityKeys": [],
486
+ "activationGate": "MVP",
487
+ "assuranceClass": "SESSION",
488
+ "actionGrant": "none",
489
+ "sourceFragment": "organizations"
490
+ },
479
491
  {
480
492
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdContentChangesPlan",
481
493
  "method": "POST",
@@ -488,6 +500,30 @@
488
500
  "actionGrant": "none",
489
501
  "sourceFragment": "organizations"
490
502
  },
503
+ {
504
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdContentAssets",
505
+ "method": "GET",
506
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/content/assets",
507
+ "purpose": "read one content asset",
508
+ "capabilityKey": "publication.view",
509
+ "conditionalCapabilityKeys": [],
510
+ "activationGate": "MVP",
511
+ "assuranceClass": "SESSION",
512
+ "actionGrant": "none",
513
+ "sourceFragment": "organizations"
514
+ },
515
+ {
516
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdContentDocuments",
517
+ "method": "GET",
518
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/content/documents",
519
+ "purpose": "read one content document",
520
+ "capabilityKey": "publication.view",
521
+ "conditionalCapabilityKeys": [],
522
+ "activationGate": "MVP",
523
+ "assuranceClass": "SESSION",
524
+ "actionGrant": "none",
525
+ "sourceFragment": "organizations"
526
+ },
491
527
  {
492
528
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdDeployments",
493
529
  "method": "GET",
@@ -586,6 +622,18 @@
586
622
  "actionGrant": "none",
587
623
  "sourceFragment": "organizations"
588
624
  },
625
+ {
626
+ "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdPublishesByPublishIdUpdateDefaultBranch",
627
+ "method": "POST",
628
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/publishes/{publishId}:update-default-branch",
629
+ "purpose": "retry moving the default branch forward to a published revision",
630
+ "capabilityKey": "publication.publish",
631
+ "conditionalCapabilityKeys": [],
632
+ "activationGate": "MVP",
633
+ "assuranceClass": "SESSION",
634
+ "actionGrant": "none",
635
+ "sourceFragment": "organizations"
636
+ },
589
637
  {
590
638
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindings",
591
639
  "method": "POST",
@@ -624,6 +672,18 @@
624
672
  "actionGrant": "none",
625
673
  "sourceFragment": "organizations"
626
674
  },
675
+ {
676
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChanges",
677
+ "method": "GET",
678
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/repository-changes",
679
+ "purpose": "list proposed repository changes of this publication",
680
+ "capabilityKey": "publication.view",
681
+ "conditionalCapabilityKeys": [],
682
+ "activationGate": "MVP",
683
+ "assuranceClass": "SESSION",
684
+ "actionGrant": "none",
685
+ "sourceFragment": "organizations"
686
+ },
627
687
  {
628
688
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesPlan",
629
689
  "method": "POST",
@@ -636,6 +696,30 @@
636
696
  "actionGrant": "none",
637
697
  "sourceFragment": "organizations"
638
698
  },
699
+ {
700
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeId",
701
+ "method": "GET",
702
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/repository-changes/{changeId}",
703
+ "purpose": "read one proposed repository change",
704
+ "capabilityKey": "publication.view",
705
+ "conditionalCapabilityKeys": [],
706
+ "activationGate": "MVP",
707
+ "assuranceClass": "SESSION",
708
+ "actionGrant": "none",
709
+ "sourceFragment": "organizations"
710
+ },
711
+ {
712
+ "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdBringUpToDate",
713
+ "method": "POST",
714
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/repository-changes/{changeId}:bring-up-to-date",
715
+ "purpose": "plan a new change merging a proposed change onto the current main head",
716
+ "capabilityKey": "publication.source.write",
717
+ "conditionalCapabilityKeys": [],
718
+ "activationGate": "MVP",
719
+ "assuranceClass": "SESSION",
720
+ "actionGrant": "none",
721
+ "sourceFragment": "organizations"
722
+ },
639
723
  {
640
724
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdConfirm",
641
725
  "method": "POST",
@@ -648,6 +732,30 @@
648
732
  "actionGrant": "none",
649
733
  "sourceFragment": "organizations"
650
734
  },
735
+ {
736
+ "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetUp",
737
+ "method": "POST",
738
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/repository:set-up",
739
+ "purpose": "add the user template files to a linked repository that lacks them",
740
+ "capabilityKey": "publication.integrations.manage",
741
+ "conditionalCapabilityKeys": [],
742
+ "activationGate": "MVP",
743
+ "assuranceClass": "SESSION",
744
+ "actionGrant": "none",
745
+ "sourceFragment": "organizations"
746
+ },
747
+ {
748
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetup",
749
+ "method": "GET",
750
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/repository/setup",
751
+ "purpose": "read this publication's repository set-up state",
752
+ "capabilityKey": "publication.view",
753
+ "conditionalCapabilityKeys": [],
754
+ "activationGate": "MVP",
755
+ "assuranceClass": "SESSION",
756
+ "actionGrant": "none",
757
+ "sourceFragment": "organizations"
758
+ },
651
759
  {
652
760
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdReviews",
653
761
  "method": "GET",
@@ -941,5 +1049,5 @@
941
1049
  "sourceFragment": "workloads"
942
1050
  }
943
1051
  ],
944
- "digest": "sha256:002edc7aa9c72f1b459d3d534af24c1f00fb4a6fd1d94bbcec5f611eb58eca77"
1052
+ "digest": "sha256:f4c2d4b69632958faefc39a1a229877a70a60b86a22b9e891bbecb1924878c68"
945
1053
  }