@fourier-labs/harbour-contracts 0.76.0 → 0.78.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 +4 -4
- package/contract-release.json +26 -26
- package/dist/gen-ts/app-integrations-declaration.d.ts +11 -2
- package/dist/gen-ts/contract-release.d.ts +6 -6
- package/dist/gen-ts/contract-release.js +6 -6
- package/dist/gen-ts/data-grant-v2.d.ts +5 -5
- package/dist/gen-ts/deploy-request.d.ts +3 -3
- package/dist/gen-ts/deployment-source.d.ts +4 -4
- package/dist/gen-ts/integration-execute-input-rules.d.ts +202 -0
- package/dist/gen-ts/integration-execute-input-rules.js +88 -2
- package/dist/gen-ts/integration-execute-request.d.ts +52 -6
- package/dist/gen-ts/integration-execute-result.d.ts +90 -2
- package/dist/gen-ts/integration-operations.d.ts +63 -0
- package/dist/gen-ts/integration-operations.js +81 -0
- package/dist/gen-ts/saas-connection.d.ts +11 -11
- package/gen-ts/app-integrations-declaration.ts +11 -2
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/data-grant-v2.ts +13 -4
- package/gen-ts/deploy-request.ts +3 -3
- package/gen-ts/deployment-source.ts +4 -4
- package/gen-ts/integration-execute-input-rules.ts +90 -4
- package/gen-ts/integration-execute-request.ts +60 -5
- package/gen-ts/integration-execute-result.ts +90 -2
- package/gen-ts/integration-operations.ts +81 -0
- package/gen-ts/saas-connection.ts +19 -10
- package/package.json +1 -1
- package/schema/app-integrations-declaration.schema.json +193 -3
- package/schema/data-grant-v2.schema.json +4 -4
- package/schema/deploy-request.schema.json +4 -4
- package/schema/deployment-source.schema.json +9 -5
- package/schema/integration-execute-request.schema.json +497 -7
- package/schema/integration-execute-result.schema.json +345 -4
- package/schema/saas-connection.schema.json +27 -10
package/README.md
CHANGED
|
@@ -38,12 +38,12 @@ exist here first.
|
|
|
38
38
|
| `binding-classification-subject.schema.json` | Complete value-free binding-name classification before version allocation | AI governance §5.7 / SEC-UP-01 |
|
|
39
39
|
| `sanitized-binding-evidence.schema.json` | Exact-version sanitized runtime-binding allocation receipt | AI governance §5.7 / SEC-UP-02 |
|
|
40
40
|
| `ai-pricing-revision`, `ai-metering-policy`, `ai-budget-ledger-event`, `ai-trace-event-v2` | Additive metering v2 records, including media dimensions and P5 trace attribution; v1 records remain readable | AI governance §9 |
|
|
41
|
-
| `app-integrations-declaration.schema.json` | Committed `.isomorph/integrations.json` (`isomorph.app-integrations/2.0`): closed
|
|
42
|
-
| `integration-execute-request`, `integration-execute-result`, `integration-connect-result`, `integration-error-details` | App SDK integrations wire contract on `/_harbour/integrations/*`: per-operation input bounds (a warehouse read filters, groups, aggregates and sorts in the warehouse and says when it was `truncated` — ADR 0017; Slack and Gmail reads page, posts thread, mail carries HTML and attachments — ADR 0018; a development warehouse read may carry the app's `sampleRows` and the result says `sample` — ADR 0021; Basecamp lists page by `pageToken`, ids are digit strings, writes answer `{id, appUrl}` — ADR 0022), the per-operation result shapes, consent states and the closed `details.code` reason set | Dev kit §4, §8 |
|
|
43
|
-
| `saas-connection.schema.json`, `data-grant-v2.schema.json` | Tenant SaaS connection record (one installation and channel map per tenant and provider; IT's optional `oauthClient`, `userModeApproval`, `directMessages`, `externalRecipients` — ADR 0018; a Basecamp connection's pinned `account` and project ids in `channels` — ADR 0022) and the additive `harbour.data-grant/2.0` grant record with structured resources and provisioning lease/cleanup (status machine generated; legacy `data-grant` untouched) | Dev kit §5 |
|
|
41
|
+
| `app-integrations-declaration.schema.json` | Committed `.isomorph/integrations.json` (`isomorph.app-integrations/2.0`): closed thirty-three-operation set (Slack read/post/update/delete/DM/lookup, Gmail list/thread/read/send/attachment — ADR 0018; Basecamp project/to-do list/to-do/message/comment/people lists, to-do create and complete, message, comment and Campfire posts — ADR 0022; SharePoint list/item/drive/file lists, file search and read, item create and update, file upload — ADR 0024; warehouse view read; service request) with fixed or declared identity modes; owns the shared operation/identity/environment enums | Dev kit §4 |
|
|
42
|
+
| `integration-execute-request`, `integration-execute-result`, `integration-connect-result`, `integration-error-details` | App SDK integrations wire contract on `/_harbour/integrations/*`: per-operation input bounds (a warehouse read filters, groups, aggregates and sorts in the warehouse and says when it was `truncated` — ADR 0017; Slack and Gmail reads page, posts thread, mail carries HTML and attachments — ADR 0018; a development warehouse read may carry the app's `sampleRows` and the result says `sample` — ADR 0021; Basecamp lists page by `pageToken`, ids are digit strings, writes answer `{id, appUrl}` — ADR 0022; SharePoint lists page by a Graph `$skiptoken`, ids are Graph ids, `fields` is a bounded record, writes answer `{id, webUrl}` — ADR 0024), the per-operation result shapes, consent states and the closed `details.code` reason set | Dev kit §4, §8 |
|
|
43
|
+
| `saas-connection.schema.json`, `data-grant-v2.schema.json` | Tenant SaaS connection record (one installation and channel map per tenant and provider; IT's optional `oauthClient`, `userModeApproval`, `directMessages`, `externalRecipients` — ADR 0018; a Basecamp connection's pinned `account` and project ids in `channels` — ADR 0022; a SharePoint connection's pinned Microsoft 365 tenant in `account` and site ids in `channels` — ADR 0024) and the additive `harbour.data-grant/2.0` grant record with structured resources and provisioning lease/cleanup (status machine generated; legacy `data-grant` untouched) | Dev kit §5 |
|
|
44
44
|
| `kit-bundle-manifest.schema.json`, `kit-lock.schema.json` | Published kit bundle identity (SDK tarball digest plus optional `sdk.version` and https `sdk.url` download location) and the committed `.isomorph/kit.lock.json` the CodeBuild SDK-vendoring gate compares against | Dev kit §3 |
|
|
45
45
|
| `deploy-response.schema.json` | 202 Accepted body for `POST /v1/tenants/{tenant}/apps/{app}/deployments`, returned only after the authoritative QUEUED version exists and its SQS message is accepted | — |
|
|
46
|
-
| `deployment-source.schema.json` | Credential-free
|
|
46
|
+
| `deployment-source.schema.json` | Credential-free source in the `DeployRequest` body: `provider` is `github` or `gitlab`, `repositoryUrl` is shape-only and the deployment control plane checks the host against the tenant's source connection (ADR 0023); credentials are resolved internally by MaterializeSource | — |
|
|
47
47
|
| `deployment-environment.schema.json` | Public environment accepted by the preview APIs (`preview` only; production is reachable only through promotion) | — |
|
|
48
48
|
| `api-error-response.schema.json` | Safe JSON error body for Deploy/Status Lambda 4xx/5xx responses; distinct from the internal `ErrorEnvelope` | — |
|
|
49
49
|
| `deployment-status-request.schema.json` | Validated path parameters for `GET /v1/tenants/{tenant}/apps/{app}/deployments/{versionId}` | — |
|
package/contract-release.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "harbour.contract-release/1.0",
|
|
3
|
-
"repositoryVersion": "0.
|
|
4
|
-
"publishVersion": "0.
|
|
5
|
-
"publishTag": "v0.
|
|
6
|
-
"schemasDigest": "sha256:
|
|
3
|
+
"repositoryVersion": "0.78.0.0",
|
|
4
|
+
"publishVersion": "0.78.0",
|
|
5
|
+
"publishTag": "v0.78.0",
|
|
6
|
+
"schemasDigest": "sha256:f1be566763706a00ed462099e750f17828f9fdc5a5cc6cdc2c5e39431e574360",
|
|
7
7
|
"aiFixturesDigest": "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6",
|
|
8
|
-
"generatedGoDigest": "sha256:
|
|
9
|
-
"generatedTypeScriptDigest": "sha256:
|
|
8
|
+
"generatedGoDigest": "sha256:93ef23399ab41345982298e0a52e6d81be3496605771d7e347219ed11fa28bf1",
|
|
9
|
+
"generatedTypeScriptDigest": "sha256:0975b1595804430ca85ce07f4d624c215a8c5f537f259cc9df8497dea97a927c",
|
|
10
10
|
"generatedExclusions": {
|
|
11
11
|
"gen-go/contract_release.go": "contains the generated aggregate digests (self-reference)",
|
|
12
12
|
"gen-ts/contract-release.ts": "contains the generated aggregate digests (self-reference)"
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
"schema/ai-transform-result.schema.json": "sha256:244e380a36957ab2dcb526ea22aaecb56b53664ce1fda6934d0021c084c99133",
|
|
32
32
|
"schema/ai-verification-evidence.schema.json": "sha256:bdbc762df256d2a8dd0bdda60d4d13915ce40034cd756af9515871d145f10ad9",
|
|
33
33
|
"schema/api-error-response.schema.json": "sha256:3d43d5bdf0b59c944e20509d832e6776c3ecdba4d6c245a9118bbe52062a8304",
|
|
34
|
-
"schema/app-integrations-declaration.schema.json": "sha256:
|
|
34
|
+
"schema/app-integrations-declaration.schema.json": "sha256:af9b36a880b9f277da7691724a5fce59c7d77f2c2c10edc3b23eee48d31a4730",
|
|
35
35
|
"schema/artifact-contract.schema.json": "sha256:8047b461a1c6d07bbe867a259c57bdf5cc0fdf282cf842ec7b683a9e93713b10",
|
|
36
36
|
"schema/binding-classification-subject.schema.json": "sha256:a8825ce652e7e00a18759c4249bd5bcd0cae552dd58440513f867e87f685133c",
|
|
37
37
|
"schema/builder-input-proposal.schema.json": "sha256:fe85cffa6d76b1e1effe1f5d75525f8fe0e1eaa3be4a304e491aa23ad72c0e72",
|
|
38
38
|
"schema/data-dependency.schema.json": "sha256:b4cc2b2484e982cfed64c0f56b8f1e9d1363c71854cd71f845b24fbe7d85c971",
|
|
39
|
-
"schema/data-grant-v2.schema.json": "sha256:
|
|
39
|
+
"schema/data-grant-v2.schema.json": "sha256:86358888f0de6dda04fa73cc1a46b3609eb5850ed21c68b847cb0bca59f5f7c5",
|
|
40
40
|
"schema/data-grant.schema.json": "sha256:e640553831ecc1c01cc9a37fe388b84d0ffeaa0d0050e63712b48f65fa437c8a",
|
|
41
41
|
"schema/data-source.schema.json": "sha256:46ef4ace5fce612fce055813bf4f99956423b46c929993fbbc5dfec497087bad",
|
|
42
|
-
"schema/deploy-request.schema.json": "sha256:
|
|
42
|
+
"schema/deploy-request.schema.json": "sha256:c978406c273fa430db262888f0a8646b14e3057f64b0633780fcd6cfa646bc67",
|
|
43
43
|
"schema/deploy-response.schema.json": "sha256:09064948abdbba7022738285d802ed44648a16ddc2a5b8c2eeb170ae19a66aeb",
|
|
44
44
|
"schema/deployment-app-registration.schema.json": "sha256:eb705c38466ebd97cb76c1ce7a6177d75c2f10381df75976b40d47eeb8dd5712",
|
|
45
45
|
"schema/deployment-continuation.schema.json": "sha256:55b6945439f2c91cd851dfe4bc9484e67a64091b7763b2d8267354b4a8bfae8c",
|
|
46
46
|
"schema/deployment-environment.schema.json": "sha256:35b26cae07da9ee375a842b5e87c4570c8eca06775e9fd6dd46eb9eb8aa0df6c",
|
|
47
47
|
"schema/deployment-preview-retirement.schema.json": "sha256:ccf6b971b7853ca98530272f280fe62cd3aab5425b10b81ae6b717cc949e014f",
|
|
48
|
-
"schema/deployment-source.schema.json": "sha256:
|
|
48
|
+
"schema/deployment-source.schema.json": "sha256:143c5ef3afeec2232707671c19ffe7d5b9c2f0e05a95ca87e675fbc3cd39c8b5",
|
|
49
49
|
"schema/deployment-status-failure.schema.json": "sha256:7cc021d53a07c63b66eb48146d33e8875b64faf77ee927b235795469eb9a1559",
|
|
50
50
|
"schema/deployment-status-request.schema.json": "sha256:1f9f87adc947a252b53b61f71ae17f8c1b8fbc1166f31301a043d11ac257dc66",
|
|
51
51
|
"schema/deployment-status-response.schema.json": "sha256:d65a7d320c50dcc0985eaf59906a25ab05650efdaa76df0db6b21f9649969070",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"schema/error-envelope.schema.json": "sha256:75dccda7dd16fdf8435deda53fc7dbcdc109b65114617a17f11763010c656f90",
|
|
55
55
|
"schema/integration-connect-result.schema.json": "sha256:3f254b67ef739dc1fa395bdc8c4dc93359b16d481dba2a2d777aa5b6f34b7af8",
|
|
56
56
|
"schema/integration-error-details.schema.json": "sha256:5a290584b1542b2b8cdd4966869126180ce29c1f0dd250dca7fb68c05e76b8e9",
|
|
57
|
-
"schema/integration-execute-request.schema.json": "sha256:
|
|
58
|
-
"schema/integration-execute-result.schema.json": "sha256:
|
|
57
|
+
"schema/integration-execute-request.schema.json": "sha256:9538c59ed750530493293cc4f33538b02b4df4247769f9fc4e96c2d8393f72d0",
|
|
58
|
+
"schema/integration-execute-result.schema.json": "sha256:ad70ace26317b5517386e0e412947c68636f53692f0895fb7108dad25e887b8a",
|
|
59
59
|
"schema/internal-configuration-request.schema.json": "sha256:229d44a3458f68dceddfba802e5c1adcd95523a45af29b93b972706b88461a7d",
|
|
60
60
|
"schema/kit-bundle-manifest.schema.json": "sha256:4a9fcdd52ba0d55718ef4dbdab112b145ef90471d9356d4d3fb41e50fe9e400d",
|
|
61
61
|
"schema/kit-lock.schema.json": "sha256:a48154d9471e49a893d928f7b0e1e0bc77708a4a7edce4fdf14073203e0e8987",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"schema/promotion-request.schema.json": "sha256:00e96dfd8ddbdba88ea222941d43f3609ff6c815a79e34f6705cab458101c969",
|
|
64
64
|
"schema/promotion-response.schema.json": "sha256:4129712d2e29d6ef21d93d4bd0bacfd60ada3f2ee0ade852824e64346b817634",
|
|
65
65
|
"schema/resolved-app-serving.schema.json": "sha256:260e30ca16831ddd96b15f44eadc7daa2a5f87a0025588bd6318b236f349ec6b",
|
|
66
|
-
"schema/saas-connection.schema.json": "sha256:
|
|
66
|
+
"schema/saas-connection.schema.json": "sha256:48ffbf6f56361d4a62357e6c28c083517b26479b85de7ddc878353a19e05cc68",
|
|
67
67
|
"schema/sanitized-binding-evidence.schema.json": "sha256:1191ab88e2764df927e5f17837674cebebe068d480da2b2fdb390e589f96b51f",
|
|
68
68
|
"schema/secret-reference.schema.json": "sha256:db4e3c2c6a2dbd72d7ea0f9c91cb3b2343a7e67b601996c6818b2ef08e440895",
|
|
69
69
|
"schema/security-scan-input-v2.schema.json": "sha256:0d418342078c9b5046ea6f4bef3c2c57539285dfee99cc0850d4f0d03739ee13",
|
|
@@ -109,11 +109,11 @@
|
|
|
109
109
|
"gen-go/contracts_test.go": "sha256:56376287cb1548be1b35ab4c65d6f0b558c5d34885f7a47cb3d9e8d786607bf5",
|
|
110
110
|
"gen-go/doc.go": "sha256:316d610ce568597a2ce6f38e9782e34fa5920f6f51ab0866e6d061b8a41cd822",
|
|
111
111
|
"gen-go/error_category.go": "sha256:b2ddea22dcfa030f1a45e721e635485b0bd816cf1f38e7654628a653f5ed4583",
|
|
112
|
-
"gen-go/integration_execute_input_rules.go": "sha256:
|
|
113
|
-
"gen-go/integration_execute_input_rules_test.go": "sha256:
|
|
114
|
-
"gen-go/integration_operations.go": "sha256:
|
|
112
|
+
"gen-go/integration_execute_input_rules.go": "sha256:ccdef3291b53ed5df73df1e515c9d4c57a9b98cc6dc02126edf7e808576b85c4",
|
|
113
|
+
"gen-go/integration_execute_input_rules_test.go": "sha256:4961b4b87012e8cb6e2c64653769f5fd4dd58e1d7d18af459f4f5b69a3e6760d",
|
|
114
|
+
"gen-go/integration_operations.go": "sha256:fab89489825680fee6dfd7d5874e955839691af4cc5245d96caaf36505668db1",
|
|
115
115
|
"gen-go/schema_documents.go": "sha256:c19c0d540f602ee997a84b90e20702d9bc63ed7d27aec267e76c04655fc182e0",
|
|
116
|
-
"gen-go/types.go": "sha256:
|
|
116
|
+
"gen-go/types.go": "sha256:746204705f882de2da44469fdc7be3f256715d2683741671be50dd3740d77a69",
|
|
117
117
|
"gen-go/version_state.go": "sha256:4ef8abb126414c0025cf2c59bc9c79a74ef4a2ff89e8f316cbf05acc872371c1"
|
|
118
118
|
},
|
|
119
119
|
"generatedTypeScript": {
|
|
@@ -138,22 +138,22 @@
|
|
|
138
138
|
"gen-ts/ai-transform-result.ts": "sha256:208c66b2aeb425c0cbcc18b7191f6e8989443f2b2c1690648e0e06cc1448ce25",
|
|
139
139
|
"gen-ts/ai-verification-evidence.ts": "sha256:979439d77f8b47631d1eb3b6c3c54ea6fec41089d2a51dc815fd370b1c4917fc",
|
|
140
140
|
"gen-ts/api-error-response.ts": "sha256:0fd73be282e7a5d72d6c343a4e64d09c232556b16161167f0cffd6278ed7e3d3",
|
|
141
|
-
"gen-ts/app-integrations-declaration.ts": "sha256:
|
|
141
|
+
"gen-ts/app-integrations-declaration.ts": "sha256:860f51367547f05c97f9b048d019ef542788d0c4ae8cbb47e21daaccfb03c6af",
|
|
142
142
|
"gen-ts/artifact-contract.ts": "sha256:4a6dc6d2caaeed4bb2066cc8a333e6e09e5a0d4745e0b1038293d54ab9403aeb",
|
|
143
143
|
"gen-ts/binding-classification-digest-helper.ts": "sha256:40fc7d85b4c3f3ffc5caf7d7950c62d013c83ee42058c7453b2100d95817f167",
|
|
144
144
|
"gen-ts/binding-classification-subject.ts": "sha256:c409a3fd7b942b50419632c51d9a79474fb30d6374bdc79c0e25c73618e800c3",
|
|
145
145
|
"gen-ts/builder-input-proposal.ts": "sha256:b0108c3787873d3cf1a39f00967379418a6766275d3474cfa55f5a9d93ead174",
|
|
146
146
|
"gen-ts/data-dependency.ts": "sha256:259f19e2759395d72ead90b8ed74a6dcef0c2641124f4f182823138cfd19bedf",
|
|
147
|
-
"gen-ts/data-grant-v2.ts": "sha256:
|
|
147
|
+
"gen-ts/data-grant-v2.ts": "sha256:04f737f916a66072512dcce22d921bfac3d939fddedd3867b6a091c1cc95b88a",
|
|
148
148
|
"gen-ts/data-grant.ts": "sha256:2358579d8aa1e57b01a6f2b0eacce5531e7f21ef226404c9809925365e0d6155",
|
|
149
149
|
"gen-ts/data-source.ts": "sha256:f30d4c14c15afbb9530d30af9235844198765984ce1579fa25961d7f07bcfb1f",
|
|
150
|
-
"gen-ts/deploy-request.ts": "sha256:
|
|
150
|
+
"gen-ts/deploy-request.ts": "sha256:913245577a95354849d3a8cb43fbaedbf895efe7b653c8502d25edfa22b7a864",
|
|
151
151
|
"gen-ts/deploy-response.ts": "sha256:364d9f1acf32e491498237cdd3f402d5f8e102f208db7748034f4ec68c6a6137",
|
|
152
152
|
"gen-ts/deployment-app-registration.ts": "sha256:642db3a3f796e5d7089cdb834991277ab1aac5bff37cd5cab42aa2f1c116f0be",
|
|
153
153
|
"gen-ts/deployment-continuation.ts": "sha256:cc9f63af4d0da5086a79103789e4f043783b75b4ed11c6512f044439a551a79c",
|
|
154
154
|
"gen-ts/deployment-environment.ts": "sha256:fc08cabe2e52ebb93cfe84d2019994260f71734c33d0e50e7c63e40ef5b17cef",
|
|
155
155
|
"gen-ts/deployment-preview-retirement.ts": "sha256:309421d08daf0ade163b6457ed0e5410ec6573c40a59423a6cce14780d9c38db",
|
|
156
|
-
"gen-ts/deployment-source.ts": "sha256:
|
|
156
|
+
"gen-ts/deployment-source.ts": "sha256:eb98eff1d03cf5a54de284e365c8966f8136db93e8ab8e2cf1d4e7f1e737ffc0",
|
|
157
157
|
"gen-ts/deployment-status-failure.ts": "sha256:6da2e6eb2f708efa51d416a1ec50f71ea7967cf9be9f93e7ce2e4760dae2cfe3",
|
|
158
158
|
"gen-ts/deployment-status-request.ts": "sha256:7ddccd07ab9f6d0821903a291ab35f903bb055727e03a058b99165ec048f6483",
|
|
159
159
|
"gen-ts/deployment-status-response.ts": "sha256:4f4ba74edf5f5ec743be91656c38cf5eeb85d7573fc357d6144733a32427ffa7",
|
|
@@ -164,10 +164,10 @@
|
|
|
164
164
|
"gen-ts/index.ts": "sha256:57927b9fcddf506785671bbd44cced9f729373e4dd3e3480bc6c37fd05fb59e8",
|
|
165
165
|
"gen-ts/integration-connect-result.ts": "sha256:4b10f169b6e1af364e9b418de21caa9fadbfb77b43cbff77d741cfae0b52180c",
|
|
166
166
|
"gen-ts/integration-error-details.ts": "sha256:e73cb5942373ef88b2d8e03a1de56d5a69e71069ecd14e68396f7edba1f60780",
|
|
167
|
-
"gen-ts/integration-execute-input-rules.ts": "sha256:
|
|
168
|
-
"gen-ts/integration-execute-request.ts": "sha256:
|
|
169
|
-
"gen-ts/integration-execute-result.ts": "sha256:
|
|
170
|
-
"gen-ts/integration-operations.ts": "sha256:
|
|
167
|
+
"gen-ts/integration-execute-input-rules.ts": "sha256:ba2b4c624db36761b78cbd50ec3878b268c536ad1209174620e33833fd22197f",
|
|
168
|
+
"gen-ts/integration-execute-request.ts": "sha256:e22c0b4ae749d3b03a7f3057030c87b6432ccd14bfc2660d2771cfe0cac9c991",
|
|
169
|
+
"gen-ts/integration-execute-result.ts": "sha256:3ec3dfddb5c93b9802607c5fb8dfab499e5a578501fd4ce20d05d511b37e43d8",
|
|
170
|
+
"gen-ts/integration-operations.ts": "sha256:4d0063f8f931f4b61f6d70668f82ff58979586d83d20415c8ad173e6931322d8",
|
|
171
171
|
"gen-ts/internal-configuration-request.ts": "sha256:7032437797473fa1c581d134adef2f3d4b4f4132f482cd17743e9d47097886bc",
|
|
172
172
|
"gen-ts/kit-bundle-manifest.ts": "sha256:2777a268aef8787b81e71d154a7d05f6f5ded09d66f378211ff5493ddb885171",
|
|
173
173
|
"gen-ts/kit-lock.ts": "sha256:00ceeb97e9b7d0187bec00728f5099fd34e775e9cc44c85c4714f7a3a4118ef6",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
"gen-ts/promotion-request.ts": "sha256:9db88cef67f777a16bac628039ec3f582acb9e8cfff6fb592b30d0a0e55abc68",
|
|
176
176
|
"gen-ts/promotion-response.ts": "sha256:f1c9cafac96faeb02a443a31786f67714e818f38d90108e7af41958396524d6f",
|
|
177
177
|
"gen-ts/resolved-app-serving.ts": "sha256:6131a6cc5f784f0d101081d2ce1b96b76b2f904b2c5e7b2809f9ede5878ada1f",
|
|
178
|
-
"gen-ts/saas-connection.ts": "sha256:
|
|
178
|
+
"gen-ts/saas-connection.ts": "sha256:de741fa539a3e6f30097c9d20413928af8d5ad07462d8b1fd9e0fe910c3d987d",
|
|
179
179
|
"gen-ts/sanitized-binding-digest-helper.ts": "sha256:c47d7fdc20500e2e72c23fe39ecdd610fc397c47fcba51335ebec3c380fe6872",
|
|
180
180
|
"gen-ts/sanitized-binding-evidence.ts": "sha256:f3fb7b1d7d2e0929eb0ea981eaf32db3104010647185f6ae59f67167d42538a9",
|
|
181
181
|
"gen-ts/secret-reference.ts": "sha256:731fbcde7315cb4128d5b01bdbe6e6f248f13c7ad8dea04a3a4e927ac4890198",
|
|
@@ -24,6 +24,15 @@ export type DeclaredConnection = {
|
|
|
24
24
|
'basecamp.comment.post'?: UserModeChannelOperation;
|
|
25
25
|
'basecamp.campfire.post'?: UserModeChannelOperation;
|
|
26
26
|
'basecamp.people.list'?: UserModeChannelOperation;
|
|
27
|
+
'sharepoint.list.list'?: UserModeChannelOperation;
|
|
28
|
+
'sharepoint.item.list'?: UserModeChannelOperation;
|
|
29
|
+
'sharepoint.item.create'?: UserModeChannelOperation;
|
|
30
|
+
'sharepoint.item.update'?: UserModeChannelOperation;
|
|
31
|
+
'sharepoint.drive.list'?: UserModeChannelOperation;
|
|
32
|
+
'sharepoint.file.list'?: UserModeChannelOperation;
|
|
33
|
+
'sharepoint.file.search'?: UserModeChannelOperation;
|
|
34
|
+
'sharepoint.file.read'?: UserModeChannelOperation;
|
|
35
|
+
'sharepoint.file.upload'?: UserModeChannelOperation;
|
|
27
36
|
'warehouse.view.read'?: AppModeViewOperation;
|
|
28
37
|
'service.request'?: ServiceOperation;
|
|
29
38
|
};
|
|
@@ -47,7 +56,7 @@ export type ResourceNames = IntegrationAlias[];
|
|
|
47
56
|
*/
|
|
48
57
|
export type ColumnName = string;
|
|
49
58
|
/**
|
|
50
|
-
* Committed `.isomorph/integrations.json`: the app's declared use of tenant-wide integration connections. Keys are logical connection aliases (the governance sourceId); resources are logical names (Slack channel alias, warehouse view name), never IDs, tokens or URLs. The operation set is closed (
|
|
59
|
+
* Committed `.isomorph/integrations.json`: the app's declared use of tenant-wide integration connections. Keys are logical connection aliases (the governance sourceId); resources are logical names (Slack channel alias, warehouse view name), never IDs, tokens or URLs. The operation set is closed (thirty-three operations since 0.78.0, ADR 0018, ADR 0022 and ADR 0024). Each operation carries a fixed identity mode — slack.dm.send=app, slack.user.lookup=app, every gmail.* operation=user, every basecamp.* operation=user, every sharepoint.* operation=user, warehouse.view.read=app, service.request=app — except the declared-mode Slack operations (slack.message.post, and since 0.71.0 slack.channel.history, slack.message.update and slack.message.delete), whose mode the app DECLARES: `app` acts as the company's Slack app (the one audited bot identity; a post goes out under the IT-approved per-app display name when the connection declares `presentation`), `user` acts as the signed-in person after their own consent (reads what they can read, edits what they wrote). The declared mode is the one the app requests access for; an app may hold approved grants for both modes after two requests, and each declared-mode call names which approved mode it runs under (`mode` on the execute request, 0.55.0) — a mode IT did not approve is refused, never swapped for the other. A `saas` connection may declare only the Slack, Gmail, Basecamp and SharePoint operations and a `database` connection only warehouse.view.read; `presentation` is a `saas` connection's optional per-app display name and icon for app-mode Slack posts, shown to IT at approval time and applied only from the approved grant. Gmail is user-mode only (reads, one send); its single resource is the fixed `inbox` alias. Basecamp (0.76.0, ADR 0022) is user-mode only too: basecamp.project.list runs on the fixed `account` alias (the company's pinned Basecamp account) and every other basecamp.* operation on a project alias IT mapped in the connection's `channels` map, so Basecamp itself refuses an id outside that project. SharePoint (0.78.0, ADR 0024) is user-mode only as well: every sharepoint.* operation runs on a site alias IT mapped in the connection's `channels` map (a Microsoft Graph site id), so Graph itself refuses a list, item or file outside that site. slack.dm.send and slack.user.lookup address people by email rather than a channel, so their single resource is the fixed `workspace` alias (the connection's installed workspace), the way Gmail's is `inbox`. This file also owns the shared IntegrationOperation / IntegrationIdentityMode / IntegrationEnvironment / IntegrationConnectionKind / IntegrationPresentation definitions referenced by the other integration schemas.
|
|
51
60
|
*/
|
|
52
61
|
export interface AppIntegrationsDeclaration {
|
|
53
62
|
schema: 'isomorph.app-integrations/2.0';
|
|
@@ -83,7 +92,7 @@ export interface AppModeChannelOperation {
|
|
|
83
92
|
resources: ResourceNames;
|
|
84
93
|
}
|
|
85
94
|
/**
|
|
86
|
-
* Every gmail.* operation (resource: the fixed `inbox` alias)
|
|
95
|
+
* Every gmail.* operation (resource: the fixed `inbox` alias), since 0.76.0 every basecamp.* operation (resource: a project alias from the connection's `channels` map, or the fixed `account` alias for basecamp.project.list) and since 0.78.0 every sharepoint.* operation (resource: a site alias from the connection's `channels` map): user mode only — the app acts as the signed-in person after their own consent.
|
|
87
96
|
*/
|
|
88
97
|
export interface UserModeChannelOperation {
|
|
89
98
|
identity: 'user';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const ContractRepositoryVersion: "0.
|
|
2
|
-
export declare const ContractPublishVersion: "0.
|
|
3
|
-
export declare const ContractPublishTag: "v0.
|
|
4
|
-
export declare const ContractSchemasDigest: "sha256:
|
|
1
|
+
export declare const ContractRepositoryVersion: "0.78.0.0";
|
|
2
|
+
export declare const ContractPublishVersion: "0.78.0";
|
|
3
|
+
export declare const ContractPublishTag: "v0.78.0";
|
|
4
|
+
export declare const ContractSchemasDigest: "sha256:f1be566763706a00ed462099e750f17828f9fdc5a5cc6cdc2c5e39431e574360";
|
|
5
5
|
export declare const ContractAiFixturesDigest: "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
6
|
-
export declare const ContractGeneratedGoDigest: "sha256:
|
|
7
|
-
export declare const ContractGeneratedTypeScriptDigest: "sha256:
|
|
6
|
+
export declare const ContractGeneratedGoDigest: "sha256:93ef23399ab41345982298e0a52e6d81be3496605771d7e347219ed11fa28bf1";
|
|
7
|
+
export declare const ContractGeneratedTypeScriptDigest: "sha256:0975b1595804430ca85ce07f4d624c215a8c5f537f259cc9df8497dea97a927c";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
-
export const ContractRepositoryVersion = "0.
|
|
4
|
-
export const ContractPublishVersion = "0.
|
|
5
|
-
export const ContractPublishTag = "v0.
|
|
6
|
-
export const ContractSchemasDigest = "sha256:
|
|
3
|
+
export const ContractRepositoryVersion = "0.78.0.0";
|
|
4
|
+
export const ContractPublishVersion = "0.78.0";
|
|
5
|
+
export const ContractPublishTag = "v0.78.0";
|
|
6
|
+
export const ContractSchemasDigest = "sha256:f1be566763706a00ed462099e750f17828f9fdc5a5cc6cdc2c5e39431e574360";
|
|
7
7
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
8
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
9
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
8
|
+
export const ContractGeneratedGoDigest = "sha256:93ef23399ab41345982298e0a52e6d81be3496605771d7e347219ed11fa28bf1";
|
|
9
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:0975b1595804430ca85ce07f4d624c215a8c5f537f259cc9df8497dea97a927c";
|
|
@@ -8,7 +8,7 @@ export type DataGrantV2Status = 'REQUESTED' | 'GRANTED' | 'DENIED' | 'REVOKED';
|
|
|
8
8
|
export type DataGrantV2ProvisioningStatus = 'NONE' | 'PENDING' | 'FAILED' | 'DONE';
|
|
9
9
|
export type DataGrantV2CleanupStatus = 'PENDING' | 'FAILED' | 'DONE';
|
|
10
10
|
/**
|
|
11
|
-
* An app's integration grant for one connection, environment and identity mode (control table sk APP#<appId>#IGRANT#<environment>#<sourceId>#<mode>; grantId = base64url(JSON ["v2",appId,environment,sourceId,mode])). Additive to the legacy DataGrant (data-grant.schema.json), which is never consulted by v2 paths. A fresh REQUESTED record carries empty `operations`/`resources` until the attached request is approved; approved resources are structured `{name, columns?}` entries (a Slack channel alias, the fixed Gmail `inbox` alias, a Basecamp project alias or the fixed Basecamp `account` alias, or a warehouse view alias with its approved columns). Expiry is enforced from UTC time on every call and SDK calls never extend it; `expiredAt` is stamped by the recovery sweep afterwards. Status edges live in x-transitions; DENIED and REVOKED are terminal (a regrant after revocation is a new REQUESTED record once cleanup is DONE). Database grants add credentialRef/mintedPrincipal; both hold references only. An app-mode Slack grant may carry `presentation` (0.53.0): the IT-approved display name and icon the app's posts go out under, copied from the approved request and read by every post — never from the call. `identityMode` and `installation` are the deprecated 0.45.0 spellings: the record carries `mode`, and a SaaS grant runs on the connection's single installation.
|
|
11
|
+
* An app's integration grant for one connection, environment and identity mode (control table sk APP#<appId>#IGRANT#<environment>#<sourceId>#<mode>; grantId = base64url(JSON ["v2",appId,environment,sourceId,mode])). Additive to the legacy DataGrant (data-grant.schema.json), which is never consulted by v2 paths. A fresh REQUESTED record carries empty `operations`/`resources` until the attached request is approved; approved resources are structured `{name, columns?}` entries (a Slack channel alias, the fixed Gmail `inbox` alias, a Basecamp project alias or the fixed Basecamp `account` alias, a SharePoint site alias, or a warehouse view alias with its approved columns). Expiry is enforced from UTC time on every call and SDK calls never extend it; `expiredAt` is stamped by the recovery sweep afterwards. Status edges live in x-transitions; DENIED and REVOKED are terminal (a regrant after revocation is a new REQUESTED record once cleanup is DONE). Database grants add credentialRef/mintedPrincipal; both hold references only. An app-mode Slack grant may carry `presentation` (0.53.0): the IT-approved display name and icon the app's posts go out under, copied from the approved request and read by every post — never from the call. `identityMode` and `installation` are the deprecated 0.45.0 spellings: the record carries `mode`, and a SaaS grant runs on the connection's single installation.
|
|
12
12
|
*/
|
|
13
13
|
export interface DataGrantV2 {
|
|
14
14
|
schema: 'harbour.data-grant/2.0';
|
|
@@ -29,11 +29,11 @@ export interface DataGrantV2 {
|
|
|
29
29
|
kind: 'saas' | 'database' | 'service';
|
|
30
30
|
status: DataGrantV2Status;
|
|
31
31
|
/**
|
|
32
|
-
* Approved operations; each must match this grant's mode. Empty until the first approval. At most the
|
|
32
|
+
* Approved operations; each must match this grant's mode. Empty until the first approval. At most the thirty-one SaaS operations (0.78.0: eleven Slack and Gmail, eleven Basecamp, nine SharePoint); a database grant holds one.
|
|
33
33
|
*
|
|
34
|
-
* @maxItems
|
|
34
|
+
* @maxItems 31
|
|
35
35
|
*/
|
|
36
|
-
operations: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'warehouse.view.read' | 'service.request')[];
|
|
36
|
+
operations: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'warehouse.view.read' | 'service.request')[];
|
|
37
37
|
/**
|
|
38
38
|
* Approved logical resources. Never inherited by wildcard. Empty until the first approval.
|
|
39
39
|
*
|
|
@@ -82,7 +82,7 @@ export interface DataGrantV2 {
|
|
|
82
82
|
installation?: string;
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
|
-
* One approved logical resource: a Slack channel alias, the fixed Gmail `inbox` alias, a Basecamp project alias or the fixed Basecamp `account` alias (0.76.0), or a warehouse view alias with the approved columns.
|
|
85
|
+
* One approved logical resource: a Slack channel alias, the fixed Gmail `inbox` alias, a Basecamp project alias or the fixed Basecamp `account` alias (0.76.0), a SharePoint site alias (0.78.0), or a warehouse view alias with the approved columns.
|
|
86
86
|
*/
|
|
87
87
|
export interface IntegrationResource {
|
|
88
88
|
/**
|
|
@@ -65,11 +65,11 @@ export interface DeployRequest {
|
|
|
65
65
|
}
|
|
66
66
|
export interface DeployRequestSource {
|
|
67
67
|
/**
|
|
68
|
-
* Source provider. The
|
|
68
|
+
* Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it.
|
|
69
69
|
*/
|
|
70
|
-
provider: 'github';
|
|
70
|
+
provider: 'github' | 'gitlab';
|
|
71
71
|
/**
|
|
72
|
-
* Credential-free HTTPS
|
|
72
|
+
* Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The deployment control plane checks the host against the tenant's source connection.
|
|
73
73
|
*/
|
|
74
74
|
repositoryUrl: string;
|
|
75
75
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Credential-free
|
|
2
|
+
* Credential-free source repository supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.
|
|
3
3
|
*/
|
|
4
4
|
export interface DeploymentSource {
|
|
5
5
|
/**
|
|
6
|
-
* Source provider. The
|
|
6
|
+
* Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it.
|
|
7
7
|
*/
|
|
8
|
-
provider: 'github';
|
|
8
|
+
provider: 'github' | 'gitlab';
|
|
9
9
|
/**
|
|
10
|
-
* Credential-free HTTPS
|
|
10
|
+
* Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The schema checks only the shape; the deployment control plane checks the host against the tenant's source connection.
|
|
11
11
|
*/
|
|
12
12
|
repositoryUrl: string;
|
|
13
13
|
}
|
|
@@ -56,9 +56,18 @@ export type IntegrationExecuteInputFieldRule = {
|
|
|
56
56
|
} | {
|
|
57
57
|
kind: 'boolean';
|
|
58
58
|
required: boolean;
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'record';
|
|
61
|
+
required: boolean;
|
|
62
|
+
minProperties: number;
|
|
63
|
+
maxProperties: number;
|
|
64
|
+
types: readonly IntegrationExecuteInputRecordValueType[];
|
|
65
|
+
maxLength?: number;
|
|
59
66
|
};
|
|
60
67
|
/** The scalar types a `value` input accepts, alone or in its list form. */
|
|
61
68
|
export type IntegrationExecuteInputValueType = 'string' | 'number' | 'boolean';
|
|
69
|
+
/** The value types a `record` input accepts under each of its keys (0.78.0): a value type or null. */
|
|
70
|
+
export type IntegrationExecuteInputRecordValueType = IntegrationExecuteInputValueType | 'null';
|
|
62
71
|
export type IntegrationExecuteOperationRule = {
|
|
63
72
|
idempotencyKey: boolean;
|
|
64
73
|
fields: Record<string, IntegrationExecuteInputFieldRule>;
|
|
@@ -569,6 +578,199 @@ export declare const IntegrationExecuteInputRules: {
|
|
|
569
578
|
};
|
|
570
579
|
};
|
|
571
580
|
};
|
|
581
|
+
readonly "sharepoint.list.list": {
|
|
582
|
+
readonly idempotencyKey: false;
|
|
583
|
+
readonly fields: {
|
|
584
|
+
readonly pageToken: {
|
|
585
|
+
readonly kind: "string";
|
|
586
|
+
readonly required: false;
|
|
587
|
+
readonly minLength: 1;
|
|
588
|
+
readonly maxLength: 2048;
|
|
589
|
+
};
|
|
590
|
+
};
|
|
591
|
+
};
|
|
592
|
+
readonly "sharepoint.item.list": {
|
|
593
|
+
readonly idempotencyKey: false;
|
|
594
|
+
readonly fields: {
|
|
595
|
+
readonly listId: {
|
|
596
|
+
readonly kind: "string";
|
|
597
|
+
readonly required: true;
|
|
598
|
+
readonly minLength: 0;
|
|
599
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
600
|
+
};
|
|
601
|
+
readonly filter: {
|
|
602
|
+
readonly kind: "string";
|
|
603
|
+
readonly required: false;
|
|
604
|
+
readonly minLength: 1;
|
|
605
|
+
readonly maxLength: 512;
|
|
606
|
+
};
|
|
607
|
+
readonly pageToken: {
|
|
608
|
+
readonly kind: "string";
|
|
609
|
+
readonly required: false;
|
|
610
|
+
readonly minLength: 1;
|
|
611
|
+
readonly maxLength: 2048;
|
|
612
|
+
};
|
|
613
|
+
};
|
|
614
|
+
};
|
|
615
|
+
readonly "sharepoint.item.create": {
|
|
616
|
+
readonly idempotencyKey: true;
|
|
617
|
+
readonly fields: {
|
|
618
|
+
readonly listId: {
|
|
619
|
+
readonly kind: "string";
|
|
620
|
+
readonly required: true;
|
|
621
|
+
readonly minLength: 0;
|
|
622
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
623
|
+
};
|
|
624
|
+
readonly fields: {
|
|
625
|
+
readonly kind: "record";
|
|
626
|
+
readonly required: true;
|
|
627
|
+
readonly minProperties: 1;
|
|
628
|
+
readonly maxProperties: 32;
|
|
629
|
+
readonly types: readonly ["string", "number", "boolean", "null"];
|
|
630
|
+
readonly maxLength: 4000;
|
|
631
|
+
};
|
|
632
|
+
};
|
|
633
|
+
};
|
|
634
|
+
readonly "sharepoint.item.update": {
|
|
635
|
+
readonly idempotencyKey: false;
|
|
636
|
+
readonly fields: {
|
|
637
|
+
readonly listId: {
|
|
638
|
+
readonly kind: "string";
|
|
639
|
+
readonly required: true;
|
|
640
|
+
readonly minLength: 0;
|
|
641
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
642
|
+
};
|
|
643
|
+
readonly itemId: {
|
|
644
|
+
readonly kind: "string";
|
|
645
|
+
readonly required: true;
|
|
646
|
+
readonly minLength: 0;
|
|
647
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
648
|
+
};
|
|
649
|
+
readonly fields: {
|
|
650
|
+
readonly kind: "record";
|
|
651
|
+
readonly required: true;
|
|
652
|
+
readonly minProperties: 1;
|
|
653
|
+
readonly maxProperties: 32;
|
|
654
|
+
readonly types: readonly ["string", "number", "boolean", "null"];
|
|
655
|
+
readonly maxLength: 4000;
|
|
656
|
+
};
|
|
657
|
+
};
|
|
658
|
+
};
|
|
659
|
+
readonly "sharepoint.drive.list": {
|
|
660
|
+
readonly idempotencyKey: false;
|
|
661
|
+
readonly fields: {
|
|
662
|
+
readonly pageToken: {
|
|
663
|
+
readonly kind: "string";
|
|
664
|
+
readonly required: false;
|
|
665
|
+
readonly minLength: 1;
|
|
666
|
+
readonly maxLength: 2048;
|
|
667
|
+
};
|
|
668
|
+
};
|
|
669
|
+
};
|
|
670
|
+
readonly "sharepoint.file.list": {
|
|
671
|
+
readonly idempotencyKey: false;
|
|
672
|
+
readonly fields: {
|
|
673
|
+
readonly driveId: {
|
|
674
|
+
readonly kind: "string";
|
|
675
|
+
readonly required: false;
|
|
676
|
+
readonly minLength: 0;
|
|
677
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
678
|
+
};
|
|
679
|
+
readonly folderId: {
|
|
680
|
+
readonly kind: "string";
|
|
681
|
+
readonly required: false;
|
|
682
|
+
readonly minLength: 0;
|
|
683
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
684
|
+
};
|
|
685
|
+
readonly pageToken: {
|
|
686
|
+
readonly kind: "string";
|
|
687
|
+
readonly required: false;
|
|
688
|
+
readonly minLength: 1;
|
|
689
|
+
readonly maxLength: 2048;
|
|
690
|
+
};
|
|
691
|
+
};
|
|
692
|
+
};
|
|
693
|
+
readonly "sharepoint.file.search": {
|
|
694
|
+
readonly idempotencyKey: false;
|
|
695
|
+
readonly fields: {
|
|
696
|
+
readonly q: {
|
|
697
|
+
readonly kind: "string";
|
|
698
|
+
readonly required: true;
|
|
699
|
+
readonly minLength: 1;
|
|
700
|
+
readonly maxLength: 256;
|
|
701
|
+
};
|
|
702
|
+
readonly driveId: {
|
|
703
|
+
readonly kind: "string";
|
|
704
|
+
readonly required: false;
|
|
705
|
+
readonly minLength: 0;
|
|
706
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
707
|
+
};
|
|
708
|
+
readonly pageToken: {
|
|
709
|
+
readonly kind: "string";
|
|
710
|
+
readonly required: false;
|
|
711
|
+
readonly minLength: 1;
|
|
712
|
+
readonly maxLength: 2048;
|
|
713
|
+
};
|
|
714
|
+
};
|
|
715
|
+
};
|
|
716
|
+
readonly "sharepoint.file.read": {
|
|
717
|
+
readonly idempotencyKey: false;
|
|
718
|
+
readonly fields: {
|
|
719
|
+
readonly fileId: {
|
|
720
|
+
readonly kind: "string";
|
|
721
|
+
readonly required: true;
|
|
722
|
+
readonly minLength: 0;
|
|
723
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
724
|
+
};
|
|
725
|
+
readonly driveId: {
|
|
726
|
+
readonly kind: "string";
|
|
727
|
+
readonly required: false;
|
|
728
|
+
readonly minLength: 0;
|
|
729
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
730
|
+
};
|
|
731
|
+
};
|
|
732
|
+
};
|
|
733
|
+
readonly "sharepoint.file.upload": {
|
|
734
|
+
readonly idempotencyKey: true;
|
|
735
|
+
readonly fields: {
|
|
736
|
+
readonly filename: {
|
|
737
|
+
readonly kind: "string";
|
|
738
|
+
readonly required: true;
|
|
739
|
+
readonly minLength: 1;
|
|
740
|
+
readonly maxLength: 255;
|
|
741
|
+
};
|
|
742
|
+
readonly contentType: {
|
|
743
|
+
readonly kind: "string";
|
|
744
|
+
readonly required: true;
|
|
745
|
+
readonly minLength: 1;
|
|
746
|
+
readonly maxLength: 128;
|
|
747
|
+
};
|
|
748
|
+
readonly dataBase64: {
|
|
749
|
+
readonly kind: "string";
|
|
750
|
+
readonly required: true;
|
|
751
|
+
readonly minLength: 1;
|
|
752
|
+
readonly maxLength: 2796203;
|
|
753
|
+
};
|
|
754
|
+
readonly driveId: {
|
|
755
|
+
readonly kind: "string";
|
|
756
|
+
readonly required: false;
|
|
757
|
+
readonly minLength: 0;
|
|
758
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
759
|
+
};
|
|
760
|
+
readonly folderId: {
|
|
761
|
+
readonly kind: "string";
|
|
762
|
+
readonly required: false;
|
|
763
|
+
readonly minLength: 0;
|
|
764
|
+
readonly pattern: "^[A-Za-z0-9!._,=-]{1,256}$";
|
|
765
|
+
};
|
|
766
|
+
readonly conflict: {
|
|
767
|
+
readonly kind: "enum";
|
|
768
|
+
readonly required: false;
|
|
769
|
+
readonly values: readonly ["rename", "replace", "fail"];
|
|
770
|
+
readonly default: "rename";
|
|
771
|
+
};
|
|
772
|
+
};
|
|
773
|
+
};
|
|
572
774
|
readonly "warehouse.view.read": {
|
|
573
775
|
readonly idempotencyKey: false;
|
|
574
776
|
readonly fields: {
|