@fourier-labs/harbour-contracts 0.84.0 → 0.85.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.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schema": "harbour.contract-release/1.0",
3
- "repositoryVersion": "0.84.0.0",
4
- "publishVersion": "0.84.0",
5
- "publishTag": "v0.84.0",
6
- "schemasDigest": "sha256:95b67750a79742737af7a6f27076b90f8310e7c798059a1e724ef687e5733626",
3
+ "repositoryVersion": "0.85.0.0",
4
+ "publishVersion": "0.85.0",
5
+ "publishTag": "v0.85.0",
6
+ "schemasDigest": "sha256:21e2aecbcb5c267d542bd02948f7af08e715c6b693c9a82bd5f411fbcb824d06",
7
7
  "aiFixturesDigest": "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6",
8
- "generatedGoDigest": "sha256:cc30d209cd0d8e13c0fc9d1533fce8b016b1fb18535e522ad88bce8a7782d9fe",
9
- "generatedTypeScriptDigest": "sha256:b1f5d28fc95d7ca0e12d019dc8407f9d1bfb8fb937733e7a5b9992dce26addf1",
8
+ "generatedGoDigest": "sha256:455df746638c7046878cc52b628b24438f9c8b8f4f114364cd27344c623bca85",
9
+ "generatedTypeScriptDigest": "sha256:9be04d9c634ce7c4331af07209b5cef1c451d96faeed2219d53e5b78f1f525b3",
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,7 +31,7 @@
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:e927502a5be1e37ccb2aaee880d592f2b322184ed47d5a1a0742f5a81d9c2ea1",
34
+ "schema/app-integrations-declaration.schema.json": "sha256:6cfbdff2e6220a3286b982609d2be13be84441b803bc18315e2b6bd019818c5c",
35
35
  "schema/app-sign-in.schema.json": "sha256:2093740131b84a69757c2e474d16e32ff5d0bf0edd6f6f8de62ede7f82988f29",
36
36
  "schema/artifact-contract.schema.json": "sha256:8047b461a1c6d07bbe867a259c57bdf5cc0fdf282cf842ec7b683a9e93713b10",
37
37
  "schema/binding-classification-subject.schema.json": "sha256:a8825ce652e7e00a18759c4249bd5bcd0cae552dd58440513f867e87f685133c",
@@ -57,7 +57,7 @@
57
57
  "schema/identity-context.schema.json": "sha256:a0be3d3499b70f1641887ec66ab5b21ca5ab71063e9209290905738943a36e59",
58
58
  "schema/integration-connect-result.schema.json": "sha256:3f254b67ef739dc1fa395bdc8c4dc93359b16d481dba2a2d777aa5b6f34b7af8",
59
59
  "schema/integration-error-details.schema.json": "sha256:5a290584b1542b2b8cdd4966869126180ce29c1f0dd250dca7fb68c05e76b8e9",
60
- "schema/integration-execute-request.schema.json": "sha256:7906ca8deb270d2fc8ad6b7d000533960be96bdba0b8a51072d98834d0d7a79a",
60
+ "schema/integration-execute-request.schema.json": "sha256:df5a7b954315fe4746ccaeb17b8c091c6838de74ce695b63f5b2a95425f0cd77",
61
61
  "schema/integration-execute-result.schema.json": "sha256:ad70ace26317b5517386e0e412947c68636f53692f0895fb7108dad25e887b8a",
62
62
  "schema/internal-configuration-request.schema.json": "sha256:229d44a3458f68dceddfba802e5c1adcd95523a45af29b93b972706b88461a7d",
63
63
  "schema/kit-bundle-manifest.schema.json": "sha256:4a9fcdd52ba0d55718ef4dbdab112b145ef90471d9356d4d3fb41e50fe9e400d",
@@ -112,11 +112,11 @@
112
112
  "gen-go/contracts_test.go": "sha256:56376287cb1548be1b35ab4c65d6f0b558c5d34885f7a47cb3d9e8d786607bf5",
113
113
  "gen-go/doc.go": "sha256:316d610ce568597a2ce6f38e9782e34fa5920f6f51ab0866e6d061b8a41cd822",
114
114
  "gen-go/error_category.go": "sha256:b2ddea22dcfa030f1a45e721e635485b0bd816cf1f38e7654628a653f5ed4583",
115
- "gen-go/integration_execute_input_rules.go": "sha256:b76e8ff9a5745a2fd70429e2d8dfa3a8efc1f74a1d5c24ef563954c8082a9848",
116
- "gen-go/integration_execute_input_rules_test.go": "sha256:276dc9522cb7554a69982131800562c5435d460cd05dc81e007e1c7ff392980d",
115
+ "gen-go/integration_execute_input_rules.go": "sha256:fba8a56df4b98b4cdc8aa000280291096d88e8ebd4432b9161fc9cbfc512744d",
116
+ "gen-go/integration_execute_input_rules_test.go": "sha256:3c0da073c687aa2d64b8c3ba6cca92c46c9b3c42a25f96db2d45b60410dda1ac",
117
117
  "gen-go/integration_operations.go": "sha256:7efe1e6c238e1a656b8b2e2510f9432b30d251051fbbfca2d439656d0853c12b",
118
118
  "gen-go/schema_documents.go": "sha256:c19c0d540f602ee997a84b90e20702d9bc63ed7d27aec267e76c04655fc182e0",
119
- "gen-go/types.go": "sha256:eaa7b6d48f59af816d81e113abfdc5faaa181e57cfeca4725010f88fe4c09d4e",
119
+ "gen-go/types.go": "sha256:2006fa5aaad10a51354435ee6a1afb0d1590fa21149e4baa842b07884f32223c",
120
120
  "gen-go/version_state.go": "sha256:4ef8abb126414c0025cf2c59bc9c79a74ef4a2ff89e8f316cbf05acc872371c1"
121
121
  },
122
122
  "generatedTypeScript": {
@@ -170,8 +170,8 @@
170
170
  "gen-ts/index.ts": "sha256:8f0b03bc46f0f24489e6a3f7a3ddee23c86dacc8ab2058b3b131c3d9dd75ab29",
171
171
  "gen-ts/integration-connect-result.ts": "sha256:4b10f169b6e1af364e9b418de21caa9fadbfb77b43cbff77d741cfae0b52180c",
172
172
  "gen-ts/integration-error-details.ts": "sha256:e73cb5942373ef88b2d8e03a1de56d5a69e71069ecd14e68396f7edba1f60780",
173
- "gen-ts/integration-execute-input-rules.ts": "sha256:ae92771b636169641e9bac10f0219dbc81a19c229470d963c86abe43de314687",
174
- "gen-ts/integration-execute-request.ts": "sha256:b1edc2bcfe8a42916e2f45032810eff988594dabbdc12ea6e9310560760f491f",
173
+ "gen-ts/integration-execute-input-rules.ts": "sha256:e6a8f940ead0c75a9b0e178f7827d99ba14a1a299b8f977e6f12bff1a37821cb",
174
+ "gen-ts/integration-execute-request.ts": "sha256:ea210dcc35809b2eafdc47051fea457bebe2c7ba884d5cbf15c4cd128e598833",
175
175
  "gen-ts/integration-execute-result.ts": "sha256:3ec3dfddb5c93b9802607c5fb8dfab499e5a578501fd4ce20d05d511b37e43d8",
176
176
  "gen-ts/integration-operations.ts": "sha256:846d4ddc4d4c8d8e9ce42b7990b0929783dab82141f89d5c003088a37b6875ea",
177
177
  "gen-ts/internal-configuration-request.ts": "sha256:7032437797473fa1c581d134adef2f3d4b4f4132f482cd17743e9d47097886bc",
@@ -1,7 +1,7 @@
1
- export declare const ContractRepositoryVersion: "0.84.0.0";
2
- export declare const ContractPublishVersion: "0.84.0";
3
- export declare const ContractPublishTag: "v0.84.0";
4
- export declare const ContractSchemasDigest: "sha256:95b67750a79742737af7a6f27076b90f8310e7c798059a1e724ef687e5733626";
1
+ export declare const ContractRepositoryVersion: "0.85.0.0";
2
+ export declare const ContractPublishVersion: "0.85.0";
3
+ export declare const ContractPublishTag: "v0.85.0";
4
+ export declare const ContractSchemasDigest: "sha256:21e2aecbcb5c267d542bd02948f7af08e715c6b693c9a82bd5f411fbcb824d06";
5
5
  export declare const ContractAiFixturesDigest: "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
6
- export declare const ContractGeneratedGoDigest: "sha256:cc30d209cd0d8e13c0fc9d1533fce8b016b1fb18535e522ad88bce8a7782d9fe";
7
- export declare const ContractGeneratedTypeScriptDigest: "sha256:b1f5d28fc95d7ca0e12d019dc8407f9d1bfb8fb937733e7a5b9992dce26addf1";
6
+ export declare const ContractGeneratedGoDigest: "sha256:455df746638c7046878cc52b628b24438f9c8b8f4f114364cd27344c623bca85";
7
+ export declare const ContractGeneratedTypeScriptDigest: "sha256:9be04d9c634ce7c4331af07209b5cef1c451d96faeed2219d53e5b78f1f525b3";
@@ -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.84.0.0";
4
- export const ContractPublishVersion = "0.84.0";
5
- export const ContractPublishTag = "v0.84.0";
6
- export const ContractSchemasDigest = "sha256:95b67750a79742737af7a6f27076b90f8310e7c798059a1e724ef687e5733626";
3
+ export const ContractRepositoryVersion = "0.85.0.0";
4
+ export const ContractPublishVersion = "0.85.0";
5
+ export const ContractPublishTag = "v0.85.0";
6
+ export const ContractSchemasDigest = "sha256:21e2aecbcb5c267d542bd02948f7af08e715c6b693c9a82bd5f411fbcb824d06";
7
7
  export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
8
- export const ContractGeneratedGoDigest = "sha256:cc30d209cd0d8e13c0fc9d1533fce8b016b1fb18535e522ad88bce8a7782d9fe";
9
- export const ContractGeneratedTypeScriptDigest = "sha256:b1f5d28fc95d7ca0e12d019dc8407f9d1bfb8fb937733e7a5b9992dce26addf1";
8
+ export const ContractGeneratedGoDigest = "sha256:455df746638c7046878cc52b628b24438f9c8b8f4f114364cd27344c623bca85";
9
+ export const ContractGeneratedTypeScriptDigest = "sha256:9be04d9c634ce7c4331af07209b5cef1c451d96faeed2219d53e5b78f1f525b3";
@@ -917,7 +917,7 @@ export declare const IntegrationExecuteInputRules: {
917
917
  readonly kind: "record[]";
918
918
  readonly required: true;
919
919
  readonly minItems: 1;
920
- readonly maxItems: 500;
920
+ readonly maxItems: 5000;
921
921
  readonly minProperties: 1;
922
922
  readonly maxProperties: 64;
923
923
  readonly types: readonly ["string", "number", "boolean", "null"];
@@ -277,7 +277,7 @@ export const IntegrationExecuteInputRules = {
277
277
  "warehouse.table.append": {
278
278
  idempotencyKey: true,
279
279
  fields: {
280
- rows: { kind: "record[]", required: true, minItems: 1, maxItems: 500, minProperties: 1, maxProperties: 64, types: ["string", "number", "boolean", "null"], maxLength: 4000 },
280
+ rows: { kind: "record[]", required: true, minItems: 1, maxItems: 5000, minProperties: 1, maxProperties: 64, types: ["string", "number", "boolean", "null"], maxLength: 4000 },
281
281
  },
282
282
  },
283
283
  "service.request": {
@@ -7,7 +7,7 @@ export type IntegrationExecuteRequest = {
7
7
  */
8
8
  connection: string;
9
9
  /**
10
- * Closed operation set. Extending it is a contracts change. 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number).
10
+ * Closed operation set. Extending it is a contracts change. 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number). 0.85.0 (ADR 0031) raises warehouse.table.append's `rows` from 1..500 to 1..5000 records (the byte cap stays governance's, now 8 MiB), so a downloaded report of a few thousand rows lands in one call.
11
11
  */
12
12
  operation: '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' | 'phone.sms.list' | 'phone.number.get' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request';
13
13
  /**
@@ -235,10 +235,10 @@ export type IntegrationExecuteRequest = {
235
235
  [k: string]: unknown;
236
236
  };
237
237
  /**
238
- * warehouse.table.append (0.82.0): the rows to append, 1..500 of them, every one a record of the approved columns. Governance refuses an unapproved column, a value outside its column type and a request above 1 MB with ROW_VALUE_INVALID; nothing is coerced.
238
+ * warehouse.table.append (0.82.0; 1..5000 since 0.85.0): the rows to append, 1..5000 of them, every one a record of the approved columns. Governance refuses an unapproved column, a value outside its column type and a request above its byte cap (8 MiB) with ROW_VALUE_INVALID; nothing is coerced.
239
239
  *
240
240
  * @minItems 1
241
- * @maxItems 500
241
+ * @maxItems 5000
242
242
  */
243
243
  rows?: {
244
244
  [k: string]: string | number | boolean | null;
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable */
2
2
  // Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
3
3
 
4
- export const ContractRepositoryVersion = "0.84.0.0" as const;
5
- export const ContractPublishVersion = "0.84.0" as const;
6
- export const ContractPublishTag = "v0.84.0" as const;
7
- export const ContractSchemasDigest = "sha256:95b67750a79742737af7a6f27076b90f8310e7c798059a1e724ef687e5733626" as const;
4
+ export const ContractRepositoryVersion = "0.85.0.0" as const;
5
+ export const ContractPublishVersion = "0.85.0" as const;
6
+ export const ContractPublishTag = "v0.85.0" as const;
7
+ export const ContractSchemasDigest = "sha256:21e2aecbcb5c267d542bd02948f7af08e715c6b693c9a82bd5f411fbcb824d06" as const;
8
8
  export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
9
- export const ContractGeneratedGoDigest = "sha256:cc30d209cd0d8e13c0fc9d1533fce8b016b1fb18535e522ad88bce8a7782d9fe" as const;
10
- export const ContractGeneratedTypeScriptDigest = "sha256:b1f5d28fc95d7ca0e12d019dc8407f9d1bfb8fb937733e7a5b9992dce26addf1" as const;
9
+ export const ContractGeneratedGoDigest = "sha256:455df746638c7046878cc52b628b24438f9c8b8f4f114364cd27344c623bca85" as const;
10
+ export const ContractGeneratedTypeScriptDigest = "sha256:9be04d9c634ce7c4331af07209b5cef1c451d96faeed2219d53e5b78f1f525b3" as const;
@@ -305,7 +305,7 @@ export const IntegrationExecuteInputRules = {
305
305
  "warehouse.table.append": {
306
306
  idempotencyKey: true,
307
307
  fields: {
308
- rows: { kind: "record[]", required: true, minItems: 1, maxItems: 500, minProperties: 1, maxProperties: 64, types: ["string", "number", "boolean", "null"], maxLength: 4000 },
308
+ rows: { kind: "record[]", required: true, minItems: 1, maxItems: 5000, minProperties: 1, maxProperties: 64, types: ["string", "number", "boolean", "null"], maxLength: 4000 },
309
309
  },
310
310
  },
311
311
  "service.request": {
@@ -10,7 +10,7 @@ export type IntegrationExecuteRequest = {
10
10
  */
11
11
  connection: string;
12
12
  /**
13
- * Closed operation set. Extending it is a contracts change. 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number).
13
+ * Closed operation set. Extending it is a contracts change. 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number). 0.85.0 (ADR 0031) raises warehouse.table.append's `rows` from 1..500 to 1..5000 records (the byte cap stays governance's, now 8 MiB), so a downloaded report of a few thousand rows lands in one call.
14
14
  */
15
15
  operation:
16
16
  | 'slack.channel.history'
@@ -274,10 +274,10 @@ export type IntegrationExecuteRequest = {
274
274
  [k: string]: unknown;
275
275
  };
276
276
  /**
277
- * warehouse.table.append (0.82.0): the rows to append, 1..500 of them, every one a record of the approved columns. Governance refuses an unapproved column, a value outside its column type and a request above 1 MB with ROW_VALUE_INVALID; nothing is coerced.
277
+ * warehouse.table.append (0.82.0; 1..5000 since 0.85.0): the rows to append, 1..5000 of them, every one a record of the approved columns. Governance refuses an unapproved column, a value outside its column type and a request above its byte cap (8 MiB) with ROW_VALUE_INVALID; nothing is coerced.
278
278
  *
279
279
  * @minItems 1
280
- * @maxItems 500
280
+ * @maxItems 5000
281
281
  */
282
282
  rows?: {
283
283
  [k: string]: string | number | boolean | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fourier-labs/harbour-contracts",
3
- "version": "0.84.0",
3
+ "version": "0.85.0",
4
4
  "description": "Single source of truth for every data shape that crosses a boundary between Isomorph components.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
@@ -90,7 +90,7 @@
90
90
  "warehouse.table.append",
91
91
  "service.request"
92
92
  ],
93
- "description": "Closed operation set. Extending it is a contracts change. 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number)."
93
+ "description": "Closed operation set. Extending it is a contracts change. 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number). 0.85.0 (ADR 0031) raises warehouse.table.append's `rows` from 1..500 to 1..5000 records (the byte cap stays governance's, now 8 MiB), so a downloaded report of a few thousand rows lands in one call."
94
94
  },
95
95
  "IntegrationIdentityMode": {
96
96
  "type": "string",
@@ -363,7 +363,7 @@
363
363
  "rows": {
364
364
  "type": "array",
365
365
  "minItems": 1,
366
- "maxItems": 500,
366
+ "maxItems": 5000,
367
367
  "items": {
368
368
  "type": "object",
369
369
  "minProperties": 1,
@@ -387,7 +387,7 @@
387
387
  },
388
388
  "description": "One row keyed by column name, 1..64 columns; each value a string of at most 4000 characters, a number, a boolean or null. Which columns the alias approves, and whether a value fits its column type (the catalog's columnTypes, which only governance holds), is governance's check \u2014 the way warehouse.view.read's cross-field rules are."
389
389
  },
390
- "description": "warehouse.table.append (0.82.0): the rows to append, 1..500 of them, every one a record of the approved columns. Governance refuses an unapproved column, a value outside its column type and a request above 1 MB with ROW_VALUE_INVALID; nothing is coerced."
390
+ "description": "warehouse.table.append (0.82.0; 1..5000 since 0.85.0): the rows to append, 1..5000 of them, every one a record of the approved columns. Governance refuses an unapproved column, a value outside its column type and a request above its byte cap (8 MiB) with ROW_VALUE_INVALID; nothing is coerced."
391
391
  },
392
392
  "since": {
393
393
  "type": "string",