@fourier-labs/harbour-contracts 0.90.0 → 0.91.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 +22 -22
- package/dist/gen-ts/app-integrations-declaration.d.ts +8 -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/integration-execute-input-rules.d.ts +230 -0
- package/dist/gen-ts/integration-execute-input-rules.js +70 -0
- package/dist/gen-ts/integration-execute-request.d.ts +19 -2
- package/dist/gen-ts/integration-execute-result.d.ts +49 -0
- package/dist/gen-ts/integration-operations.d.ts +56 -0
- package/dist/gen-ts/integration-operations.js +72 -0
- package/dist/gen-ts/saas-connection.d.ts +11 -7
- package/gen-ts/app-integrations-declaration.ts +8 -0
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/data-grant-v2.ts +18 -2
- package/gen-ts/integration-execute-input-rules.ts +70 -0
- package/gen-ts/integration-execute-request.ts +27 -2
- package/gen-ts/integration-execute-result.ts +49 -0
- package/gen-ts/integration-operations.ts +72 -0
- package/gen-ts/saas-connection.ts +33 -4
- package/package.json +1 -1
- package/schema/app-integrations-declaration.schema.json +121 -9
- package/schema/data-grant-v2.schema.json +2 -2
- package/schema/integration-execute-request.schema.json +458 -7
- package/schema/integration-execute-result.schema.json +234 -2
- package/schema/saas-connection.schema.json +720 -138
|
@@ -567,4 +567,60 @@ export declare const IntegrationOperations: {
|
|
|
567
567
|
readonly declaredMode: false;
|
|
568
568
|
readonly idempotencyKey: false;
|
|
569
569
|
};
|
|
570
|
+
readonly "zohobooks.contact.list": {
|
|
571
|
+
readonly kind: "saas";
|
|
572
|
+
readonly identities: readonly ["user"];
|
|
573
|
+
readonly readOnly: true;
|
|
574
|
+
readonly declaredMode: false;
|
|
575
|
+
readonly idempotencyKey: false;
|
|
576
|
+
};
|
|
577
|
+
readonly "zohobooks.purchaseorder.list": {
|
|
578
|
+
readonly kind: "saas";
|
|
579
|
+
readonly identities: readonly ["user"];
|
|
580
|
+
readonly readOnly: true;
|
|
581
|
+
readonly declaredMode: false;
|
|
582
|
+
readonly idempotencyKey: false;
|
|
583
|
+
};
|
|
584
|
+
readonly "zohobooks.purchaseorder.read": {
|
|
585
|
+
readonly kind: "saas";
|
|
586
|
+
readonly identities: readonly ["user"];
|
|
587
|
+
readonly readOnly: true;
|
|
588
|
+
readonly declaredMode: false;
|
|
589
|
+
readonly idempotencyKey: false;
|
|
590
|
+
};
|
|
591
|
+
readonly "zohobooks.bill.create": {
|
|
592
|
+
readonly kind: "saas";
|
|
593
|
+
readonly identities: readonly ["user"];
|
|
594
|
+
readonly readOnly: false;
|
|
595
|
+
readonly declaredMode: false;
|
|
596
|
+
readonly idempotencyKey: true;
|
|
597
|
+
};
|
|
598
|
+
readonly "zohobooks.bill.read": {
|
|
599
|
+
readonly kind: "saas";
|
|
600
|
+
readonly identities: readonly ["user"];
|
|
601
|
+
readonly readOnly: true;
|
|
602
|
+
readonly declaredMode: false;
|
|
603
|
+
readonly idempotencyKey: false;
|
|
604
|
+
};
|
|
605
|
+
readonly "zohobooks.invoice.create": {
|
|
606
|
+
readonly kind: "saas";
|
|
607
|
+
readonly identities: readonly ["user"];
|
|
608
|
+
readonly readOnly: false;
|
|
609
|
+
readonly declaredMode: false;
|
|
610
|
+
readonly idempotencyKey: true;
|
|
611
|
+
};
|
|
612
|
+
readonly "zohobooks.invoice.read": {
|
|
613
|
+
readonly kind: "saas";
|
|
614
|
+
readonly identities: readonly ["user"];
|
|
615
|
+
readonly readOnly: true;
|
|
616
|
+
readonly declaredMode: false;
|
|
617
|
+
readonly idempotencyKey: false;
|
|
618
|
+
};
|
|
619
|
+
readonly "zohobooks.invoice.pdf": {
|
|
620
|
+
readonly kind: "saas";
|
|
621
|
+
readonly identities: readonly ["user"];
|
|
622
|
+
readonly readOnly: true;
|
|
623
|
+
readonly declaredMode: false;
|
|
624
|
+
readonly idempotencyKey: false;
|
|
625
|
+
};
|
|
570
626
|
};
|
|
@@ -734,5 +734,77 @@ export const IntegrationOperations = {
|
|
|
734
734
|
"readOnly": false,
|
|
735
735
|
"declaredMode": false,
|
|
736
736
|
"idempotencyKey": false
|
|
737
|
+
},
|
|
738
|
+
"zohobooks.contact.list": {
|
|
739
|
+
"kind": "saas",
|
|
740
|
+
"identities": [
|
|
741
|
+
"user"
|
|
742
|
+
],
|
|
743
|
+
"readOnly": true,
|
|
744
|
+
"declaredMode": false,
|
|
745
|
+
"idempotencyKey": false
|
|
746
|
+
},
|
|
747
|
+
"zohobooks.purchaseorder.list": {
|
|
748
|
+
"kind": "saas",
|
|
749
|
+
"identities": [
|
|
750
|
+
"user"
|
|
751
|
+
],
|
|
752
|
+
"readOnly": true,
|
|
753
|
+
"declaredMode": false,
|
|
754
|
+
"idempotencyKey": false
|
|
755
|
+
},
|
|
756
|
+
"zohobooks.purchaseorder.read": {
|
|
757
|
+
"kind": "saas",
|
|
758
|
+
"identities": [
|
|
759
|
+
"user"
|
|
760
|
+
],
|
|
761
|
+
"readOnly": true,
|
|
762
|
+
"declaredMode": false,
|
|
763
|
+
"idempotencyKey": false
|
|
764
|
+
},
|
|
765
|
+
"zohobooks.bill.create": {
|
|
766
|
+
"kind": "saas",
|
|
767
|
+
"identities": [
|
|
768
|
+
"user"
|
|
769
|
+
],
|
|
770
|
+
"readOnly": false,
|
|
771
|
+
"declaredMode": false,
|
|
772
|
+
"idempotencyKey": true
|
|
773
|
+
},
|
|
774
|
+
"zohobooks.bill.read": {
|
|
775
|
+
"kind": "saas",
|
|
776
|
+
"identities": [
|
|
777
|
+
"user"
|
|
778
|
+
],
|
|
779
|
+
"readOnly": true,
|
|
780
|
+
"declaredMode": false,
|
|
781
|
+
"idempotencyKey": false
|
|
782
|
+
},
|
|
783
|
+
"zohobooks.invoice.create": {
|
|
784
|
+
"kind": "saas",
|
|
785
|
+
"identities": [
|
|
786
|
+
"user"
|
|
787
|
+
],
|
|
788
|
+
"readOnly": false,
|
|
789
|
+
"declaredMode": false,
|
|
790
|
+
"idempotencyKey": true
|
|
791
|
+
},
|
|
792
|
+
"zohobooks.invoice.read": {
|
|
793
|
+
"kind": "saas",
|
|
794
|
+
"identities": [
|
|
795
|
+
"user"
|
|
796
|
+
],
|
|
797
|
+
"readOnly": true,
|
|
798
|
+
"declaredMode": false,
|
|
799
|
+
"idempotencyKey": false
|
|
800
|
+
},
|
|
801
|
+
"zohobooks.invoice.pdf": {
|
|
802
|
+
"kind": "saas",
|
|
803
|
+
"identities": [
|
|
804
|
+
"user"
|
|
805
|
+
],
|
|
806
|
+
"readOnly": true,
|
|
807
|
+
"declaredMode": false,
|
|
808
|
+
"idempotencyKey": false
|
|
737
809
|
}
|
|
738
810
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Slack carries an installation and a channel map; Gmail is user-consent only; Basecamp is user-consent only with an IT-pinned account and a project map in `channels`; SharePoint (0.78.0) is user-consent only, pinned to the company's Microsoft 365 tenant in `account`, with a site map in `channels`. Phone (0.82.0) is app mode only with no installation: the tenant's inbound SMS numbers (E.164) mapped from aliases in `channels`, and the SMS the platform received on them listed by phone.sms.list; since 0.83.0 an app reads the number an alias maps to with phone.number.get. Google Workspace (0.86.0, ADR 0032: calendar, drive, docs, sheets on the Google OAuth client) and Microsoft 365 (outlook, onedrive, excel, teams on the Microsoft client) are user-consent only like Gmail, one connection per provider with its own consent and scopes; the seven personal providers have no `account` and empty `channels` (their one fixed alias is the signed-in person's own calendar, drive, documents, spreadsheets, mailbox or workbooks); teams is pinned to the Microsoft 365 tenant in `account` like SharePoint and maps channel aliases in `channels`.
|
|
3
3
|
*/
|
|
4
|
-
export type SaasProvider = 'slack' | 'gmail' | 'basecamp' | 'sharepoint' | 'phone' | 'calendar' | 'drive' | 'docs' | 'sheets' | 'outlook' | 'onedrive' | 'excel' | 'teams';
|
|
4
|
+
export type SaasProvider = 'slack' | 'gmail' | 'basecamp' | 'sharepoint' | 'phone' | 'calendar' | 'drive' | 'docs' | 'sheets' | 'outlook' | 'onedrive' | 'excel' | 'teams' | 'zohobooks';
|
|
5
5
|
/**
|
|
6
6
|
* DISABLED stops every app call immediately (details.code CONNECTION_DISABLED).
|
|
7
7
|
*/
|
|
@@ -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 86
|
|
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')[];
|
|
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')[];
|
|
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 86
|
|
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')[];
|
|
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')[];
|
|
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
|
*
|
|
@@ -116,6 +116,10 @@ export interface SaasConnection {
|
|
|
116
116
|
installations?: {
|
|
117
117
|
[k: string]: LegacySaasInstallation;
|
|
118
118
|
};
|
|
119
|
+
/**
|
|
120
|
+
* Zoho data center. Chosen by the connection administrator, never by an app call.
|
|
121
|
+
*/
|
|
122
|
+
region?: 'us' | 'in' | 'eu' | 'au' | 'jp' | 'ca' | 'sa' | 'cn' | 'ae';
|
|
119
123
|
}
|
|
120
124
|
/**
|
|
121
125
|
* The one bot installation of the platform-owned provider app in this tenant's workspace.
|
|
@@ -164,9 +168,9 @@ export interface ReusableSaasAccess {
|
|
|
164
168
|
mode: 'app' | 'user';
|
|
165
169
|
/**
|
|
166
170
|
* @minItems 1
|
|
167
|
-
* @maxItems
|
|
171
|
+
* @maxItems 86
|
|
168
172
|
*/
|
|
169
|
-
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')[];
|
|
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')[];
|
|
170
174
|
}
|
|
171
175
|
export interface DevelopmentPreapproval {
|
|
172
176
|
/**
|
|
@@ -86,6 +86,14 @@ export type DeclaredConnection = {
|
|
|
86
86
|
'warehouse.view.read'?: AppModeViewOperation;
|
|
87
87
|
'warehouse.table.append'?: AppModeViewOperation;
|
|
88
88
|
'service.request'?: ServiceOperation;
|
|
89
|
+
'zohobooks.contact.list'?: UserModeChannelOperation;
|
|
90
|
+
'zohobooks.purchaseorder.list'?: UserModeChannelOperation;
|
|
91
|
+
'zohobooks.purchaseorder.read'?: UserModeChannelOperation;
|
|
92
|
+
'zohobooks.bill.create'?: UserModeChannelOperation;
|
|
93
|
+
'zohobooks.bill.read'?: UserModeChannelOperation;
|
|
94
|
+
'zohobooks.invoice.create'?: UserModeChannelOperation;
|
|
95
|
+
'zohobooks.invoice.read'?: UserModeChannelOperation;
|
|
96
|
+
'zohobooks.invoice.pdf'?: UserModeChannelOperation;
|
|
89
97
|
};
|
|
90
98
|
};
|
|
91
99
|
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.91.0.0" as const;
|
|
5
|
+
export const ContractPublishVersion = "0.91.0" as const;
|
|
6
|
+
export const ContractPublishTag = "v0.91.0" as const;
|
|
7
|
+
export const ContractSchemasDigest = "sha256:b6ef945b91544184715900ca739d16f3ad8a40d5307a3b04d71cf7ac39c4fb39" 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:7dc23154d2d8cc3a50733c32bc005d71afa877ab327d89a3c3a7dc8dbec7dc5b" as const;
|
|
10
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:ae301b3932627690ffc23da6368dac812e5e33968dbe65fed52716c4896cbfcb" 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 86
|
|
39
39
|
*/
|
|
40
40
|
operations: (
|
|
41
41
|
| 'slack.channel.history'
|
|
@@ -119,6 +119,14 @@ export interface DataGrantV2 {
|
|
|
119
119
|
| 'warehouse.view.read'
|
|
120
120
|
| 'warehouse.table.append'
|
|
121
121
|
| 'service.request'
|
|
122
|
+
| 'zohobooks.contact.list'
|
|
123
|
+
| 'zohobooks.purchaseorder.list'
|
|
124
|
+
| 'zohobooks.purchaseorder.read'
|
|
125
|
+
| 'zohobooks.bill.create'
|
|
126
|
+
| 'zohobooks.bill.read'
|
|
127
|
+
| 'zohobooks.invoice.create'
|
|
128
|
+
| 'zohobooks.invoice.read'
|
|
129
|
+
| 'zohobooks.invoice.pdf'
|
|
122
130
|
)[];
|
|
123
131
|
/**
|
|
124
132
|
* Approved logical resources. Never inherited by wildcard. Empty until the first approval.
|
|
@@ -189,7 +197,7 @@ export interface IntegrationResource {
|
|
|
189
197
|
*/
|
|
190
198
|
export interface ReviewedIntegrationScope {
|
|
191
199
|
/**
|
|
192
|
-
* @maxItems
|
|
200
|
+
* @maxItems 86
|
|
193
201
|
*/
|
|
194
202
|
operations: (
|
|
195
203
|
| 'slack.channel.history'
|
|
@@ -273,6 +281,14 @@ export interface ReviewedIntegrationScope {
|
|
|
273
281
|
| 'warehouse.view.read'
|
|
274
282
|
| 'warehouse.table.append'
|
|
275
283
|
| 'service.request'
|
|
284
|
+
| 'zohobooks.contact.list'
|
|
285
|
+
| 'zohobooks.purchaseorder.list'
|
|
286
|
+
| 'zohobooks.purchaseorder.read'
|
|
287
|
+
| 'zohobooks.bill.create'
|
|
288
|
+
| 'zohobooks.bill.read'
|
|
289
|
+
| 'zohobooks.invoice.create'
|
|
290
|
+
| 'zohobooks.invoice.read'
|
|
291
|
+
| 'zohobooks.invoice.pdf'
|
|
276
292
|
)[];
|
|
277
293
|
/**
|
|
278
294
|
* @maxItems 64
|
|
@@ -697,6 +697,76 @@ export const IntegrationExecuteInputRules = {
|
|
|
697
697
|
body: { kind: "object", required: false },
|
|
698
698
|
},
|
|
699
699
|
},
|
|
700
|
+
"zohobooks.contact.list": {
|
|
701
|
+
idempotencyKey: false,
|
|
702
|
+
fields: {
|
|
703
|
+
q: { kind: "string", required: false, minLength: 1, maxLength: 256 },
|
|
704
|
+
pageToken: { kind: "string", required: false, minLength: 1, maxLength: 2048 },
|
|
705
|
+
},
|
|
706
|
+
},
|
|
707
|
+
"zohobooks.purchaseorder.list": {
|
|
708
|
+
idempotencyKey: false,
|
|
709
|
+
fields: {
|
|
710
|
+
vendorId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
711
|
+
pageToken: { kind: "string", required: false, minLength: 1, maxLength: 2048 },
|
|
712
|
+
},
|
|
713
|
+
},
|
|
714
|
+
"zohobooks.purchaseorder.read": {
|
|
715
|
+
idempotencyKey: false,
|
|
716
|
+
fields: {
|
|
717
|
+
purchaseOrderId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
718
|
+
},
|
|
719
|
+
},
|
|
720
|
+
"zohobooks.bill.create": {
|
|
721
|
+
idempotencyKey: true,
|
|
722
|
+
fields: {
|
|
723
|
+
vendorId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
724
|
+
documentNumber: { kind: "string", required: true, minLength: 1, maxLength: 100 },
|
|
725
|
+
documentDate: { kind: "string", required: true, minLength: 0, maxLength: 10, pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
|
|
726
|
+
purchaseOrderId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
727
|
+
lineItems: { kind: "object[]", required: true, minItems: 1, maxItems: 100, fields: {
|
|
728
|
+
itemId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
729
|
+
quantity: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
730
|
+
rate: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
731
|
+
taxId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
732
|
+
description: { kind: "string", required: false, minLength: 0, maxLength: 2000 },
|
|
733
|
+
} },
|
|
734
|
+
},
|
|
735
|
+
},
|
|
736
|
+
"zohobooks.bill.read": {
|
|
737
|
+
idempotencyKey: false,
|
|
738
|
+
fields: {
|
|
739
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
740
|
+
},
|
|
741
|
+
},
|
|
742
|
+
"zohobooks.invoice.create": {
|
|
743
|
+
idempotencyKey: true,
|
|
744
|
+
fields: {
|
|
745
|
+
customerId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
746
|
+
documentNumber: { kind: "string", required: false, minLength: 1, maxLength: 100 },
|
|
747
|
+
documentDate: { kind: "string", required: true, minLength: 0, maxLength: 10, pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
|
|
748
|
+
referenceNumber: { kind: "string", required: false, minLength: 1, maxLength: 100 },
|
|
749
|
+
lineItems: { kind: "object[]", required: true, minItems: 1, maxItems: 100, fields: {
|
|
750
|
+
itemId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
751
|
+
quantity: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
752
|
+
rate: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
753
|
+
taxId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
754
|
+
description: { kind: "string", required: false, minLength: 0, maxLength: 2000 },
|
|
755
|
+
} },
|
|
756
|
+
},
|
|
757
|
+
},
|
|
758
|
+
"zohobooks.invoice.read": {
|
|
759
|
+
idempotencyKey: false,
|
|
760
|
+
fields: {
|
|
761
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
762
|
+
},
|
|
763
|
+
},
|
|
764
|
+
"zohobooks.invoice.pdf": {
|
|
765
|
+
idempotencyKey: false,
|
|
766
|
+
fields: {
|
|
767
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
768
|
+
},
|
|
769
|
+
},
|
|
700
770
|
} as const satisfies Record<string, IntegrationExecuteOperationRule>;
|
|
701
771
|
|
|
702
772
|
export type IntegrationExecuteOperation = keyof typeof IntegrationExecuteInputRules;
|
|
@@ -93,7 +93,15 @@ export type IntegrationExecuteRequest = {
|
|
|
93
93
|
| 'teams.reply.post'
|
|
94
94
|
| 'warehouse.view.read'
|
|
95
95
|
| 'warehouse.table.append'
|
|
96
|
-
| 'service.request'
|
|
96
|
+
| 'service.request'
|
|
97
|
+
| 'zohobooks.contact.list'
|
|
98
|
+
| 'zohobooks.purchaseorder.list'
|
|
99
|
+
| 'zohobooks.purchaseorder.read'
|
|
100
|
+
| 'zohobooks.bill.create'
|
|
101
|
+
| 'zohobooks.bill.read'
|
|
102
|
+
| 'zohobooks.invoice.create'
|
|
103
|
+
| 'zohobooks.invoice.read'
|
|
104
|
+
| 'zohobooks.invoice.pdf';
|
|
97
105
|
/**
|
|
98
106
|
* Tenant-wide logical alias of a connection (governance sourceId) or of a resource under it.
|
|
99
107
|
*/
|
|
@@ -383,7 +391,7 @@ export type IntegrationExecuteRequest = {
|
|
|
383
391
|
*/
|
|
384
392
|
allDay?: boolean;
|
|
385
393
|
/**
|
|
386
|
-
*
|
|
394
|
+
* Google Docs document id or Zoho Books document id; each operation restricts its provider format.
|
|
387
395
|
*/
|
|
388
396
|
documentId?: string;
|
|
389
397
|
/**
|
|
@@ -443,6 +451,23 @@ export type IntegrationExecuteRequest = {
|
|
|
443
451
|
* @maxItems 20
|
|
444
452
|
*/
|
|
445
453
|
sheets?: string[];
|
|
454
|
+
vendorId?: string;
|
|
455
|
+
customerId?: string;
|
|
456
|
+
purchaseOrderId?: string;
|
|
457
|
+
documentNumber?: string;
|
|
458
|
+
documentDate?: string;
|
|
459
|
+
referenceNumber?: string;
|
|
460
|
+
/**
|
|
461
|
+
* @minItems 1
|
|
462
|
+
* @maxItems 100
|
|
463
|
+
*/
|
|
464
|
+
lineItems?: {
|
|
465
|
+
itemId: string;
|
|
466
|
+
quantity: string;
|
|
467
|
+
rate: string;
|
|
468
|
+
taxId?: string;
|
|
469
|
+
description?: string;
|
|
470
|
+
}[];
|
|
446
471
|
};
|
|
447
472
|
/**
|
|
448
473
|
* UUID of one explicit Send action; required for the sends (slack.message.post, slack.dm.send, gmail.message.send), the receipted Basecamp writes (basecamp.todo.create, basecamp.message.post, basecamp.comment.post, basecamp.campfire.post; 0.76.0) the receipted SharePoint writes (sharepoint.item.create, sharepoint.file.upload; 0.78.0) the receipted warehouse append (warehouse.table.append; 0.82.0, where it is also the BigQuery load job id) and the receipted Google Workspace and Microsoft 365 writes (0.86.0: calendar.event.create, drive.file.upload, drive.folder.create, docs.document.create, sheets.values.append, sheets.spreadsheet.create, outlook.message.send, outlook.message.reply, outlook.event.create, onedrive.file.upload, onedrive.folder.create, excel.row.add, excel.worksheet.add, teams.message.post, teams.reply.post), refused everywhere else. The same key with the same payload and subject returns the recorded outcome for seven days.
|
|
@@ -289,6 +289,55 @@ export type IntegrationExecuteResult = {
|
|
|
289
289
|
[k: string]: string;
|
|
290
290
|
};
|
|
291
291
|
body?: unknown;
|
|
292
|
+
booksDocument?: {
|
|
293
|
+
id: string;
|
|
294
|
+
number: string;
|
|
295
|
+
status: string;
|
|
296
|
+
currency: string;
|
|
297
|
+
total: string;
|
|
298
|
+
vendorId?: string;
|
|
299
|
+
customerId?: string;
|
|
300
|
+
/**
|
|
301
|
+
* @maxItems 100
|
|
302
|
+
*/
|
|
303
|
+
lineItems: {
|
|
304
|
+
itemId: string;
|
|
305
|
+
quantity: string;
|
|
306
|
+
rate: string;
|
|
307
|
+
total: string;
|
|
308
|
+
description?: string;
|
|
309
|
+
}[];
|
|
310
|
+
};
|
|
311
|
+
/**
|
|
312
|
+
* @maxItems 100
|
|
313
|
+
*/
|
|
314
|
+
booksContacts?: {
|
|
315
|
+
id: string;
|
|
316
|
+
name: string;
|
|
317
|
+
type: string;
|
|
318
|
+
}[];
|
|
319
|
+
/**
|
|
320
|
+
* @maxItems 100
|
|
321
|
+
*/
|
|
322
|
+
booksPurchaseOrders?: {
|
|
323
|
+
id: string;
|
|
324
|
+
number: string;
|
|
325
|
+
status: string;
|
|
326
|
+
currency: string;
|
|
327
|
+
total: string;
|
|
328
|
+
vendorId?: string;
|
|
329
|
+
customerId?: string;
|
|
330
|
+
/**
|
|
331
|
+
* @maxItems 100
|
|
332
|
+
*/
|
|
333
|
+
lineItems: {
|
|
334
|
+
itemId: string;
|
|
335
|
+
quantity: string;
|
|
336
|
+
rate: string;
|
|
337
|
+
total: string;
|
|
338
|
+
description?: string;
|
|
339
|
+
}[];
|
|
340
|
+
}[];
|
|
292
341
|
};
|
|
293
342
|
/**
|
|
294
343
|
* An event's state (0.86.0): confirmed (Google `confirmed`, Graph not cancelled and not tentative), tentative, or cancelled.
|
|
@@ -735,5 +735,77 @@ export const IntegrationOperations = {
|
|
|
735
735
|
"readOnly": false,
|
|
736
736
|
"declaredMode": false,
|
|
737
737
|
"idempotencyKey": false
|
|
738
|
+
},
|
|
739
|
+
"zohobooks.contact.list": {
|
|
740
|
+
"kind": "saas",
|
|
741
|
+
"identities": [
|
|
742
|
+
"user"
|
|
743
|
+
],
|
|
744
|
+
"readOnly": true,
|
|
745
|
+
"declaredMode": false,
|
|
746
|
+
"idempotencyKey": false
|
|
747
|
+
},
|
|
748
|
+
"zohobooks.purchaseorder.list": {
|
|
749
|
+
"kind": "saas",
|
|
750
|
+
"identities": [
|
|
751
|
+
"user"
|
|
752
|
+
],
|
|
753
|
+
"readOnly": true,
|
|
754
|
+
"declaredMode": false,
|
|
755
|
+
"idempotencyKey": false
|
|
756
|
+
},
|
|
757
|
+
"zohobooks.purchaseorder.read": {
|
|
758
|
+
"kind": "saas",
|
|
759
|
+
"identities": [
|
|
760
|
+
"user"
|
|
761
|
+
],
|
|
762
|
+
"readOnly": true,
|
|
763
|
+
"declaredMode": false,
|
|
764
|
+
"idempotencyKey": false
|
|
765
|
+
},
|
|
766
|
+
"zohobooks.bill.create": {
|
|
767
|
+
"kind": "saas",
|
|
768
|
+
"identities": [
|
|
769
|
+
"user"
|
|
770
|
+
],
|
|
771
|
+
"readOnly": false,
|
|
772
|
+
"declaredMode": false,
|
|
773
|
+
"idempotencyKey": true
|
|
774
|
+
},
|
|
775
|
+
"zohobooks.bill.read": {
|
|
776
|
+
"kind": "saas",
|
|
777
|
+
"identities": [
|
|
778
|
+
"user"
|
|
779
|
+
],
|
|
780
|
+
"readOnly": true,
|
|
781
|
+
"declaredMode": false,
|
|
782
|
+
"idempotencyKey": false
|
|
783
|
+
},
|
|
784
|
+
"zohobooks.invoice.create": {
|
|
785
|
+
"kind": "saas",
|
|
786
|
+
"identities": [
|
|
787
|
+
"user"
|
|
788
|
+
],
|
|
789
|
+
"readOnly": false,
|
|
790
|
+
"declaredMode": false,
|
|
791
|
+
"idempotencyKey": true
|
|
792
|
+
},
|
|
793
|
+
"zohobooks.invoice.read": {
|
|
794
|
+
"kind": "saas",
|
|
795
|
+
"identities": [
|
|
796
|
+
"user"
|
|
797
|
+
],
|
|
798
|
+
"readOnly": true,
|
|
799
|
+
"declaredMode": false,
|
|
800
|
+
"idempotencyKey": false
|
|
801
|
+
},
|
|
802
|
+
"zohobooks.invoice.pdf": {
|
|
803
|
+
"kind": "saas",
|
|
804
|
+
"identities": [
|
|
805
|
+
"user"
|
|
806
|
+
],
|
|
807
|
+
"readOnly": true,
|
|
808
|
+
"declaredMode": false,
|
|
809
|
+
"idempotencyKey": false
|
|
738
810
|
}
|
|
739
811
|
} as const;
|
|
@@ -17,7 +17,8 @@ export type SaasProvider =
|
|
|
17
17
|
| 'outlook'
|
|
18
18
|
| 'onedrive'
|
|
19
19
|
| 'excel'
|
|
20
|
-
| 'teams'
|
|
20
|
+
| 'teams'
|
|
21
|
+
| 'zohobooks';
|
|
21
22
|
/**
|
|
22
23
|
* DISABLED stops every app call immediately (details.code CONNECTION_DISABLED).
|
|
23
24
|
*/
|
|
@@ -72,7 +73,7 @@ export interface SaasConnection {
|
|
|
72
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.
|
|
73
74
|
*
|
|
74
75
|
* @minItems 1
|
|
75
|
-
* @maxItems
|
|
76
|
+
* @maxItems 86
|
|
76
77
|
*/
|
|
77
78
|
operations: (
|
|
78
79
|
| 'slack.channel.history'
|
|
@@ -156,11 +157,19 @@ export interface SaasConnection {
|
|
|
156
157
|
| 'warehouse.view.read'
|
|
157
158
|
| 'warehouse.table.append'
|
|
158
159
|
| 'service.request'
|
|
160
|
+
| 'zohobooks.contact.list'
|
|
161
|
+
| 'zohobooks.purchaseorder.list'
|
|
162
|
+
| 'zohobooks.purchaseorder.read'
|
|
163
|
+
| 'zohobooks.bill.create'
|
|
164
|
+
| 'zohobooks.bill.read'
|
|
165
|
+
| 'zohobooks.invoice.create'
|
|
166
|
+
| 'zohobooks.invoice.read'
|
|
167
|
+
| 'zohobooks.invoice.pdf'
|
|
159
168
|
)[];
|
|
160
169
|
/**
|
|
161
170
|
* 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.
|
|
162
171
|
*
|
|
163
|
-
* @maxItems
|
|
172
|
+
* @maxItems 86
|
|
164
173
|
*/
|
|
165
174
|
automaticUserOperations?: (
|
|
166
175
|
| 'slack.channel.history'
|
|
@@ -244,6 +253,14 @@ export interface SaasConnection {
|
|
|
244
253
|
| 'warehouse.view.read'
|
|
245
254
|
| 'warehouse.table.append'
|
|
246
255
|
| 'service.request'
|
|
256
|
+
| 'zohobooks.contact.list'
|
|
257
|
+
| 'zohobooks.purchaseorder.list'
|
|
258
|
+
| 'zohobooks.purchaseorder.read'
|
|
259
|
+
| 'zohobooks.bill.create'
|
|
260
|
+
| 'zohobooks.bill.read'
|
|
261
|
+
| 'zohobooks.invoice.create'
|
|
262
|
+
| 'zohobooks.invoice.read'
|
|
263
|
+
| 'zohobooks.invoice.pdf'
|
|
247
264
|
)[];
|
|
248
265
|
/**
|
|
249
266
|
* 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.
|
|
@@ -297,6 +314,10 @@ export interface SaasConnection {
|
|
|
297
314
|
installations?: {
|
|
298
315
|
[k: string]: LegacySaasInstallation;
|
|
299
316
|
};
|
|
317
|
+
/**
|
|
318
|
+
* Zoho data center. Chosen by the connection administrator, never by an app call.
|
|
319
|
+
*/
|
|
320
|
+
region?: 'us' | 'in' | 'eu' | 'au' | 'jp' | 'ca' | 'sa' | 'cn' | 'ae';
|
|
300
321
|
}
|
|
301
322
|
/**
|
|
302
323
|
* The one bot installation of the platform-owned provider app in this tenant's workspace.
|
|
@@ -345,7 +366,7 @@ export interface ReusableSaasAccess {
|
|
|
345
366
|
mode: 'app' | 'user';
|
|
346
367
|
/**
|
|
347
368
|
* @minItems 1
|
|
348
|
-
* @maxItems
|
|
369
|
+
* @maxItems 86
|
|
349
370
|
*/
|
|
350
371
|
operations: (
|
|
351
372
|
| 'slack.channel.history'
|
|
@@ -429,6 +450,14 @@ export interface ReusableSaasAccess {
|
|
|
429
450
|
| 'warehouse.view.read'
|
|
430
451
|
| 'warehouse.table.append'
|
|
431
452
|
| 'service.request'
|
|
453
|
+
| 'zohobooks.contact.list'
|
|
454
|
+
| 'zohobooks.purchaseorder.list'
|
|
455
|
+
| 'zohobooks.purchaseorder.read'
|
|
456
|
+
| 'zohobooks.bill.create'
|
|
457
|
+
| 'zohobooks.bill.read'
|
|
458
|
+
| 'zohobooks.invoice.create'
|
|
459
|
+
| 'zohobooks.invoice.read'
|
|
460
|
+
| 'zohobooks.invoice.pdf'
|
|
432
461
|
)[];
|
|
433
462
|
}
|
|
434
463
|
export interface DevelopmentPreapproval {
|