@rathnasgala2/schemas 2.12.0 → 2.14.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,36 +59,104 @@ 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 75 MVP operations plus `/internal/health` (76 catalog
63
- rows; 71 at S0-T07, plus the two SCHEMA-2.8.0 reads and the two SCHEMA-2.10.0
64
- publication-destination reads/writes). The bundle includes the accepted DEC-097
65
- receipt-exchange and deployment-receipt amendments and serializes the fixed
66
- OpenAPI Generator 7.25.0 option sets. Every operation also declares its tenant
67
- scope, lifecycle and activation guards, maps every reachable problem, and
68
- carries schema-validated nominal and problem examples. S0-T08 projects the exact
69
- 19 admitted transition families into 77 independently identified event actions
70
- (SCHEMA-2.11.0 adds the `github_installation` family so the worker-only
71
- compare-and-set writer can retire into the sole aggregate gateway). Each action
72
- binds its aggregate and organization or publication scope, exact
73
- predecessor/target states, the closed DEC-101 payload, the transactional outbox
74
- producer, and a non-empty registered consumer set. S5-T00 materializes document
75
- 07's closed 15-component App semantic catalog and document 14's 20-entry MVP App
76
- route registry (S5 brief section 4) as `docs/catalogs/app-components.json` and
77
- `docs/catalogs/app-routes.json`, with every `apiOperationIds` entry validated
78
- against `openapi/openapi.yaml`, every `componentIds`/`contentKeyIds` entry
79
- validated against the component catalog, and `capabilityKeys` projected from
80
- `openapi/http-catalog.json`. S4-T01 adds the separately generated `fixtures/s4/`
81
- deployment/certification consumer-fixture family (deployment-intent,
82
- deployment-observation, deployment-receipt, public-generation-marker, and
83
- adapter-capability rows for `local-directory`, `github-pages`, and `do-spaces`)
84
- alongside the existing `fixtures/s2/` family, each with its own manifest.
85
- LOCAL-21 admits a 21st App route, `/invitations/accept` (`routeId`
86
- `invitations.accept`), an ordinary `SESSION_REQUIRED` `APP` route (not
87
- `TRANSACTIONAL_LINK`: it is served by the App origin after sign-in, unlike the
88
- deferred `/t/**` template family) that calls
89
- `postMembershipInvitationsByTokenAccept`; its non-enumerating failure states
90
- collapse onto that operation's single declared `INVALID_SOURCE_STATE` problem,
91
- which covers an expired, already-used or unknown token alike.
62
+ HTTP catalog for exactly 85 MVP operations plus `/internal/health` (86 catalog
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, 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
79
+ every `apiOperationIds` entry validated against `openapi/openapi.yaml`, every
80
+ `componentIds`/`contentKeyIds` entry validated against the component catalog,
81
+ and `capabilityKeys` projected from `openapi/http-catalog.json`. S4-T01 adds the
82
+ separately generated `fixtures/s4/` deployment/certification consumer-fixture
83
+ family (deployment-intent, deployment-observation, deployment-receipt,
84
+ public-generation-marker, and adapter-capability rows for `local-directory`,
85
+ `github-pages`, and `do-spaces`) alongside the existing `fixtures/s2/` family,
86
+ each with its own manifest. LOCAL-21 admits a 21st App route,
87
+ `/invitations/accept` (`routeId` `invitations.accept`), an ordinary
88
+ `SESSION_REQUIRED` `APP` route (not `TRANSACTIONAL_LINK`: it is served by the
89
+ App origin after sign-in, unlike the deferred `/t/**` template family) that
90
+ calls `postMembershipInvitationsByTokenAccept`; its non-enumerating failure
91
+ states collapse onto that operation's single declared `INVALID_SOURCE_STATE`
92
+ problem, which covers an expired, already-used or unknown token alike.
93
+
94
+ SCHEMA-2.14.0 (design `scrap/20260928_write-preview-publish.md` section 3) is
95
+ additive, closing the write/preview/publish content journey. Nine operations
96
+ join the contract under
97
+ `/v2/organizations/{organizationId}/publications/{publicationId}`:
98
+ `GET .../content` (bounded git-trees inventory at the main branch head,
99
+ `items[].kind` ARTICLE/PAGE derived from the content root, never from parsing
100
+ the file; the required `publication` object -- `defaultLanguage`, `theme`, and
101
+ up to 200 `authors` -- is read from `gala/repository.json`,
102
+ `gala/appearance.json` and `gala/authors/` at the same main head and returned on
103
+ every page, not only the first, carrying no personal data beyond what each
104
+ author file itself publishes), `GET .../content/documents` and
105
+ `GET .../content/assets` (one document or one binary image, `revision` omitted
106
+ meaning the main head and otherwise enforced against the database -- the main
107
+ head, this publication's own `RepositoryChange`'s `proposedRevision` or
108
+ `baseRevision`, or its own published revision -- never accepted on the caller's
109
+ assertion), `GET`/single-read `.../repository-changes` (list and read proposed
110
+ changes across every plan kind, modelled on the reviews list and read),
111
+ `POST .../repository-changes/{changeId}:bring-up-to-date` (a file-level
112
+ three-way merge from blob ids only, never a text merge: every path merging
113
+ cleanly plans a new change and returns `201`; any path conflicting writes
114
+ nothing and returns `409 INVALID_SOURCE_STATE` naming each conflicting path, so
115
+ the App merges the text itself in the browser from the document read and submits
116
+ a new `content-changes:plan`), `POST .../repository:set-up` and
117
+ `GET .../repository/setup` (add the user template repository's missing files to
118
+ an already-linked repository, never overwriting a path that exists with
119
+ different content), and `POST .../publishes/{publishId}:update-default-branch`
120
+ (retry moving the linked repository's default branch forward after GitHub
121
+ refused it). `content-changes:plan` is extended, additively: the 2.13.0
122
+ single-document shape (`path`, `contentDigest`, `expectedHead`) stays accepted,
123
+ and a new batch shape (`baseRevision` plus `documents[]`/`assets[]`, each entry
124
+ `PUT` or `DELETE`, up to 20 of each, a document capped at 1 MiB and an asset at
125
+ 5 MiB) plans up to 20 MiB in one change; every path is checked against a closed
126
+ safety pattern that makes `gala/`, `gala.lock.json`, `.github/`,
127
+ dot-directories, absolute paths, `..` segments, backslashes and control
128
+ characters unrepresentable, and every asset write names its `contentType` from
129
+ the same five-member closed list the asset read serves (`image/svg+xml` is
130
+ deliberately not among them). A stale `expectedHead`/`baseRevision` is
131
+ `409 INVALID_SOURCE_STATE` carrying the live main head on the new
132
+ `X-Gala-Current-Head` response header, so the App can merge without ever holding
133
+ a commit id itself; `bring-up-to-date`'s file-level conflict reuses the same
134
+ header, with one `errors[]` entry per conflicting path
135
+ (`code: CONTENT_CONFLICT`, `pointer` a JSON Pointer under `/documents/` or
136
+ `/assets/`). `RepositoryChangeSummary` gains `baseRevision` (required for a
137
+ `CONTENT`-kind change), `proposedRevision` (absent until the commit exists), and
138
+ `broughtUpToDateFromChangeId`. `POST .../publishes` gains the declared refusal
139
+ `SOURCE_OUT_OF_DATE` (an `errors[].code` on the same `409 INVALID_SOURCE_STATE`,
140
+ pointed at `/sourceRevision`, described in prose alongside the existing
141
+ `/scheduledFor` cause since the generator admits one example per problem code
142
+ per operation): a publish is refused unless the current default-branch head is
143
+ an ancestor of the revision being published, which is what a verified publish's
144
+ own worker then fast-forwards the default branch to, non-forced, retryable
145
+ through `update-default-branch` when GitHub reports the branch protected
146
+ (`BLOCKED_BY_PROTECTION`) or moved since (`DIVERGED`) -- the site stays live
147
+ either way. `DeploymentSummary` gains the optional `defaultBranchUpdate` block
148
+ (`state` PENDING/UPDATED/BLOCKED_BY_PROTECTION/DIVERGED/FAILED, optional
149
+ `updatedAt`), and repository creation's `startFrom` (`USER_TEMPLATE`, the
150
+ default, or `EMPTY`) chooses whether the created repository generates from the
151
+ `rathnasgala2/user-template` GitHub template. `docs/catalogs/app-routes.json`'s
152
+ Content route gains the new operation ids and its `screenJob` no longer says the
153
+ screen is unavailable; the Source route gains the two set-up operations and
154
+ Releases gains the default-branch retry. The 15-component App semantic catalog
155
+ and its shared closed state vocabulary already cover every state this journey
156
+ needs, so `catalog-sources/app-components.json` is unchanged. The 80-domain
157
+ digest inventory, every existing operation id, schema, enum member and required
158
+ field are unchanged; a consumer pinned to 2.13.0 changes nothing but the package
159
+ version to move to 2.14.0.
92
160
 
93
161
  SCHEMA-2.7.1 (LOCAL-50) adds the optional operation-level vendor extension
94
162
  `x-gala-conditional-capability-keys`: an array of `{capabilityKey, condition}`
@@ -535,7 +603,7 @@ remediation, and documentation URL fields without including authored values.
535
603
  fragments grouped by the first literal resource token. A build input, not part
536
604
  of the npm payload (SCH-H7: `!openapi/source/` in `package.json`'s `files`) --
537
605
  a consumer reads the materialized `openapi/openapi.yaml` instead.
538
- - `openapi/openapi.yaml` — deterministic OpenAPI 3.1 bundle for the exact 75 MVP
606
+ - `openapi/openapi.yaml` — deterministic OpenAPI 3.1 bundle for the exact 85 MVP
539
607
  operations plus health.
540
608
  - `openapi/http-catalog.json` — generated digest-bound method/path/purpose and
541
609
  capability inventory, including `conditionalCapabilityKeys` (SCHEMA-2.7.1) and
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "package": "@rathnasgala2/schemas@2.12.0",
3
+ "package": "@rathnasgala2/schemas@2.14.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,12 +1314,15 @@
1306
1314
  "getGithubInstallations",
1307
1315
  "getGithubInstallationsByInstallationIdRepositories",
1308
1316
  "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindingsCurrent",
1317
+ "getOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetup",
1318
+ "postGithubInstallationsByInstallationIdRepositories",
1309
1319
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdConfigurationChangesPlan",
1310
1320
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdPublishes",
1311
1321
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdPublishesByPublishIdCancel",
1312
1322
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindings",
1313
1323
  "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdConfirm",
1314
- "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesPlan"
1324
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesPlan",
1325
+ "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositorySetUp"
1315
1326
  ],
1316
1327
  "componentIds": [
1317
1328
  "AppShell",
@@ -1591,5 +1602,5 @@
1591
1602
  ]
1592
1603
  }
1593
1604
  ],
1594
- "digest": "sha256:32e5dd41da10ffc018ad79467d80624e614a0276d5bff2c2a5c26a107d0d31b6"
1605
+ "digest": "sha256:80401d17e9366bb0c496db9c2fe7520a7f106b1fef24d3c1be11b4cace48581d"
1595
1606
  }
@@ -209,9 +209,9 @@
209
209
  "version": "2.0.0",
210
210
  "path": "openapi/openapi.yaml",
211
211
  "materialized": true,
212
- "sourceDigest": "sha256:548e213c59e1b9bfa105d2cbc9ccde89162293f8337831c97992fd012a8cbe62",
212
+ "sourceDigest": "sha256:e8c2073c001219a158d458455a8f238c96ce3b7fdb1eb76bcc04388bcf3cc20d",
213
213
  "typescriptRootType": null
214
214
  }
215
215
  ],
216
- "digest": "sha256:dc42ec24f4d3e807e75fbd1eed275131434a09c6d7e6940a7f17c1f3b1a3c77d"
216
+ "digest": "sha256:90e1849ad012f5c649992cde222da04be4e46fcb04fd3de337f4abf866dffed7"
217
217
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "2.0.0",
3
3
  "sourceDesignRevision": "a53052955ceb6c1aa10c886289dc832eedfe6de0a00004df07d353ac19c4403a",
4
- "openApiDigest": "sha256:548e213c59e1b9bfa105d2cbc9ccde89162293f8337831c97992fd012a8cbe62",
4
+ "openApiDigest": "sha256:e8c2073c001219a158d458455a8f238c96ce3b7fdb1eb76bcc04388bcf3cc20d",
5
5
  "operations": [
6
6
  {
7
7
  "operationId": "getInternalHealth",
@@ -123,6 +123,18 @@
123
123
  "actionGrant": "none",
124
124
  "sourceFragment": "github"
125
125
  },
126
+ {
127
+ "operationId": "postGithubInstallationsByInstallationIdRepositories",
128
+ "method": "POST",
129
+ "path": "/v2/github/installations/{installationId}/repositories",
130
+ "purpose": "create a repository on this installation's account",
131
+ "capabilityKey": null,
132
+ "conditionalCapabilityKeys": [],
133
+ "activationGate": "MVP",
134
+ "assuranceClass": "SESSION",
135
+ "actionGrant": "none",
136
+ "sourceFragment": "github"
137
+ },
126
138
  {
127
139
  "operationId": "postMembershipInvitationsByTokenAccept",
128
140
  "method": "POST",
@@ -464,6 +476,18 @@
464
476
  "actionGrant": "none",
465
477
  "sourceFragment": "organizations"
466
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
+ },
467
491
  {
468
492
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdContentChangesPlan",
469
493
  "method": "POST",
@@ -476,6 +500,30 @@
476
500
  "actionGrant": "none",
477
501
  "sourceFragment": "organizations"
478
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
+ },
479
527
  {
480
528
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdDeployments",
481
529
  "method": "GET",
@@ -574,6 +622,18 @@
574
622
  "actionGrant": "none",
575
623
  "sourceFragment": "organizations"
576
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
+ },
577
637
  {
578
638
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryBindings",
579
639
  "method": "POST",
@@ -612,6 +672,18 @@
612
672
  "actionGrant": "none",
613
673
  "sourceFragment": "organizations"
614
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
+ },
615
687
  {
616
688
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesPlan",
617
689
  "method": "POST",
@@ -624,6 +696,30 @@
624
696
  "actionGrant": "none",
625
697
  "sourceFragment": "organizations"
626
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
+ },
627
723
  {
628
724
  "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdRepositoryChangesByChangeIdConfirm",
629
725
  "method": "POST",
@@ -636,6 +732,30 @@
636
732
  "actionGrant": "none",
637
733
  "sourceFragment": "organizations"
638
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
+ },
639
759
  {
640
760
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdReviews",
641
761
  "method": "GET",
@@ -929,5 +1049,5 @@
929
1049
  "sourceFragment": "workloads"
930
1050
  }
931
1051
  ],
932
- "digest": "sha256:c49369a752150235b9334fa2495e32302daab7afc81d65cc3d58e6b5fb116bdd"
1052
+ "digest": "sha256:abcc06359b67cd9c829bb98687ae3b691fe98b2ba2ea1b23272f5a861c21e41c"
933
1053
  }