@fourier-labs/harbour-contracts 0.96.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 +26 -26
- 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 +7 -3
- package/dist/gen-ts/file-arrival.d.ts +1 -1
- 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 +12 -3
- package/gen-ts/file-arrival.ts +5 -1
- 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 +21 -4
- package/schema/file-arrival.schema.json +3 -1
- 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
|
@@ -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
|
|
@@ -70,13 +70,22 @@ export type EventJobs = {
|
|
|
70
70
|
type: 'file.created';
|
|
71
71
|
connection: string;
|
|
72
72
|
resource: string;
|
|
73
|
-
folderId
|
|
73
|
+
folderId?: string;
|
|
74
74
|
driveId?: string;
|
|
75
75
|
/**
|
|
76
76
|
* @minItems 1
|
|
77
|
-
* @maxItems
|
|
77
|
+
* @maxItems 4
|
|
78
78
|
*/
|
|
79
|
-
mimeTypes?: (
|
|
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;
|
|
80
89
|
};
|
|
81
90
|
}[];
|
|
82
91
|
|
package/gen-ts/file-arrival.ts
CHANGED
|
@@ -9,7 +9,11 @@ export type FileArrival = {
|
|
|
9
9
|
folderId: string;
|
|
10
10
|
driveId?: string;
|
|
11
11
|
name: string;
|
|
12
|
-
mimeType:
|
|
12
|
+
mimeType:
|
|
13
|
+
| 'application/pdf'
|
|
14
|
+
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
15
|
+
| 'image/png'
|
|
16
|
+
| 'image/jpeg';
|
|
13
17
|
size: number;
|
|
14
18
|
createdAt: string;
|
|
15
19
|
observedAt: string;
|
|
@@ -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 {
|
package/package.json
CHANGED
|
@@ -141,7 +141,12 @@
|
|
|
141
141
|
"zohobooks.bill.read",
|
|
142
142
|
"zohobooks.invoice.create",
|
|
143
143
|
"zohobooks.invoice.read",
|
|
144
|
-
"zohobooks.invoice.pdf"
|
|
144
|
+
"zohobooks.invoice.pdf",
|
|
145
|
+
"zohobooks.salesorder.list",
|
|
146
|
+
"zohobooks.salesorder.read",
|
|
147
|
+
"zohobooks.invoice.reviseDraft",
|
|
148
|
+
"zohobooks.creditnote.create",
|
|
149
|
+
"zohobooks.creditnote.read"
|
|
145
150
|
],
|
|
146
151
|
"description": "Closed operation set. Extending it is a contracts change. 0.86.0 (ADR 0032) adds the forty-five Google Workspace and Microsoft 365 operations, every one user mode only: on the provider's fixed alias for the signed-in person's own data, calendar.calendar.list, calendar.event.list, calendar.event.read, calendar.event.create (a receipted write: explicit action, idempotencyKey), calendar.event.update and calendar.event.cancel (idempotent at Google, no key); drive.file.list, drive.file.search, drive.file.read, drive.file.upload and drive.folder.create (receipted writes); docs.document.read, docs.document.create (receipted), docs.document.append and docs.text.replace (no key); sheets.spreadsheet.read, sheets.values.read, sheets.values.append (receipted), sheets.values.update and sheets.values.clear (no key), sheets.spreadsheet.create (receipted); outlook.message.list, outlook.message.read, outlook.attachment.read, outlook.message.send and outlook.message.reply (receipted sends, as gmail.message.send), outlook.event.list, outlook.event.read, outlook.event.create (receipted), outlook.event.update and outlook.event.cancel (no key); onedrive.file.list, onedrive.file.search, onedrive.file.read, onedrive.file.upload and onedrive.folder.create (receipted); excel.worksheet.list, excel.range.read, excel.range.update (no key), excel.table.list, excel.row.add and excel.worksheet.add (receipted); and on a Teams channel alias (a key of the connection's `channels` map) teams.message.list, teams.message.post and teams.reply.post (receipted). 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."
|
|
147
152
|
},
|
|
@@ -599,6 +604,21 @@
|
|
|
599
604
|
},
|
|
600
605
|
"zohobooks.invoice.pdf": {
|
|
601
606
|
"$ref": "#/definitions/UserModeChannelOperation"
|
|
607
|
+
},
|
|
608
|
+
"zohobooks.salesorder.list": {
|
|
609
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
610
|
+
},
|
|
611
|
+
"zohobooks.salesorder.read": {
|
|
612
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
613
|
+
},
|
|
614
|
+
"zohobooks.invoice.reviseDraft": {
|
|
615
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
616
|
+
},
|
|
617
|
+
"zohobooks.creditnote.create": {
|
|
618
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
619
|
+
},
|
|
620
|
+
"zohobooks.creditnote.read": {
|
|
621
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
602
622
|
}
|
|
603
623
|
}
|
|
604
624
|
}
|
|
@@ -1085,6 +1105,31 @@
|
|
|
1085
1105
|
"required": [
|
|
1086
1106
|
"zohobooks.invoice.pdf"
|
|
1087
1107
|
]
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"required": [
|
|
1111
|
+
"zohobooks.salesorder.list"
|
|
1112
|
+
]
|
|
1113
|
+
},
|
|
1114
|
+
{
|
|
1115
|
+
"required": [
|
|
1116
|
+
"zohobooks.salesorder.read"
|
|
1117
|
+
]
|
|
1118
|
+
},
|
|
1119
|
+
{
|
|
1120
|
+
"required": [
|
|
1121
|
+
"zohobooks.invoice.reviseDraft"
|
|
1122
|
+
]
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"required": [
|
|
1126
|
+
"zohobooks.creditnote.create"
|
|
1127
|
+
]
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
"required": [
|
|
1131
|
+
"zohobooks.creditnote.read"
|
|
1132
|
+
]
|
|
1088
1133
|
}
|
|
1089
1134
|
]
|
|
1090
1135
|
}
|
|
@@ -1549,6 +1594,31 @@
|
|
|
1549
1594
|
"required": [
|
|
1550
1595
|
"zohobooks.invoice.pdf"
|
|
1551
1596
|
]
|
|
1597
|
+
},
|
|
1598
|
+
{
|
|
1599
|
+
"required": [
|
|
1600
|
+
"zohobooks.salesorder.list"
|
|
1601
|
+
]
|
|
1602
|
+
},
|
|
1603
|
+
{
|
|
1604
|
+
"required": [
|
|
1605
|
+
"zohobooks.salesorder.read"
|
|
1606
|
+
]
|
|
1607
|
+
},
|
|
1608
|
+
{
|
|
1609
|
+
"required": [
|
|
1610
|
+
"zohobooks.invoice.reviseDraft"
|
|
1611
|
+
]
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"required": [
|
|
1615
|
+
"zohobooks.creditnote.create"
|
|
1616
|
+
]
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
"required": [
|
|
1620
|
+
"zohobooks.creditnote.read"
|
|
1621
|
+
]
|
|
1552
1622
|
}
|
|
1553
1623
|
]
|
|
1554
1624
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"status": { "$ref": "#/definitions/DataGrantV2Status" },
|
|
18
18
|
"operations": {
|
|
19
19
|
"type": "array",
|
|
20
|
-
"maxItems":
|
|
20
|
+
"maxItems": 91,
|
|
21
21
|
"uniqueItems": true,
|
|
22
22
|
"items": { "$ref": "app-integrations-declaration.schema.json#/definitions/IntegrationOperation" },
|
|
23
23
|
"description": "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)."
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"description": "Only for SaaS grants mixing reviewed and automatic access: the previously human-reviewed scope. The remaining scope must satisfy current automatic rules. Homogeneous grants continue using approvedBy alone. Governance validates this is a subset of the grant; database behaviour is unchanged.",
|
|
66
66
|
"properties": {
|
|
67
67
|
"operations": {
|
|
68
|
-
"type": "array", "maxItems":
|
|
68
|
+
"type": "array", "maxItems": 91, "uniqueItems": true,
|
|
69
69
|
"items": { "$ref": "app-integrations-declaration.schema.json#/definitions/IntegrationOperation" }
|
|
70
70
|
},
|
|
71
71
|
"resources": {
|