@lssm/example.locale-jurisdiction-gate 0.0.0-canary-20251217063201 → 0.0.0-canary-20251217072406
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/.turbo/turbo-build$colon$bundle.log +231 -197
- package/.turbo/turbo-build.log +232 -43
- package/CHANGELOG.md +3 -3
- package/dist/contracts/assistant.d.ts +59 -59
- package/dist/contracts/assistant.js +117 -1
- package/dist/contracts/index.js +3 -1
- package/dist/docs/index.js +1 -1
- package/dist/docs/locale-jurisdiction-gate.docblock.js +37 -3
- package/dist/entities/index.js +3 -1
- package/dist/entities/models.d.ts +48 -48
- package/dist/entities/models.js +170 -1
- package/dist/events.js +102 -1
- package/dist/example.js +39 -1
- package/dist/handlers/demo.handlers.js +85 -1
- package/dist/handlers/index.js +3 -1
- package/dist/index.js +12 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js +88 -1
- package/dist/libs/contracts/dist/client/index.js +5 -1
- package/dist/libs/contracts/dist/client/react/feature-render.js +2 -1
- package/dist/libs/contracts/dist/client/react/form-render.js +4 -1
- package/dist/libs/contracts/dist/client/react/index.js +4 -1
- package/dist/libs/contracts/dist/contract-registry/index.js +1 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js +60 -1
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +16 -76
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +16 -350
- package/dist/libs/contracts/dist/docs/index.js +29 -1
- package/dist/libs/contracts/dist/docs/presentations.js +71 -1
- package/dist/libs/contracts/dist/docs/registry.js +44 -1
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +16 -383
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +16 -68
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +16 -140
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +16 -86
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +16 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +24 -2
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +21 -2
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +16 -213
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +73 -5
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +37 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +16 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +20 -262
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +48 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +24 -2
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +23 -2
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +25 -16
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +67 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +22 -2
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +40 -36
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +47 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +23 -2
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +36 -3
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +20 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +36 -3
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +20 -1
- package/dist/libs/contracts/dist/events.js +10 -1
- package/dist/libs/contracts/dist/experiments/evaluator.js +1 -1
- package/dist/libs/contracts/dist/index.js +71 -1
- package/dist/libs/contracts/dist/install.js +2 -1
- package/dist/libs/contracts/dist/integrations/contracts.js +377 -1
- package/dist/libs/contracts/dist/integrations/index.js +18 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +228 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +159 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +3 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +210 -1
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +242 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +13 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +52 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +75 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +87 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +66 -1
- package/dist/libs/contracts/dist/integrations/providers/index.js +11 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +68 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +68 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js +116 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +73 -1
- package/dist/libs/contracts/dist/integrations/providers/registry.js +10 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +83 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +61 -1
- package/dist/libs/contracts/dist/jsonschema.js +1 -1
- package/dist/libs/contracts/dist/knowledge/contracts.js +306 -1
- package/dist/libs/contracts/dist/knowledge/index.js +7 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +34 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +34 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +38 -1
- package/dist/libs/contracts/dist/knowledge/spaces/index.js +6 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +34 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +37 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +34 -1
- package/dist/libs/contracts/dist/llm/exporters.js +19 -1
- package/dist/libs/contracts/dist/llm/index.js +2 -1
- package/dist/libs/contracts/dist/llm/prompts.js +1 -1
- package/dist/libs/contracts/dist/onboarding-base.js +196 -1
- package/dist/libs/contracts/dist/openapi.js +1 -1
- package/dist/libs/contracts/dist/ownership.js +21 -1
- package/dist/libs/contracts/dist/presentations.js +1 -1
- package/dist/libs/contracts/dist/presentations.v2.js +11 -1
- package/dist/libs/contracts/dist/prompt.js +1 -1
- package/dist/libs/contracts/dist/promptRegistry.js +1 -1
- package/dist/libs/contracts/dist/regenerator/index.js +1 -1
- package/dist/libs/contracts/dist/regenerator/service.js +6 -1
- package/dist/libs/contracts/dist/registry.js +2 -1
- package/dist/libs/contracts/dist/resources.js +1 -1
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +2 -1
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +49 -1
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +236 -1
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +39 -1
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +1 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +2 -1
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +1 -1
- package/dist/libs/contracts/dist/schema/dist/index.js +6 -1
- package/dist/libs/contracts/dist/server/graphql-pothos.js +6 -1
- package/dist/libs/contracts/dist/server/index.js +8 -1
- package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +4 -1
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +2 -1
- package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +1 -1
- package/dist/libs/contracts/dist/server/mcp/registerResources.js +2 -1
- package/dist/libs/contracts/dist/server/mcp/registerTools.js +1 -1
- package/dist/libs/contracts/dist/server/provider-mcp.js +1 -1
- package/dist/libs/contracts/dist/server/rest-elysia.js +1 -1
- package/dist/libs/contracts/dist/server/rest-express.js +1 -1
- package/dist/libs/contracts/dist/server/rest-generic.js +1 -1
- package/dist/libs/contracts/dist/server/rest-next-app.js +1 -1
- package/dist/libs/contracts/dist/server/rest-next-pages.js +1 -1
- package/dist/libs/contracts/dist/spec.js +34 -1
- package/dist/libs/contracts/dist/telemetry/index.js +1 -1
- package/dist/libs/contracts/dist/telemetry/tracker.js +1 -1
- package/dist/libs/contracts/dist/tests/index.js +1 -1
- package/dist/libs/contracts/dist/tests/runner.js +2 -1
- package/dist/libs/contracts/dist/workflow/index.js +1 -1
- package/dist/libs/contracts/dist/workflow/runner.js +1 -1
- package/dist/libs/schema/dist/EnumType.js +56 -1
- package/dist/libs/schema/dist/FieldType.js +49 -1
- package/dist/libs/schema/dist/ScalarTypeEnum.js +236 -1
- package/dist/libs/schema/dist/SchemaModel.js +39 -1
- package/dist/libs/schema/dist/entity/defineEntity.js +1 -1
- package/dist/libs/schema/dist/entity/index.js +2 -1
- package/dist/libs/schema/dist/entity/types.js +1 -1
- package/dist/libs/schema/dist/index.js +6 -1
- package/dist/locale-jurisdiction-gate.feature.js +49 -1
- package/dist/policy/guard.js +72 -2
- package/dist/policy/index.js +3 -1
- package/package.json +5 -5
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1,377 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { SchemaModel } from "../schema/dist/SchemaModel.js";
|
|
2
|
+
import { ScalarTypeEnum } from "../schema/dist/ScalarTypeEnum.js";
|
|
3
|
+
import "../schema/dist/index.js";
|
|
4
|
+
import { defineCommand, defineQuery } from "../spec.js";
|
|
5
|
+
|
|
6
|
+
//#region ../../libs/contracts/dist/integrations/contracts.js
|
|
7
|
+
const IntegrationConnectionRecord = new SchemaModel({
|
|
8
|
+
name: "IntegrationConnectionRecord",
|
|
9
|
+
fields: {
|
|
10
|
+
id: {
|
|
11
|
+
type: ScalarTypeEnum.ID(),
|
|
12
|
+
isOptional: false
|
|
13
|
+
},
|
|
14
|
+
tenantId: {
|
|
15
|
+
type: ScalarTypeEnum.ID(),
|
|
16
|
+
isOptional: false
|
|
17
|
+
},
|
|
18
|
+
integrationKey: {
|
|
19
|
+
type: ScalarTypeEnum.NonEmptyString(),
|
|
20
|
+
isOptional: false
|
|
21
|
+
},
|
|
22
|
+
integrationVersion: {
|
|
23
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
24
|
+
isOptional: false
|
|
25
|
+
},
|
|
26
|
+
label: {
|
|
27
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
28
|
+
isOptional: false
|
|
29
|
+
},
|
|
30
|
+
ownershipMode: {
|
|
31
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
32
|
+
isOptional: false
|
|
33
|
+
},
|
|
34
|
+
externalAccountId: {
|
|
35
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
36
|
+
isOptional: true
|
|
37
|
+
},
|
|
38
|
+
secretProvider: {
|
|
39
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
40
|
+
isOptional: false
|
|
41
|
+
},
|
|
42
|
+
secretRef: {
|
|
43
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
44
|
+
isOptional: false
|
|
45
|
+
},
|
|
46
|
+
status: {
|
|
47
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
48
|
+
isOptional: false
|
|
49
|
+
},
|
|
50
|
+
environment: {
|
|
51
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
52
|
+
isOptional: true
|
|
53
|
+
},
|
|
54
|
+
healthStatus: {
|
|
55
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
56
|
+
isOptional: true
|
|
57
|
+
},
|
|
58
|
+
healthCheckedAt: {
|
|
59
|
+
type: ScalarTypeEnum.DateTime(),
|
|
60
|
+
isOptional: true
|
|
61
|
+
},
|
|
62
|
+
healthLatencyMs: {
|
|
63
|
+
type: ScalarTypeEnum.Float_unsecure(),
|
|
64
|
+
isOptional: true
|
|
65
|
+
},
|
|
66
|
+
healthErrorCode: {
|
|
67
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
68
|
+
isOptional: true
|
|
69
|
+
},
|
|
70
|
+
healthErrorMessage: {
|
|
71
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
72
|
+
isOptional: true
|
|
73
|
+
},
|
|
74
|
+
usageRequestCount: {
|
|
75
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
76
|
+
isOptional: true
|
|
77
|
+
},
|
|
78
|
+
usageSuccessCount: {
|
|
79
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
80
|
+
isOptional: true
|
|
81
|
+
},
|
|
82
|
+
usageErrorCount: {
|
|
83
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
84
|
+
isOptional: true
|
|
85
|
+
},
|
|
86
|
+
usageLastUsedAt: {
|
|
87
|
+
type: ScalarTypeEnum.DateTime(),
|
|
88
|
+
isOptional: true
|
|
89
|
+
},
|
|
90
|
+
usageLastErrorAt: {
|
|
91
|
+
type: ScalarTypeEnum.DateTime(),
|
|
92
|
+
isOptional: true
|
|
93
|
+
},
|
|
94
|
+
usageLastErrorCode: {
|
|
95
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
96
|
+
isOptional: true
|
|
97
|
+
},
|
|
98
|
+
createdAt: {
|
|
99
|
+
type: ScalarTypeEnum.DateTime(),
|
|
100
|
+
isOptional: true
|
|
101
|
+
},
|
|
102
|
+
updatedAt: {
|
|
103
|
+
type: ScalarTypeEnum.DateTime(),
|
|
104
|
+
isOptional: true
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
const CreateIntegrationConnectionInput = new SchemaModel({
|
|
109
|
+
name: "CreateIntegrationConnectionInput",
|
|
110
|
+
fields: {
|
|
111
|
+
tenantId: {
|
|
112
|
+
type: ScalarTypeEnum.ID(),
|
|
113
|
+
isOptional: false
|
|
114
|
+
},
|
|
115
|
+
integrationKey: {
|
|
116
|
+
type: ScalarTypeEnum.NonEmptyString(),
|
|
117
|
+
isOptional: false
|
|
118
|
+
},
|
|
119
|
+
integrationVersion: {
|
|
120
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
121
|
+
isOptional: false
|
|
122
|
+
},
|
|
123
|
+
label: {
|
|
124
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
125
|
+
isOptional: false
|
|
126
|
+
},
|
|
127
|
+
ownershipMode: {
|
|
128
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
129
|
+
isOptional: false
|
|
130
|
+
},
|
|
131
|
+
externalAccountId: {
|
|
132
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
133
|
+
isOptional: true
|
|
134
|
+
},
|
|
135
|
+
secretProvider: {
|
|
136
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
137
|
+
isOptional: false
|
|
138
|
+
},
|
|
139
|
+
secretRef: {
|
|
140
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
141
|
+
isOptional: false
|
|
142
|
+
},
|
|
143
|
+
environment: {
|
|
144
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
145
|
+
isOptional: true
|
|
146
|
+
},
|
|
147
|
+
config: {
|
|
148
|
+
type: ScalarTypeEnum.JSONObject(),
|
|
149
|
+
isOptional: false
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
const UpdateIntegrationConnectionInput = new SchemaModel({
|
|
154
|
+
name: "UpdateIntegrationConnectionInput",
|
|
155
|
+
fields: {
|
|
156
|
+
connectionId: {
|
|
157
|
+
type: ScalarTypeEnum.ID(),
|
|
158
|
+
isOptional: false
|
|
159
|
+
},
|
|
160
|
+
label: {
|
|
161
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
162
|
+
isOptional: true
|
|
163
|
+
},
|
|
164
|
+
status: {
|
|
165
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
166
|
+
isOptional: true
|
|
167
|
+
},
|
|
168
|
+
ownershipMode: {
|
|
169
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
170
|
+
isOptional: true
|
|
171
|
+
},
|
|
172
|
+
externalAccountId: {
|
|
173
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
174
|
+
isOptional: true
|
|
175
|
+
},
|
|
176
|
+
secretProvider: {
|
|
177
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
178
|
+
isOptional: true
|
|
179
|
+
},
|
|
180
|
+
secretRef: {
|
|
181
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
182
|
+
isOptional: true
|
|
183
|
+
},
|
|
184
|
+
config: {
|
|
185
|
+
type: ScalarTypeEnum.JSONObject(),
|
|
186
|
+
isOptional: true
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
const DeleteIntegrationConnectionInput = new SchemaModel({
|
|
191
|
+
name: "DeleteIntegrationConnectionInput",
|
|
192
|
+
fields: { connectionId: {
|
|
193
|
+
type: ScalarTypeEnum.ID(),
|
|
194
|
+
isOptional: false
|
|
195
|
+
} }
|
|
196
|
+
});
|
|
197
|
+
const ListIntegrationConnectionsInput = new SchemaModel({
|
|
198
|
+
name: "ListIntegrationConnectionsInput",
|
|
199
|
+
fields: {
|
|
200
|
+
tenantId: {
|
|
201
|
+
type: ScalarTypeEnum.ID(),
|
|
202
|
+
isOptional: false
|
|
203
|
+
},
|
|
204
|
+
category: {
|
|
205
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
206
|
+
isOptional: true
|
|
207
|
+
},
|
|
208
|
+
status: {
|
|
209
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
210
|
+
isOptional: true
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
const ListIntegrationConnectionsOutput = new SchemaModel({
|
|
215
|
+
name: "ListIntegrationConnectionsOutput",
|
|
216
|
+
fields: { connections: {
|
|
217
|
+
type: IntegrationConnectionRecord,
|
|
218
|
+
isOptional: false,
|
|
219
|
+
isArray: true
|
|
220
|
+
} }
|
|
221
|
+
});
|
|
222
|
+
const TestIntegrationConnectionInput = new SchemaModel({
|
|
223
|
+
name: "TestIntegrationConnectionInput",
|
|
224
|
+
fields: { connectionId: {
|
|
225
|
+
type: ScalarTypeEnum.ID(),
|
|
226
|
+
isOptional: false
|
|
227
|
+
} }
|
|
228
|
+
});
|
|
229
|
+
const TestIntegrationConnectionOutput = new SchemaModel({
|
|
230
|
+
name: "TestIntegrationConnectionOutput",
|
|
231
|
+
fields: {
|
|
232
|
+
success: {
|
|
233
|
+
type: ScalarTypeEnum.Boolean(),
|
|
234
|
+
isOptional: false
|
|
235
|
+
},
|
|
236
|
+
status: {
|
|
237
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
238
|
+
isOptional: true
|
|
239
|
+
},
|
|
240
|
+
latencyMs: {
|
|
241
|
+
type: ScalarTypeEnum.Float_unsecure(),
|
|
242
|
+
isOptional: true
|
|
243
|
+
},
|
|
244
|
+
error: {
|
|
245
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
246
|
+
isOptional: true
|
|
247
|
+
},
|
|
248
|
+
errorCode: {
|
|
249
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
250
|
+
isOptional: true
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
const DeleteIntegrationConnectionOutput = new SchemaModel({
|
|
255
|
+
name: "DeleteIntegrationConnectionOutput",
|
|
256
|
+
fields: { success: {
|
|
257
|
+
type: ScalarTypeEnum.Boolean(),
|
|
258
|
+
isOptional: false
|
|
259
|
+
} }
|
|
260
|
+
});
|
|
261
|
+
const CreateIntegrationConnection = defineCommand({
|
|
262
|
+
meta: {
|
|
263
|
+
name: "integrations.connection.create",
|
|
264
|
+
version: 1,
|
|
265
|
+
description: "Create a new integration connection for a tenant.",
|
|
266
|
+
goal: "Provision a tenant-scoped connection to an external provider.",
|
|
267
|
+
context: "Used by Ops or the App Studio to configure external integrations such as Stripe or Qdrant.",
|
|
268
|
+
owners: ["platform.integrations"],
|
|
269
|
+
tags: ["integration", "connections"],
|
|
270
|
+
stability: "experimental"
|
|
271
|
+
},
|
|
272
|
+
io: {
|
|
273
|
+
input: CreateIntegrationConnectionInput,
|
|
274
|
+
output: IntegrationConnectionRecord
|
|
275
|
+
},
|
|
276
|
+
policy: {
|
|
277
|
+
auth: "admin",
|
|
278
|
+
policies: [{
|
|
279
|
+
name: "platform.integration.manage",
|
|
280
|
+
version: 1
|
|
281
|
+
}]
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
const UpdateIntegrationConnection = defineCommand({
|
|
285
|
+
meta: {
|
|
286
|
+
name: "integrations.connection.update",
|
|
287
|
+
version: 1,
|
|
288
|
+
description: "Update metadata or credentials for an integration connection.",
|
|
289
|
+
goal: "Allow secure rotation of credentials and metadata adjustments.",
|
|
290
|
+
context: "Supports rotating API keys, toggling status, or updating labels for tenant integrations.",
|
|
291
|
+
owners: ["platform.integrations"],
|
|
292
|
+
tags: ["integration", "connections"],
|
|
293
|
+
stability: "experimental"
|
|
294
|
+
},
|
|
295
|
+
io: {
|
|
296
|
+
input: UpdateIntegrationConnectionInput,
|
|
297
|
+
output: IntegrationConnectionRecord
|
|
298
|
+
},
|
|
299
|
+
policy: {
|
|
300
|
+
auth: "admin",
|
|
301
|
+
policies: [{
|
|
302
|
+
name: "platform.integration.manage",
|
|
303
|
+
version: 1
|
|
304
|
+
}]
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
const DeleteIntegrationConnection = defineCommand({
|
|
308
|
+
meta: {
|
|
309
|
+
name: "integrations.connection.delete",
|
|
310
|
+
version: 1,
|
|
311
|
+
description: "Delete an integration connection for a tenant.",
|
|
312
|
+
goal: "Safely remove credentials and disable connector usage.",
|
|
313
|
+
context: "Ensures connections are de-provisioned when no longer needed or breached.",
|
|
314
|
+
owners: ["platform.integrations"],
|
|
315
|
+
tags: ["integration", "connections"],
|
|
316
|
+
stability: "experimental"
|
|
317
|
+
},
|
|
318
|
+
io: {
|
|
319
|
+
input: DeleteIntegrationConnectionInput,
|
|
320
|
+
output: DeleteIntegrationConnectionOutput
|
|
321
|
+
},
|
|
322
|
+
policy: {
|
|
323
|
+
auth: "admin",
|
|
324
|
+
policies: [{
|
|
325
|
+
name: "platform.integration.manage",
|
|
326
|
+
version: 1
|
|
327
|
+
}]
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
const ListIntegrationConnections = defineQuery({
|
|
331
|
+
meta: {
|
|
332
|
+
name: "integrations.connection.list",
|
|
333
|
+
version: 1,
|
|
334
|
+
description: "List integration connections for a tenant.",
|
|
335
|
+
goal: "Provide visibility into configured integrations and their status.",
|
|
336
|
+
context: "Used by the App Studio and Ops flows to show bindings and health.",
|
|
337
|
+
owners: ["platform.integrations"],
|
|
338
|
+
tags: ["integration", "connections"],
|
|
339
|
+
stability: "experimental"
|
|
340
|
+
},
|
|
341
|
+
io: {
|
|
342
|
+
input: ListIntegrationConnectionsInput,
|
|
343
|
+
output: ListIntegrationConnectionsOutput
|
|
344
|
+
},
|
|
345
|
+
policy: {
|
|
346
|
+
auth: "admin",
|
|
347
|
+
policies: [{
|
|
348
|
+
name: "platform.integration.read",
|
|
349
|
+
version: 1
|
|
350
|
+
}]
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
const TestIntegrationConnection = defineCommand({
|
|
354
|
+
meta: {
|
|
355
|
+
name: "integrations.connection.test",
|
|
356
|
+
version: 1,
|
|
357
|
+
description: "Run a health check against a configured integration connection.",
|
|
358
|
+
goal: "Validate credentials and connectivity for external providers.",
|
|
359
|
+
context: "Triggered manually or by background monitors to confirm provider availability.",
|
|
360
|
+
owners: ["platform.integrations"],
|
|
361
|
+
tags: ["integration", "connections"],
|
|
362
|
+
stability: "experimental"
|
|
363
|
+
},
|
|
364
|
+
io: {
|
|
365
|
+
input: TestIntegrationConnectionInput,
|
|
366
|
+
output: TestIntegrationConnectionOutput
|
|
367
|
+
},
|
|
368
|
+
policy: {
|
|
369
|
+
auth: "admin",
|
|
370
|
+
policies: [{
|
|
371
|
+
name: "platform.integration.manage",
|
|
372
|
+
version: 1
|
|
373
|
+
}]
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
//#endregion
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
import"./providers/stripe.js";
|
|
1
|
+
import "./providers/stripe.js";
|
|
2
|
+
import "./providers/postmark.js";
|
|
3
|
+
import "./providers/qdrant.js";
|
|
4
|
+
import "./providers/mistral.js";
|
|
5
|
+
import "./providers/elevenlabs.js";
|
|
6
|
+
import "./providers/gmail.js";
|
|
7
|
+
import "./providers/google-calendar.js";
|
|
8
|
+
import "./providers/twilio-sms.js";
|
|
9
|
+
import "./providers/gcs-storage.js";
|
|
10
|
+
import "./providers/powens.js";
|
|
11
|
+
import "./providers/registry.js";
|
|
12
|
+
import { AccountBalanceRecord, BankAccountRecord, BankTransactionRecord } from "./openbanking/models.js";
|
|
13
|
+
import { OPENBANKING_TELEMETRY_EVENTS } from "./openbanking/telemetry.js";
|
|
14
|
+
import "./openbanking/contracts/accounts.js";
|
|
15
|
+
import "./openbanking/contracts/transactions.js";
|
|
16
|
+
import "./openbanking/contracts/balances.js";
|
|
17
|
+
import "./openbanking/contracts/index.js";
|
|
18
|
+
import "./providers/index.js";
|
|
@@ -1 +1,228 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { SchemaModel } from "../../../schema/dist/SchemaModel.js";
|
|
2
|
+
import { ScalarTypeEnum } from "../../../schema/dist/ScalarTypeEnum.js";
|
|
3
|
+
import "../../../schema/dist/index.js";
|
|
4
|
+
import { defineCommand, defineQuery } from "../../../spec.js";
|
|
5
|
+
import { BankAccountRecord } from "../models.js";
|
|
6
|
+
import { OPENBANKING_TELEMETRY_EVENTS } from "../telemetry.js";
|
|
7
|
+
|
|
8
|
+
//#region ../../libs/contracts/dist/integrations/openbanking/contracts/accounts.js
|
|
9
|
+
const OpenBankingListAccountsInput = new SchemaModel({
|
|
10
|
+
name: "OpenBankingListAccountsInput",
|
|
11
|
+
description: "Parameters for listing bank accounts through the open banking provider.",
|
|
12
|
+
fields: {
|
|
13
|
+
tenantId: {
|
|
14
|
+
type: ScalarTypeEnum.ID(),
|
|
15
|
+
isOptional: false
|
|
16
|
+
},
|
|
17
|
+
userId: {
|
|
18
|
+
type: ScalarTypeEnum.ID(),
|
|
19
|
+
isOptional: false
|
|
20
|
+
},
|
|
21
|
+
connectionId: {
|
|
22
|
+
type: ScalarTypeEnum.ID(),
|
|
23
|
+
isOptional: true
|
|
24
|
+
},
|
|
25
|
+
includeBalances: {
|
|
26
|
+
type: ScalarTypeEnum.Boolean(),
|
|
27
|
+
isOptional: true
|
|
28
|
+
},
|
|
29
|
+
institutionId: {
|
|
30
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
31
|
+
isOptional: true
|
|
32
|
+
},
|
|
33
|
+
cursor: {
|
|
34
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
35
|
+
isOptional: true
|
|
36
|
+
},
|
|
37
|
+
pageSize: {
|
|
38
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
39
|
+
isOptional: true
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
const OpenBankingListAccountsOutput = new SchemaModel({
|
|
44
|
+
name: "OpenBankingListAccountsOutput",
|
|
45
|
+
description: "Paginated list of bank accounts available to the tenant and user.",
|
|
46
|
+
fields: {
|
|
47
|
+
accounts: {
|
|
48
|
+
type: BankAccountRecord,
|
|
49
|
+
isOptional: false,
|
|
50
|
+
isArray: true
|
|
51
|
+
},
|
|
52
|
+
nextCursor: {
|
|
53
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
54
|
+
isOptional: true
|
|
55
|
+
},
|
|
56
|
+
hasMore: {
|
|
57
|
+
type: ScalarTypeEnum.Boolean(),
|
|
58
|
+
isOptional: true
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const OpenBankingGetAccountInput = new SchemaModel({
|
|
63
|
+
name: "OpenBankingGetAccountInput",
|
|
64
|
+
description: "Parameters for retrieving a specific bank account.",
|
|
65
|
+
fields: {
|
|
66
|
+
tenantId: {
|
|
67
|
+
type: ScalarTypeEnum.ID(),
|
|
68
|
+
isOptional: false
|
|
69
|
+
},
|
|
70
|
+
accountId: {
|
|
71
|
+
type: ScalarTypeEnum.ID(),
|
|
72
|
+
isOptional: false
|
|
73
|
+
},
|
|
74
|
+
includeBalances: {
|
|
75
|
+
type: ScalarTypeEnum.Boolean(),
|
|
76
|
+
isOptional: true
|
|
77
|
+
},
|
|
78
|
+
includeLatestTransactions: {
|
|
79
|
+
type: ScalarTypeEnum.Boolean(),
|
|
80
|
+
isOptional: true
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
const OpenBankingSyncAccountsInput = new SchemaModel({
|
|
85
|
+
name: "OpenBankingSyncAccountsInput",
|
|
86
|
+
description: "Command payload to trigger an account synchronisation against the open banking provider.",
|
|
87
|
+
fields: {
|
|
88
|
+
tenantId: {
|
|
89
|
+
type: ScalarTypeEnum.ID(),
|
|
90
|
+
isOptional: false
|
|
91
|
+
},
|
|
92
|
+
userId: {
|
|
93
|
+
type: ScalarTypeEnum.ID(),
|
|
94
|
+
isOptional: true
|
|
95
|
+
},
|
|
96
|
+
connectionId: {
|
|
97
|
+
type: ScalarTypeEnum.ID(),
|
|
98
|
+
isOptional: false
|
|
99
|
+
},
|
|
100
|
+
accountIds: {
|
|
101
|
+
type: ScalarTypeEnum.ID(),
|
|
102
|
+
isArray: true,
|
|
103
|
+
isOptional: true
|
|
104
|
+
},
|
|
105
|
+
forceFullRefresh: {
|
|
106
|
+
type: ScalarTypeEnum.Boolean(),
|
|
107
|
+
isOptional: true
|
|
108
|
+
},
|
|
109
|
+
triggerWorkflows: {
|
|
110
|
+
type: ScalarTypeEnum.Boolean(),
|
|
111
|
+
isOptional: true
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const OpenBankingSyncAccountsOutput = new SchemaModel({
|
|
116
|
+
name: "OpenBankingSyncAccountsOutput",
|
|
117
|
+
description: "Result of a bank account synchronisation run.",
|
|
118
|
+
fields: {
|
|
119
|
+
synced: {
|
|
120
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
121
|
+
isOptional: false
|
|
122
|
+
},
|
|
123
|
+
failed: {
|
|
124
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
125
|
+
isOptional: false
|
|
126
|
+
},
|
|
127
|
+
errors: {
|
|
128
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
129
|
+
isArray: true,
|
|
130
|
+
isOptional: true
|
|
131
|
+
},
|
|
132
|
+
nextSyncSuggestedAt: {
|
|
133
|
+
type: ScalarTypeEnum.DateTime(),
|
|
134
|
+
isOptional: true
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
const OpenBankingListAccounts = defineQuery({
|
|
139
|
+
meta: {
|
|
140
|
+
name: "openbanking.accounts.list",
|
|
141
|
+
version: 1,
|
|
142
|
+
description: "List bank accounts available to a tenant/user via Powens Open Banking.",
|
|
143
|
+
goal: "Provide downstream workflows with the set of accounts accessible via the configured open banking connection.",
|
|
144
|
+
context: "Used by Pocket Family Office dashboards and sync workflows to enumerate bank accounts prior to syncing balances or transactions.",
|
|
145
|
+
owners: ["platform.finance"],
|
|
146
|
+
tags: [
|
|
147
|
+
"open-banking",
|
|
148
|
+
"powens",
|
|
149
|
+
"accounts"
|
|
150
|
+
],
|
|
151
|
+
stability: "experimental"
|
|
152
|
+
},
|
|
153
|
+
io: {
|
|
154
|
+
input: OpenBankingListAccountsInput,
|
|
155
|
+
output: OpenBankingListAccountsOutput
|
|
156
|
+
},
|
|
157
|
+
policy: { auth: "user" }
|
|
158
|
+
});
|
|
159
|
+
const OpenBankingGetAccount = defineQuery({
|
|
160
|
+
meta: {
|
|
161
|
+
name: "openbanking.accounts.get",
|
|
162
|
+
version: 1,
|
|
163
|
+
description: "Retrieve the canonical bank account record for the given account identifier.",
|
|
164
|
+
goal: "Allow user-facing experiences and automations to display up-to-date account metadata.",
|
|
165
|
+
context: "Invoked by UI surfaces and workflow automation steps that require detailed metadata for a specific bank account.",
|
|
166
|
+
owners: ["platform.finance"],
|
|
167
|
+
tags: [
|
|
168
|
+
"open-banking",
|
|
169
|
+
"powens",
|
|
170
|
+
"accounts"
|
|
171
|
+
],
|
|
172
|
+
stability: "experimental"
|
|
173
|
+
},
|
|
174
|
+
io: {
|
|
175
|
+
input: OpenBankingGetAccountInput,
|
|
176
|
+
output: BankAccountRecord
|
|
177
|
+
},
|
|
178
|
+
policy: { auth: "user" }
|
|
179
|
+
});
|
|
180
|
+
const OpenBankingSyncAccounts = defineCommand({
|
|
181
|
+
meta: {
|
|
182
|
+
name: "openbanking.accounts.sync",
|
|
183
|
+
version: 1,
|
|
184
|
+
description: "Initiate a synchronisation run to refresh bank account metadata from Powens.",
|
|
185
|
+
goal: "Keep canonical bank account records aligned with the external open banking provider.",
|
|
186
|
+
context: "Triggered by scheduled workflows or manual operator actions to reconcile account metadata prior to transaction/balance syncs.",
|
|
187
|
+
owners: ["platform.finance"],
|
|
188
|
+
tags: [
|
|
189
|
+
"open-banking",
|
|
190
|
+
"powens",
|
|
191
|
+
"accounts"
|
|
192
|
+
],
|
|
193
|
+
stability: "experimental"
|
|
194
|
+
},
|
|
195
|
+
io: {
|
|
196
|
+
input: OpenBankingSyncAccountsInput,
|
|
197
|
+
output: OpenBankingSyncAccountsOutput
|
|
198
|
+
},
|
|
199
|
+
policy: { auth: "admin" },
|
|
200
|
+
telemetry: {
|
|
201
|
+
success: {
|
|
202
|
+
event: { name: OPENBANKING_TELEMETRY_EVENTS.accountsSynced },
|
|
203
|
+
properties: ({ input, output }) => {
|
|
204
|
+
const payload = input;
|
|
205
|
+
const result = output;
|
|
206
|
+
return {
|
|
207
|
+
tenantId: payload?.tenantId,
|
|
208
|
+
connectionId: payload?.connectionId,
|
|
209
|
+
synced: result?.synced,
|
|
210
|
+
failed: result?.failed
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
failure: {
|
|
215
|
+
event: { name: OPENBANKING_TELEMETRY_EVENTS.accountsSyncFailed },
|
|
216
|
+
properties: ({ input, error }) => {
|
|
217
|
+
const payload = input;
|
|
218
|
+
return {
|
|
219
|
+
tenantId: payload?.tenantId,
|
|
220
|
+
connectionId: payload?.connectionId,
|
|
221
|
+
error: error instanceof Error ? error.message : String(error ?? "unknown")
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
//#endregion
|