@fourier-labs/harbour-contracts 0.95.0 → 0.97.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/contract-release.json +27 -25
- package/dist/gen-ts/app-integrations-declaration.d.ts +5 -0
- 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 +4 -4
- package/dist/gen-ts/deployment-app-registration.d.ts +43 -7
- package/dist/gen-ts/file-arrival.d.ts +13 -0
- package/dist/gen-ts/file-arrival.js +3 -0
- package/dist/gen-ts/index.d.ts +1 -0
- package/dist/gen-ts/index.js +1 -0
- package/dist/gen-ts/integration-execute-input-rules.d.ts +130 -0
- package/dist/gen-ts/integration-execute-input-rules.js +42 -0
- package/dist/gen-ts/integration-execute-request.d.ts +5 -3
- package/dist/gen-ts/integration-execute-result.d.ts +36 -0
- package/dist/gen-ts/integration-operations.d.ts +35 -0
- package/dist/gen-ts/integration-operations.js +45 -0
- package/dist/gen-ts/saas-connection.d.ts +6 -6
- package/gen-ts/app-integrations-declaration.ts +5 -0
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/data-grant-v2.ts +12 -2
- package/gen-ts/deployment-app-registration.ts +55 -9
- package/gen-ts/file-arrival.ts +20 -0
- package/gen-ts/index.ts +1 -0
- package/gen-ts/integration-execute-input-rules.ts +42 -0
- package/gen-ts/integration-execute-request.ts +10 -3
- package/gen-ts/integration-execute-result.ts +36 -0
- package/gen-ts/integration-operations.ts +45 -0
- package/gen-ts/saas-connection.ts +18 -3
- package/package.json +1 -1
- package/schema/app-integrations-declaration.schema.json +71 -1
- package/schema/data-grant-v2.schema.json +2 -2
- package/schema/deployment-app-registration.schema.json +183 -22
- package/schema/file-arrival.schema.json +88 -0
- package/schema/integration-execute-request.schema.json +358 -10
- package/schema/integration-execute-result.schema.json +156 -1
- package/schema/saas-connection.schema.json +3 -3
|
@@ -305,7 +305,11 @@ export type IntegrationExecuteResult = {
|
|
|
305
305
|
description?: string;
|
|
306
306
|
lineItemId?: string;
|
|
307
307
|
purchaseOrderItemId?: string;
|
|
308
|
+
sku?: string;
|
|
309
|
+
taxId?: string;
|
|
310
|
+
isInvoiced?: boolean;
|
|
308
311
|
}[];
|
|
312
|
+
referenceNumber?: string;
|
|
309
313
|
};
|
|
310
314
|
/**
|
|
311
315
|
* @maxItems 100
|
|
@@ -337,7 +341,11 @@ export type IntegrationExecuteResult = {
|
|
|
337
341
|
description?: string;
|
|
338
342
|
lineItemId?: string;
|
|
339
343
|
purchaseOrderItemId?: string;
|
|
344
|
+
sku?: string;
|
|
345
|
+
taxId?: string;
|
|
346
|
+
isInvoiced?: boolean;
|
|
340
347
|
}[];
|
|
348
|
+
referenceNumber?: string;
|
|
341
349
|
}[];
|
|
342
350
|
/**
|
|
343
351
|
* Resolved reply recipients, when supplied by the provider adapter. Outlook uses replyTo when present, otherwise from. Optional for backward compatibility.
|
|
@@ -345,6 +353,34 @@ export type IntegrationExecuteResult = {
|
|
|
345
353
|
* @maxItems 50
|
|
346
354
|
*/
|
|
347
355
|
replyTo?: string[];
|
|
356
|
+
/**
|
|
357
|
+
* @maxItems 100
|
|
358
|
+
*/
|
|
359
|
+
booksSalesOrders?: {
|
|
360
|
+
id: string;
|
|
361
|
+
number: string;
|
|
362
|
+
status: string;
|
|
363
|
+
currency: string;
|
|
364
|
+
total: string;
|
|
365
|
+
vendorId?: string;
|
|
366
|
+
customerId?: string;
|
|
367
|
+
/**
|
|
368
|
+
* @maxItems 100
|
|
369
|
+
*/
|
|
370
|
+
lineItems: {
|
|
371
|
+
itemId: string;
|
|
372
|
+
quantity: string;
|
|
373
|
+
rate: string;
|
|
374
|
+
total: string;
|
|
375
|
+
description?: string;
|
|
376
|
+
lineItemId?: string;
|
|
377
|
+
purchaseOrderItemId?: string;
|
|
378
|
+
sku?: string;
|
|
379
|
+
taxId?: string;
|
|
380
|
+
isInvoiced?: boolean;
|
|
381
|
+
}[];
|
|
382
|
+
referenceNumber?: string;
|
|
383
|
+
}[];
|
|
348
384
|
};
|
|
349
385
|
/**
|
|
350
386
|
* An event's state (0.86.0): confirmed (Google `confirmed`, Graph not cancelled and not tentative), tentative, or cancelled.
|
|
@@ -623,4 +623,39 @@ export declare const IntegrationOperations: {
|
|
|
623
623
|
readonly declaredMode: false;
|
|
624
624
|
readonly idempotencyKey: false;
|
|
625
625
|
};
|
|
626
|
+
readonly "zohobooks.salesorder.list": {
|
|
627
|
+
readonly kind: "saas";
|
|
628
|
+
readonly identities: readonly ["user"];
|
|
629
|
+
readonly readOnly: true;
|
|
630
|
+
readonly declaredMode: false;
|
|
631
|
+
readonly idempotencyKey: false;
|
|
632
|
+
};
|
|
633
|
+
readonly "zohobooks.salesorder.read": {
|
|
634
|
+
readonly kind: "saas";
|
|
635
|
+
readonly identities: readonly ["user"];
|
|
636
|
+
readonly readOnly: true;
|
|
637
|
+
readonly declaredMode: false;
|
|
638
|
+
readonly idempotencyKey: false;
|
|
639
|
+
};
|
|
640
|
+
readonly "zohobooks.invoice.reviseDraft": {
|
|
641
|
+
readonly kind: "saas";
|
|
642
|
+
readonly identities: readonly ["user"];
|
|
643
|
+
readonly readOnly: false;
|
|
644
|
+
readonly declaredMode: false;
|
|
645
|
+
readonly idempotencyKey: true;
|
|
646
|
+
};
|
|
647
|
+
readonly "zohobooks.creditnote.create": {
|
|
648
|
+
readonly kind: "saas";
|
|
649
|
+
readonly identities: readonly ["user"];
|
|
650
|
+
readonly readOnly: false;
|
|
651
|
+
readonly declaredMode: false;
|
|
652
|
+
readonly idempotencyKey: true;
|
|
653
|
+
};
|
|
654
|
+
readonly "zohobooks.creditnote.read": {
|
|
655
|
+
readonly kind: "saas";
|
|
656
|
+
readonly identities: readonly ["user"];
|
|
657
|
+
readonly readOnly: true;
|
|
658
|
+
readonly declaredMode: false;
|
|
659
|
+
readonly idempotencyKey: false;
|
|
660
|
+
};
|
|
626
661
|
};
|
|
@@ -806,5 +806,50 @@ export const IntegrationOperations = {
|
|
|
806
806
|
"readOnly": true,
|
|
807
807
|
"declaredMode": false,
|
|
808
808
|
"idempotencyKey": false
|
|
809
|
+
},
|
|
810
|
+
"zohobooks.salesorder.list": {
|
|
811
|
+
"kind": "saas",
|
|
812
|
+
"identities": [
|
|
813
|
+
"user"
|
|
814
|
+
],
|
|
815
|
+
"readOnly": true,
|
|
816
|
+
"declaredMode": false,
|
|
817
|
+
"idempotencyKey": false
|
|
818
|
+
},
|
|
819
|
+
"zohobooks.salesorder.read": {
|
|
820
|
+
"kind": "saas",
|
|
821
|
+
"identities": [
|
|
822
|
+
"user"
|
|
823
|
+
],
|
|
824
|
+
"readOnly": true,
|
|
825
|
+
"declaredMode": false,
|
|
826
|
+
"idempotencyKey": false
|
|
827
|
+
},
|
|
828
|
+
"zohobooks.invoice.reviseDraft": {
|
|
829
|
+
"kind": "saas",
|
|
830
|
+
"identities": [
|
|
831
|
+
"user"
|
|
832
|
+
],
|
|
833
|
+
"readOnly": false,
|
|
834
|
+
"declaredMode": false,
|
|
835
|
+
"idempotencyKey": true
|
|
836
|
+
},
|
|
837
|
+
"zohobooks.creditnote.create": {
|
|
838
|
+
"kind": "saas",
|
|
839
|
+
"identities": [
|
|
840
|
+
"user"
|
|
841
|
+
],
|
|
842
|
+
"readOnly": false,
|
|
843
|
+
"declaredMode": false,
|
|
844
|
+
"idempotencyKey": true
|
|
845
|
+
},
|
|
846
|
+
"zohobooks.creditnote.read": {
|
|
847
|
+
"kind": "saas",
|
|
848
|
+
"identities": [
|
|
849
|
+
"user"
|
|
850
|
+
],
|
|
851
|
+
"readOnly": true,
|
|
852
|
+
"declaredMode": false,
|
|
853
|
+
"idempotencyKey": false
|
|
809
854
|
}
|
|
810
855
|
};
|
|
@@ -55,15 +55,15 @@ export interface SaasConnection {
|
|
|
55
55
|
* Operations IT allows apps to request on this connection: the provider's own SaaS operations (Slack: slack.channel.history, slack.message.post, slack.message.update, slack.message.delete, slack.dm.send, slack.user.lookup; Gmail: gmail.thread.list, gmail.thread.read, gmail.message.read, gmail.message.send, gmail.attachment.read; Basecamp (0.76.0): 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 (0.78.0): 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; Google Workspace and Microsoft 365 (0.86.0): the calendar.*, drive.*, docs.*, sheets.*, outlook.*, onedrive.*, excel.* and teams.* operations of the connection's provider). Never warehouse.view.read. Phone (0.82.0): phone.sms.list; 0.83.0 adds phone.number.get. Seventy-eight SaaS operations in all since 0.86.0.
|
|
56
56
|
*
|
|
57
57
|
* @minItems 1
|
|
58
|
-
* @maxItems
|
|
58
|
+
* @maxItems 91
|
|
59
59
|
*/
|
|
60
|
-
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' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf')[];
|
|
60
|
+
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' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read')[];
|
|
61
61
|
/**
|
|
62
62
|
* Explicit user-mode operations eligible for automatic app access, subject to the connection operation ceiling and personal consent. Empty means review all; absent inherits company defaults or the existing userModeApproval migration rule. Governance validates provider and mode compatibility. Background execution still requires personal background consent, not a separate admin grant.
|
|
63
63
|
*
|
|
64
|
-
* @maxItems
|
|
64
|
+
* @maxItems 91
|
|
65
65
|
*/
|
|
66
|
-
automaticUserOperations?: ('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' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf')[];
|
|
66
|
+
automaticUserOperations?: ('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' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read')[];
|
|
67
67
|
/**
|
|
68
68
|
* Reusable permissions for admitted builders on explicit shared SaaS resources. Governance checks registered resources, provider/mode compatibility and the connection operation ceiling. Connection version and audit record changes; no per-entry approval metadata.
|
|
69
69
|
*
|
|
@@ -168,9 +168,9 @@ export interface ReusableSaasAccess {
|
|
|
168
168
|
mode: 'app' | 'user';
|
|
169
169
|
/**
|
|
170
170
|
* @minItems 1
|
|
171
|
-
* @maxItems
|
|
171
|
+
* @maxItems 91
|
|
172
172
|
*/
|
|
173
|
-
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' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf')[];
|
|
173
|
+
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' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read')[];
|
|
174
174
|
}
|
|
175
175
|
export interface DevelopmentPreapproval {
|
|
176
176
|
/**
|
|
@@ -94,6 +94,11 @@ export type DeclaredConnection = {
|
|
|
94
94
|
'zohobooks.invoice.create'?: UserModeChannelOperation;
|
|
95
95
|
'zohobooks.invoice.read'?: UserModeChannelOperation;
|
|
96
96
|
'zohobooks.invoice.pdf'?: UserModeChannelOperation;
|
|
97
|
+
'zohobooks.salesorder.list'?: UserModeChannelOperation;
|
|
98
|
+
'zohobooks.salesorder.read'?: UserModeChannelOperation;
|
|
99
|
+
'zohobooks.invoice.reviseDraft'?: UserModeChannelOperation;
|
|
100
|
+
'zohobooks.creditnote.create'?: UserModeChannelOperation;
|
|
101
|
+
'zohobooks.creditnote.read'?: UserModeChannelOperation;
|
|
97
102
|
};
|
|
98
103
|
};
|
|
99
104
|
export type IntegrationConnectionKind = 'saas' | 'database' | 'service';
|
|
@@ -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.
|
|
5
|
-
export const ContractPublishVersion = "0.
|
|
6
|
-
export const ContractPublishTag = "v0.
|
|
7
|
-
export const ContractSchemasDigest = "sha256:
|
|
4
|
+
export const ContractRepositoryVersion = "0.97.0.0" as const;
|
|
5
|
+
export const ContractPublishVersion = "0.97.0" as const;
|
|
6
|
+
export const ContractPublishTag = "v0.97.0" as const;
|
|
7
|
+
export const ContractSchemasDigest = "sha256:96d7ca6fc25f98bb0b35598d8d72eb68cabd841d4b8b644330dea37fbed0916f" as const;
|
|
8
8
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
|
|
9
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
10
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
9
|
+
export const ContractGeneratedGoDigest = "sha256:628254d6676684c7356611eaa434890fa28ad7cf78a487ec407d33b4aa8dad0a" as const;
|
|
10
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:db0823b4134a04e599b159fab0fd439c88160541bdf67c58b568758c98a8dfcc" as const;
|
package/gen-ts/data-grant-v2.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface DataGrantV2 {
|
|
|
35
35
|
/**
|
|
36
36
|
* Approved operations; each must match this grant's mode. Empty until the first approval. At most the seventy-eight SaaS operations (0.86.0: eleven Slack and Gmail, eleven Basecamp, nine SharePoint, two phone, forty-five Google Workspace and Microsoft 365); a database grant holds up to two (warehouse.view.read, warehouse.table.append).
|
|
37
37
|
*
|
|
38
|
-
* @maxItems
|
|
38
|
+
* @maxItems 91
|
|
39
39
|
*/
|
|
40
40
|
operations: (
|
|
41
41
|
| 'slack.channel.history'
|
|
@@ -127,6 +127,11 @@ export interface DataGrantV2 {
|
|
|
127
127
|
| 'zohobooks.invoice.create'
|
|
128
128
|
| 'zohobooks.invoice.read'
|
|
129
129
|
| 'zohobooks.invoice.pdf'
|
|
130
|
+
| 'zohobooks.salesorder.list'
|
|
131
|
+
| 'zohobooks.salesorder.read'
|
|
132
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
133
|
+
| 'zohobooks.creditnote.create'
|
|
134
|
+
| 'zohobooks.creditnote.read'
|
|
130
135
|
)[];
|
|
131
136
|
/**
|
|
132
137
|
* Approved logical resources. Never inherited by wildcard. Empty until the first approval.
|
|
@@ -197,7 +202,7 @@ export interface IntegrationResource {
|
|
|
197
202
|
*/
|
|
198
203
|
export interface ReviewedIntegrationScope {
|
|
199
204
|
/**
|
|
200
|
-
* @maxItems
|
|
205
|
+
* @maxItems 91
|
|
201
206
|
*/
|
|
202
207
|
operations: (
|
|
203
208
|
| 'slack.channel.history'
|
|
@@ -289,6 +294,11 @@ export interface ReviewedIntegrationScope {
|
|
|
289
294
|
| 'zohobooks.invoice.create'
|
|
290
295
|
| 'zohobooks.invoice.read'
|
|
291
296
|
| 'zohobooks.invoice.pdf'
|
|
297
|
+
| 'zohobooks.salesorder.list'
|
|
298
|
+
| 'zohobooks.salesorder.read'
|
|
299
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
300
|
+
| 'zohobooks.creditnote.create'
|
|
301
|
+
| 'zohobooks.creditnote.read'
|
|
292
302
|
)[];
|
|
293
303
|
/**
|
|
294
304
|
* @maxItems 64
|
|
@@ -24,6 +24,9 @@ export type DeploymentAppRegistration = {
|
|
|
24
24
|
* @maxItems 1
|
|
25
25
|
*/
|
|
26
26
|
signInMethods?: ('phone' | 'email')[];
|
|
27
|
+
/**
|
|
28
|
+
* Temporary rolling-release input for email targets; writers use eventTarget. Remove after old deployments are migrated.
|
|
29
|
+
*/
|
|
27
30
|
mailArrivalTarget?:
|
|
28
31
|
| {
|
|
29
32
|
functionArn: string;
|
|
@@ -35,6 +38,17 @@ export type DeploymentAppRegistration = {
|
|
|
35
38
|
jobs: MailArrivalJobs;
|
|
36
39
|
gatewayUrl: string;
|
|
37
40
|
};
|
|
41
|
+
eventTarget?:
|
|
42
|
+
| {
|
|
43
|
+
functionArn: string;
|
|
44
|
+
versionId: string;
|
|
45
|
+
jobs: EventJobs;
|
|
46
|
+
}
|
|
47
|
+
| {
|
|
48
|
+
versionId: string;
|
|
49
|
+
jobs: EventJobs;
|
|
50
|
+
gatewayUrl: string;
|
|
51
|
+
};
|
|
38
52
|
};
|
|
39
53
|
/**
|
|
40
54
|
* @minItems 1
|
|
@@ -42,13 +56,45 @@ export type DeploymentAppRegistration = {
|
|
|
42
56
|
*/
|
|
43
57
|
export type MailArrivalJobs = {
|
|
44
58
|
name: string;
|
|
45
|
-
trigger:
|
|
46
|
-
type: 'email.arrived';
|
|
47
|
-
connection: string;
|
|
48
|
-
resource: 'inbox';
|
|
49
|
-
filter?: {
|
|
50
|
-
from?: string;
|
|
51
|
-
subjectContains?: string;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
59
|
+
trigger: EmailArrivalTrigger;
|
|
54
60
|
}[];
|
|
61
|
+
/**
|
|
62
|
+
* @minItems 1
|
|
63
|
+
* @maxItems 100
|
|
64
|
+
*/
|
|
65
|
+
export type EventJobs = {
|
|
66
|
+
name: string;
|
|
67
|
+
trigger:
|
|
68
|
+
| EmailArrivalTrigger
|
|
69
|
+
| {
|
|
70
|
+
type: 'file.created';
|
|
71
|
+
connection: string;
|
|
72
|
+
resource: string;
|
|
73
|
+
folderId?: string;
|
|
74
|
+
driveId?: string;
|
|
75
|
+
/**
|
|
76
|
+
* @minItems 1
|
|
77
|
+
* @maxItems 4
|
|
78
|
+
*/
|
|
79
|
+
mimeTypes?: (
|
|
80
|
+
| 'application/pdf'
|
|
81
|
+
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
82
|
+
| 'image/png'
|
|
83
|
+
| 'image/jpeg'
|
|
84
|
+
)[];
|
|
85
|
+
/**
|
|
86
|
+
* The app owner may select a folder at runtime within the declared connection and resource.
|
|
87
|
+
*/
|
|
88
|
+
configurableFolder?: true;
|
|
89
|
+
};
|
|
90
|
+
}[];
|
|
91
|
+
|
|
92
|
+
export interface EmailArrivalTrigger {
|
|
93
|
+
type: 'email.arrived';
|
|
94
|
+
connection: string;
|
|
95
|
+
resource: 'inbox';
|
|
96
|
+
filter?: {
|
|
97
|
+
from?: string;
|
|
98
|
+
subjectContains?: string;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
+
|
|
4
|
+
export type FileArrival = {
|
|
5
|
+
type: 'file.created';
|
|
6
|
+
provider: 'drive' | 'sharepoint';
|
|
7
|
+
sourceId: string;
|
|
8
|
+
fileId: string;
|
|
9
|
+
folderId: string;
|
|
10
|
+
driveId?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
mimeType:
|
|
13
|
+
| 'application/pdf'
|
|
14
|
+
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
15
|
+
| 'image/png'
|
|
16
|
+
| 'image/jpeg';
|
|
17
|
+
size: number;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
observedAt: string;
|
|
20
|
+
};
|
package/gen-ts/index.ts
CHANGED
|
@@ -48,6 +48,7 @@ export * from './error-category-registry.js';
|
|
|
48
48
|
export * from './error-category.js';
|
|
49
49
|
export * from './error-envelope.js';
|
|
50
50
|
export * from './external-sign-in.js';
|
|
51
|
+
export * from './file-arrival.js';
|
|
51
52
|
export * from './identity-context.js';
|
|
52
53
|
export * from './integration-connect-result.js';
|
|
53
54
|
export * from './integration-error-details.js';
|
|
@@ -758,6 +758,7 @@ export const IntegrationExecuteInputRules = {
|
|
|
758
758
|
rate: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
759
759
|
taxId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
760
760
|
description: { kind: "string", required: false, minLength: 0, maxLength: 2000 },
|
|
761
|
+
salesOrderItemId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
761
762
|
} },
|
|
762
763
|
},
|
|
763
764
|
},
|
|
@@ -773,6 +774,47 @@ export const IntegrationExecuteInputRules = {
|
|
|
773
774
|
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
774
775
|
},
|
|
775
776
|
},
|
|
777
|
+
"zohobooks.salesorder.list": {
|
|
778
|
+
idempotencyKey: false,
|
|
779
|
+
fields: {
|
|
780
|
+
customerId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
781
|
+
pageToken: { kind: "string", required: false, minLength: 1, maxLength: 2048 },
|
|
782
|
+
},
|
|
783
|
+
},
|
|
784
|
+
"zohobooks.salesorder.read": {
|
|
785
|
+
idempotencyKey: false,
|
|
786
|
+
fields: {
|
|
787
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
788
|
+
},
|
|
789
|
+
},
|
|
790
|
+
"zohobooks.invoice.reviseDraft": {
|
|
791
|
+
idempotencyKey: true,
|
|
792
|
+
fields: {
|
|
793
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
794
|
+
lineItems: { kind: "object[]", required: true, minItems: 1, maxItems: 100, fields: {
|
|
795
|
+
lineItemId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
796
|
+
quantity: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
797
|
+
} },
|
|
798
|
+
},
|
|
799
|
+
},
|
|
800
|
+
"zohobooks.creditnote.create": {
|
|
801
|
+
idempotencyKey: true,
|
|
802
|
+
fields: {
|
|
803
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
804
|
+
documentDate: { kind: "string", required: true, minLength: 0, maxLength: 10, pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
|
|
805
|
+
referenceNumber: { kind: "string", required: false, minLength: 1, maxLength: 100 },
|
|
806
|
+
lineItems: { kind: "object[]", required: true, minItems: 1, maxItems: 100, fields: {
|
|
807
|
+
lineItemId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
808
|
+
quantity: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
809
|
+
} },
|
|
810
|
+
},
|
|
811
|
+
},
|
|
812
|
+
"zohobooks.creditnote.read": {
|
|
813
|
+
idempotencyKey: false,
|
|
814
|
+
fields: {
|
|
815
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
816
|
+
},
|
|
817
|
+
},
|
|
776
818
|
} as const satisfies Record<string, IntegrationExecuteOperationRule>;
|
|
777
819
|
|
|
778
820
|
export type IntegrationExecuteOperation = keyof typeof IntegrationExecuteInputRules;
|
|
@@ -101,7 +101,12 @@ export type IntegrationExecuteRequest = {
|
|
|
101
101
|
| 'zohobooks.bill.read'
|
|
102
102
|
| 'zohobooks.invoice.create'
|
|
103
103
|
| 'zohobooks.invoice.read'
|
|
104
|
-
| 'zohobooks.invoice.pdf'
|
|
104
|
+
| 'zohobooks.invoice.pdf'
|
|
105
|
+
| 'zohobooks.salesorder.list'
|
|
106
|
+
| 'zohobooks.salesorder.read'
|
|
107
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
108
|
+
| 'zohobooks.creditnote.create'
|
|
109
|
+
| 'zohobooks.creditnote.read';
|
|
105
110
|
/**
|
|
106
111
|
* Tenant-wide logical alias of a connection (governance sourceId) or of a resource under it.
|
|
107
112
|
*/
|
|
@@ -462,12 +467,14 @@ export type IntegrationExecuteRequest = {
|
|
|
462
467
|
* @maxItems 100
|
|
463
468
|
*/
|
|
464
469
|
lineItems?: {
|
|
465
|
-
itemId
|
|
470
|
+
itemId?: string;
|
|
466
471
|
quantity: string;
|
|
467
|
-
rate
|
|
472
|
+
rate?: string;
|
|
468
473
|
taxId?: string;
|
|
469
474
|
description?: string;
|
|
470
475
|
purchaseOrderItemId?: string;
|
|
476
|
+
lineItemId?: string;
|
|
477
|
+
salesOrderItemId?: string;
|
|
471
478
|
}[];
|
|
472
479
|
};
|
|
473
480
|
/**
|
|
@@ -308,7 +308,11 @@ export type IntegrationExecuteResult = {
|
|
|
308
308
|
description?: string;
|
|
309
309
|
lineItemId?: string;
|
|
310
310
|
purchaseOrderItemId?: string;
|
|
311
|
+
sku?: string;
|
|
312
|
+
taxId?: string;
|
|
313
|
+
isInvoiced?: boolean;
|
|
311
314
|
}[];
|
|
315
|
+
referenceNumber?: string;
|
|
312
316
|
};
|
|
313
317
|
/**
|
|
314
318
|
* @maxItems 100
|
|
@@ -340,7 +344,11 @@ export type IntegrationExecuteResult = {
|
|
|
340
344
|
description?: string;
|
|
341
345
|
lineItemId?: string;
|
|
342
346
|
purchaseOrderItemId?: string;
|
|
347
|
+
sku?: string;
|
|
348
|
+
taxId?: string;
|
|
349
|
+
isInvoiced?: boolean;
|
|
343
350
|
}[];
|
|
351
|
+
referenceNumber?: string;
|
|
344
352
|
}[];
|
|
345
353
|
/**
|
|
346
354
|
* Resolved reply recipients, when supplied by the provider adapter. Outlook uses replyTo when present, otherwise from. Optional for backward compatibility.
|
|
@@ -348,6 +356,34 @@ export type IntegrationExecuteResult = {
|
|
|
348
356
|
* @maxItems 50
|
|
349
357
|
*/
|
|
350
358
|
replyTo?: string[];
|
|
359
|
+
/**
|
|
360
|
+
* @maxItems 100
|
|
361
|
+
*/
|
|
362
|
+
booksSalesOrders?: {
|
|
363
|
+
id: string;
|
|
364
|
+
number: string;
|
|
365
|
+
status: string;
|
|
366
|
+
currency: string;
|
|
367
|
+
total: string;
|
|
368
|
+
vendorId?: string;
|
|
369
|
+
customerId?: string;
|
|
370
|
+
/**
|
|
371
|
+
* @maxItems 100
|
|
372
|
+
*/
|
|
373
|
+
lineItems: {
|
|
374
|
+
itemId: string;
|
|
375
|
+
quantity: string;
|
|
376
|
+
rate: string;
|
|
377
|
+
total: string;
|
|
378
|
+
description?: string;
|
|
379
|
+
lineItemId?: string;
|
|
380
|
+
purchaseOrderItemId?: string;
|
|
381
|
+
sku?: string;
|
|
382
|
+
taxId?: string;
|
|
383
|
+
isInvoiced?: boolean;
|
|
384
|
+
}[];
|
|
385
|
+
referenceNumber?: string;
|
|
386
|
+
}[];
|
|
351
387
|
};
|
|
352
388
|
/**
|
|
353
389
|
* An event's state (0.86.0): confirmed (Google `confirmed`, Graph not cancelled and not tentative), tentative, or cancelled.
|
|
@@ -807,5 +807,50 @@ export const IntegrationOperations = {
|
|
|
807
807
|
"readOnly": true,
|
|
808
808
|
"declaredMode": false,
|
|
809
809
|
"idempotencyKey": false
|
|
810
|
+
},
|
|
811
|
+
"zohobooks.salesorder.list": {
|
|
812
|
+
"kind": "saas",
|
|
813
|
+
"identities": [
|
|
814
|
+
"user"
|
|
815
|
+
],
|
|
816
|
+
"readOnly": true,
|
|
817
|
+
"declaredMode": false,
|
|
818
|
+
"idempotencyKey": false
|
|
819
|
+
},
|
|
820
|
+
"zohobooks.salesorder.read": {
|
|
821
|
+
"kind": "saas",
|
|
822
|
+
"identities": [
|
|
823
|
+
"user"
|
|
824
|
+
],
|
|
825
|
+
"readOnly": true,
|
|
826
|
+
"declaredMode": false,
|
|
827
|
+
"idempotencyKey": false
|
|
828
|
+
},
|
|
829
|
+
"zohobooks.invoice.reviseDraft": {
|
|
830
|
+
"kind": "saas",
|
|
831
|
+
"identities": [
|
|
832
|
+
"user"
|
|
833
|
+
],
|
|
834
|
+
"readOnly": false,
|
|
835
|
+
"declaredMode": false,
|
|
836
|
+
"idempotencyKey": true
|
|
837
|
+
},
|
|
838
|
+
"zohobooks.creditnote.create": {
|
|
839
|
+
"kind": "saas",
|
|
840
|
+
"identities": [
|
|
841
|
+
"user"
|
|
842
|
+
],
|
|
843
|
+
"readOnly": false,
|
|
844
|
+
"declaredMode": false,
|
|
845
|
+
"idempotencyKey": true
|
|
846
|
+
},
|
|
847
|
+
"zohobooks.creditnote.read": {
|
|
848
|
+
"kind": "saas",
|
|
849
|
+
"identities": [
|
|
850
|
+
"user"
|
|
851
|
+
],
|
|
852
|
+
"readOnly": true,
|
|
853
|
+
"declaredMode": false,
|
|
854
|
+
"idempotencyKey": false
|
|
810
855
|
}
|
|
811
856
|
} as const;
|
|
@@ -73,7 +73,7 @@ export interface SaasConnection {
|
|
|
73
73
|
* Operations IT allows apps to request on this connection: the provider's own SaaS operations (Slack: slack.channel.history, slack.message.post, slack.message.update, slack.message.delete, slack.dm.send, slack.user.lookup; Gmail: gmail.thread.list, gmail.thread.read, gmail.message.read, gmail.message.send, gmail.attachment.read; Basecamp (0.76.0): 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 (0.78.0): 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; Google Workspace and Microsoft 365 (0.86.0): the calendar.*, drive.*, docs.*, sheets.*, outlook.*, onedrive.*, excel.* and teams.* operations of the connection's provider). Never warehouse.view.read. Phone (0.82.0): phone.sms.list; 0.83.0 adds phone.number.get. Seventy-eight SaaS operations in all since 0.86.0.
|
|
74
74
|
*
|
|
75
75
|
* @minItems 1
|
|
76
|
-
* @maxItems
|
|
76
|
+
* @maxItems 91
|
|
77
77
|
*/
|
|
78
78
|
operations: (
|
|
79
79
|
| 'slack.channel.history'
|
|
@@ -165,11 +165,16 @@ export interface SaasConnection {
|
|
|
165
165
|
| 'zohobooks.invoice.create'
|
|
166
166
|
| 'zohobooks.invoice.read'
|
|
167
167
|
| 'zohobooks.invoice.pdf'
|
|
168
|
+
| 'zohobooks.salesorder.list'
|
|
169
|
+
| 'zohobooks.salesorder.read'
|
|
170
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
171
|
+
| 'zohobooks.creditnote.create'
|
|
172
|
+
| 'zohobooks.creditnote.read'
|
|
168
173
|
)[];
|
|
169
174
|
/**
|
|
170
175
|
* Explicit user-mode operations eligible for automatic app access, subject to the connection operation ceiling and personal consent. Empty means review all; absent inherits company defaults or the existing userModeApproval migration rule. Governance validates provider and mode compatibility. Background execution still requires personal background consent, not a separate admin grant.
|
|
171
176
|
*
|
|
172
|
-
* @maxItems
|
|
177
|
+
* @maxItems 91
|
|
173
178
|
*/
|
|
174
179
|
automaticUserOperations?: (
|
|
175
180
|
| 'slack.channel.history'
|
|
@@ -261,6 +266,11 @@ export interface SaasConnection {
|
|
|
261
266
|
| 'zohobooks.invoice.create'
|
|
262
267
|
| 'zohobooks.invoice.read'
|
|
263
268
|
| 'zohobooks.invoice.pdf'
|
|
269
|
+
| 'zohobooks.salesorder.list'
|
|
270
|
+
| 'zohobooks.salesorder.read'
|
|
271
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
272
|
+
| 'zohobooks.creditnote.create'
|
|
273
|
+
| 'zohobooks.creditnote.read'
|
|
264
274
|
)[];
|
|
265
275
|
/**
|
|
266
276
|
* Reusable permissions for admitted builders on explicit shared SaaS resources. Governance checks registered resources, provider/mode compatibility and the connection operation ceiling. Connection version and audit record changes; no per-entry approval metadata.
|
|
@@ -366,7 +376,7 @@ export interface ReusableSaasAccess {
|
|
|
366
376
|
mode: 'app' | 'user';
|
|
367
377
|
/**
|
|
368
378
|
* @minItems 1
|
|
369
|
-
* @maxItems
|
|
379
|
+
* @maxItems 91
|
|
370
380
|
*/
|
|
371
381
|
operations: (
|
|
372
382
|
| 'slack.channel.history'
|
|
@@ -458,6 +468,11 @@ export interface ReusableSaasAccess {
|
|
|
458
468
|
| 'zohobooks.invoice.create'
|
|
459
469
|
| 'zohobooks.invoice.read'
|
|
460
470
|
| 'zohobooks.invoice.pdf'
|
|
471
|
+
| 'zohobooks.salesorder.list'
|
|
472
|
+
| 'zohobooks.salesorder.read'
|
|
473
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
474
|
+
| 'zohobooks.creditnote.create'
|
|
475
|
+
| 'zohobooks.creditnote.read'
|
|
461
476
|
)[];
|
|
462
477
|
}
|
|
463
478
|
export interface DevelopmentPreapproval {
|