@wildo-ai/external-connectors-models 1.0.1
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/dist/esm/core/commons.external-connectors-models.schemas.d.ts +195 -0
- package/dist/esm/core/commons.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/core/commons.external-connectors-models.schemas.js +96 -0
- package/dist/esm/core/commons.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts +127 -0
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js +22 -0
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/core/oauth2.enums.d.ts +125 -0
- package/dist/esm/core/oauth2.enums.d.ts.map +1 -0
- package/dist/esm/core/oauth2.enums.js +134 -0
- package/dist/esm/core/oauth2.enums.js.map +1 -0
- package/dist/esm/core/operations.external-connectors-models.schemas.d.ts +46 -0
- package/dist/esm/core/operations.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/core/operations.external-connectors-models.schemas.js +10 -0
- package/dist/esm/core/operations.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts +84 -0
- package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/core/protocols.external-connectors-models.schemas.js +1 -0
- package/dist/esm/core/protocols.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/core/providers.external-connectors-models.schemas.d.ts +80 -0
- package/dist/esm/core/providers.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/core/providers.external-connectors-models.schemas.js +55 -0
- package/dist/esm/core/providers.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/core/security.external-connectors-models.schemas.d.ts +187 -0
- package/dist/esm/core/security.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/core/security.external-connectors-models.schemas.js +233 -0
- package/dist/esm/core/security.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/features/core.external-connectors-models.schemas.d.ts +63 -0
- package/dist/esm/features/core.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/features/core.external-connectors-models.schemas.js +101 -0
- package/dist/esm/features/core.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/features/email.external-connectors-models.schemas.d.ts +181 -0
- package/dist/esm/features/email.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/features/email.external-connectors-models.schemas.js +34 -0
- package/dist/esm/features/email.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts +101 -0
- package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/features/hooks.external-connectors-models.schemas.js +11 -0
- package/dist/esm/features/hooks.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/features/sms.external-connectors-models.schemas.d.ts +21 -0
- package/dist/esm/features/sms.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/features/sms.external-connectors-models.schemas.js +8 -0
- package/dist/esm/features/sms.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/index.d.ts +28 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +31 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts +57 -0
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.js +73 -0
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.d.ts +315 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.js +104 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.js.map +1 -0
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts +214 -0
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js +188 -0
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts +370 -0
- package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/email.external-connectors-models.schemas.js +368 -0
- package/dist/esm/protocols/email.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/email.standard-interface.schemas.d.ts +330 -0
- package/dist/esm/protocols/email.standard-interface.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/email.standard-interface.schemas.js +275 -0
- package/dist/esm/protocols/email.standard-interface.schemas.js.map +1 -0
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts +16 -0
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.js +10 -0
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts +14 -0
- package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/git.external-connectors-models.schemas.js +9 -0
- package/dist/esm/protocols/git.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts +14 -0
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.js +9 -0
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts +192 -0
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.js +103 -0
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts +499 -0
- package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/llm.external-connectors-models.schemas.js +351 -0
- package/dist/esm/protocols/llm.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts +60 -0
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.js +35 -0
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts +570 -0
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js +401 -0
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts +125 -0
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js +92 -0
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts +135 -0
- package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/saml.external-connectors-models.schemas.js +9 -0
- package/dist/esm/protocols/saml.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts +55 -0
- package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/sms.external-connectors-models.schemas.js +46 -0
- package/dist/esm/protocols/sms.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/sms.standard-interface.schemas.d.ts +35 -0
- package/dist/esm/protocols/sms.standard-interface.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/sms.standard-interface.schemas.js +54 -0
- package/dist/esm/protocols/sms.standard-interface.schemas.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/core/security.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,+BAA+B,EAC/B,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAMxB;;;GAGG;AACH,oBAAY,0BAA0B;IACpC,iCAAiC;IACjC,IAAI,SAAS;IAEb,0CAA0C;IAC1C,OAAO,YAAY;IAEnB,gDAAgD;IAChD,MAAM,WAAW;IAEjB,gCAAgC;IAChC,KAAK,UAAU;IAEf,kEAAkE;IAClE,MAAM,WAAW;IAEjB,0CAA0C;IAC1C,cAAc,mBAAmB;IAEjC,+CAA+C;IAC/C,cAAc,mBAAmB;IAEjC,uCAAuC;IACvC,UAAU,eAAe;IAEzB,qDAAqD;IACrD,eAAe,oBAAoB;CACpC;AAMD,oBAAY,qCAAqC;IAC/C,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,8CAA8C;IACxD,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,mCAAmC;IAC7C,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,mBAAmB,wBAAwB;CAC5C;AAMD;;;GAGG;AACH,eAAO,MAAM,yCAAyC;;;;;iBAYpD,CAAC;AAMH,eAAO,MAAM,6CAA6C;;;;;;;iBAkBxD,CAAC;AAMH,eAAO,MAAM,uCAAuC;;;;;;iBAelD,CAAC;AAMH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAC5G,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC;AACpH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAMxG;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmI9C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security and Authentication Schemas for External Connectors
|
|
3
|
+
*
|
|
4
|
+
* This module defines authentication profiles that can be used across protocols.
|
|
5
|
+
* It integrates with OAuth2 to avoid duplication between API auth and OAuth2 config.
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* - ExternalProvider_Auth_Kind: The type of authentication
|
|
9
|
+
* - ExternalProvider_AuthProfile: How to authenticate with an API
|
|
10
|
+
* - OAuth2-linked profiles: Reference OAuth2 config instead of duplicating
|
|
11
|
+
*
|
|
12
|
+
* @see https://swagger.io/docs/specification/v3_0/authentication/
|
|
13
|
+
*/
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
import { OAuth2_GrantType, OAuth2_TokenEndpoint_AuthMethod, OAuth2_PKCE_Method, OAuth2_Prompt, OAuth2_AccessType, } from './oauth2.enums.js';
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// AUTH KIND ENUM
|
|
18
|
+
// =============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Authentication types supported by external providers
|
|
21
|
+
* Follows OpenAPI 3.0 Security Schemes with extensions
|
|
22
|
+
*/
|
|
23
|
+
export var ExternalProvider_Auth_Kind;
|
|
24
|
+
(function (ExternalProvider_Auth_Kind) {
|
|
25
|
+
/** No authentication required */
|
|
26
|
+
ExternalProvider_Auth_Kind["NONE"] = "none";
|
|
27
|
+
/** API Key in header, query, or cookie */
|
|
28
|
+
ExternalProvider_Auth_Kind["API_KEY"] = "api_key";
|
|
29
|
+
/** Bearer token (OAuth2 access token or JWT) */
|
|
30
|
+
ExternalProvider_Auth_Kind["BEARER"] = "bearer";
|
|
31
|
+
/** HTTP Basic authentication */
|
|
32
|
+
ExternalProvider_Auth_Kind["BASIC"] = "basic";
|
|
33
|
+
/** OAuth2 authentication - links to OAuth2 provider definition */
|
|
34
|
+
ExternalProvider_Auth_Kind["OAUTH2"] = "oauth2";
|
|
35
|
+
/** HMAC signature-based authentication */
|
|
36
|
+
ExternalProvider_Auth_Kind["HMAC_SIGNATURE"] = "hmac_signature";
|
|
37
|
+
/** OpenID Connect (OAuth2 + identity layer) */
|
|
38
|
+
ExternalProvider_Auth_Kind["OPENID_CONNECT"] = "openid_connect";
|
|
39
|
+
/** Mutual TLS (client certificates) */
|
|
40
|
+
ExternalProvider_Auth_Kind["MUTUAL_TLS"] = "mutual_tls";
|
|
41
|
+
/** Frontend-specific secret (not exposed to user) */
|
|
42
|
+
ExternalProvider_Auth_Kind["FRONTEND_SECRET"] = "frontend_secret";
|
|
43
|
+
})(ExternalProvider_Auth_Kind || (ExternalProvider_Auth_Kind = {}));
|
|
44
|
+
// =============================================================================
|
|
45
|
+
// AUTH CONFIGURATION ENUMS
|
|
46
|
+
// =============================================================================
|
|
47
|
+
export var ExternalProvider_Auth_ApiKey_Location;
|
|
48
|
+
(function (ExternalProvider_Auth_ApiKey_Location) {
|
|
49
|
+
ExternalProvider_Auth_ApiKey_Location["HEADER"] = "header";
|
|
50
|
+
ExternalProvider_Auth_ApiKey_Location["QUERY"] = "query";
|
|
51
|
+
ExternalProvider_Auth_ApiKey_Location["COOKIE"] = "cookie";
|
|
52
|
+
})(ExternalProvider_Auth_ApiKey_Location || (ExternalProvider_Auth_ApiKey_Location = {}));
|
|
53
|
+
export var ExternalProvider_Auth_HMAC_Signature_Algorithm;
|
|
54
|
+
(function (ExternalProvider_Auth_HMAC_Signature_Algorithm) {
|
|
55
|
+
ExternalProvider_Auth_HMAC_Signature_Algorithm["SHA256"] = "sha256";
|
|
56
|
+
ExternalProvider_Auth_HMAC_Signature_Algorithm["SHA512"] = "sha512";
|
|
57
|
+
})(ExternalProvider_Auth_HMAC_Signature_Algorithm || (ExternalProvider_Auth_HMAC_Signature_Algorithm = {}));
|
|
58
|
+
export var ExternalProvider_Auth_Bearer_Format;
|
|
59
|
+
(function (ExternalProvider_Auth_Bearer_Format) {
|
|
60
|
+
ExternalProvider_Auth_Bearer_Format["JWT"] = "jwt";
|
|
61
|
+
ExternalProvider_Auth_Bearer_Format["API_KEY"] = "api_key";
|
|
62
|
+
ExternalProvider_Auth_Bearer_Format["OAUTH2_ACCESS_TOKEN"] = "oauth2_access_token";
|
|
63
|
+
})(ExternalProvider_Auth_Bearer_Format || (ExternalProvider_Auth_Bearer_Format = {}));
|
|
64
|
+
// =============================================================================
|
|
65
|
+
// AUTH CONFIGURATION SCHEMA
|
|
66
|
+
// =============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Auth Configuration - references a secret
|
|
69
|
+
* This is the runtime configuration that specifies which secret to use
|
|
70
|
+
*/
|
|
71
|
+
export const ExternalProvider_Auth_ConfigurationSchema = z.object({
|
|
72
|
+
/** Type of authentication */
|
|
73
|
+
authKind: z.enum(ExternalProvider_Auth_Kind),
|
|
74
|
+
/** References to auth profiles this config applies to */
|
|
75
|
+
profileRefs: z.array(z.string()).optional(),
|
|
76
|
+
/** Is this the default auth for the provider? */
|
|
77
|
+
isDefault: z.boolean().optional(),
|
|
78
|
+
/** Reference to the secret (environment variable name or secret store key) */
|
|
79
|
+
secretRef: z.string(),
|
|
80
|
+
});
|
|
81
|
+
// =============================================================================
|
|
82
|
+
// RATE LIMIT CONFIGURATION
|
|
83
|
+
// =============================================================================
|
|
84
|
+
export const ExternalProvider_RateLimitConfigurationSchema = z.object({
|
|
85
|
+
/** Maximum concurrent requests */
|
|
86
|
+
maxConcurrent: z.number().positive().optional().default(10),
|
|
87
|
+
/** Minimum time (ms) between requests */
|
|
88
|
+
minTime: z.number().positive().optional(),
|
|
89
|
+
/** Request reservoir (bucket size) */
|
|
90
|
+
reservoir: z.number().positive().optional(),
|
|
91
|
+
/** Reservoir refresh interval (ms) */
|
|
92
|
+
reservoirRefreshInterval: z.number().positive().optional(),
|
|
93
|
+
/** Amount to add to reservoir on refresh */
|
|
94
|
+
reservoirRefreshAmount: z.number().positive().optional(),
|
|
95
|
+
/** Request priority (higher = higher priority) */
|
|
96
|
+
priority: z.number().int().optional().default(0),
|
|
97
|
+
});
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// AUTH PROFILE BASE SCHEMA
|
|
100
|
+
// =============================================================================
|
|
101
|
+
export const ExternalProvider_AuthProfile_BaseSchema = z.object({
|
|
102
|
+
/** Type of authentication */
|
|
103
|
+
kind: z.enum(ExternalProvider_Auth_Kind),
|
|
104
|
+
/** Unique reference for this auth profile */
|
|
105
|
+
ref: z.string().optional(),
|
|
106
|
+
/** Is this the default auth profile? */
|
|
107
|
+
isDefault: z.boolean().default(false),
|
|
108
|
+
/** Where to place the authentication (header, query, cookie) */
|
|
109
|
+
location: z.enum(ExternalProvider_Auth_ApiKey_Location).default(ExternalProvider_Auth_ApiKey_Location.HEADER),
|
|
110
|
+
/** Field name for the authentication */
|
|
111
|
+
locationField: z.string().default("Authorization"),
|
|
112
|
+
});
|
|
113
|
+
// =============================================================================
|
|
114
|
+
// DISCRIMINATED AUTH PROFILE SCHEMAS
|
|
115
|
+
// =============================================================================
|
|
116
|
+
/**
|
|
117
|
+
* Complete Auth Profile Schema - discriminated union by kind
|
|
118
|
+
* Each kind has specific configuration fields
|
|
119
|
+
*/
|
|
120
|
+
export const ExternalProvider_AuthProfile_Schema = z.discriminatedUnion("kind", [
|
|
121
|
+
// ─── API Key Authentication ───
|
|
122
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
123
|
+
kind: z.literal(ExternalProvider_Auth_Kind.API_KEY),
|
|
124
|
+
locationField: z.string().default("Authorization"),
|
|
125
|
+
/** Prefix before the key value (e.g., "Api-Key ") */
|
|
126
|
+
prefix: z.string().optional(),
|
|
127
|
+
}),
|
|
128
|
+
// ─── HMAC Signature Authentication ───
|
|
129
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
130
|
+
kind: z.literal(ExternalProvider_Auth_Kind.HMAC_SIGNATURE),
|
|
131
|
+
locationField: z.string().default("X-Signature"),
|
|
132
|
+
/** HMAC algorithm */
|
|
133
|
+
algorithm: z.enum(ExternalProvider_Auth_HMAC_Signature_Algorithm).default(ExternalProvider_Auth_HMAC_Signature_Algorithm.SHA256),
|
|
134
|
+
/** What data to sign (body, timestamp, etc.) */
|
|
135
|
+
signaturePayload: z.enum(['body', 'timestamp', 'custom']).optional(),
|
|
136
|
+
/** Timestamp header name (if needed) */
|
|
137
|
+
timestampHeader: z.string().optional(),
|
|
138
|
+
/** Nonce header name (if needed for replay protection) */
|
|
139
|
+
nonceHeader: z.string().optional(),
|
|
140
|
+
}),
|
|
141
|
+
// ─── Bearer Token Authentication ───
|
|
142
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
143
|
+
kind: z.literal(ExternalProvider_Auth_Kind.BEARER),
|
|
144
|
+
location: z.enum(ExternalProvider_Auth_ApiKey_Location).default(ExternalProvider_Auth_ApiKey_Location.HEADER),
|
|
145
|
+
locationField: z.string().default("Authorization"),
|
|
146
|
+
/** Prefix (usually "Bearer ") */
|
|
147
|
+
prefix: z.string().default("Bearer "),
|
|
148
|
+
/** Token format */
|
|
149
|
+
format: z.enum(ExternalProvider_Auth_Bearer_Format).default(ExternalProvider_Auth_Bearer_Format.JWT),
|
|
150
|
+
}),
|
|
151
|
+
// ─── OpenID Connect Authentication ───
|
|
152
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
153
|
+
kind: z.literal(ExternalProvider_Auth_Kind.OPENID_CONNECT),
|
|
154
|
+
/** OIDC Discovery URL */
|
|
155
|
+
discoveryUrl: z.url().optional(),
|
|
156
|
+
/** Issuer */
|
|
157
|
+
issuer: z.string().optional(),
|
|
158
|
+
/** Expected audience */
|
|
159
|
+
audience: z.string().optional(),
|
|
160
|
+
/** Token validation mode */
|
|
161
|
+
validationMode: z.enum(['jwks', 'introspection', 'local']).optional(),
|
|
162
|
+
}),
|
|
163
|
+
// ─── OAuth2 Authentication (UNIFIED APPROACH) ───
|
|
164
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
165
|
+
kind: z.literal(ExternalProvider_Auth_Kind.OAUTH2),
|
|
166
|
+
// ─── OAuth2 Provider Reference (Unified Approach) ───
|
|
167
|
+
/**
|
|
168
|
+
* Reference to OAuth2 provider definition
|
|
169
|
+
* Instead of duplicating OAuth2 config, reference the provider
|
|
170
|
+
* by its string identifier (e.g., "google", "microsoft")
|
|
171
|
+
*/
|
|
172
|
+
oauth2ProviderRef: z.string().optional(),
|
|
173
|
+
// ─── Inline OAuth2 Configuration (Legacy/Override) ───
|
|
174
|
+
/** Authorization URL (can be overridden or used when no ref) */
|
|
175
|
+
authUrl: z.url().optional(),
|
|
176
|
+
/** Token URL */
|
|
177
|
+
tokenUrl: z.url().optional(),
|
|
178
|
+
/** Refresh URL (if different from tokenUrl) */
|
|
179
|
+
refreshUrl: z.url().optional(),
|
|
180
|
+
/** Required scopes for this auth profile */
|
|
181
|
+
scopes: z.array(z.string()).optional(),
|
|
182
|
+
/** Preferred grant type */
|
|
183
|
+
grantType: z.enum(OAuth2_GrantType).optional(),
|
|
184
|
+
/** Token endpoint auth method */
|
|
185
|
+
tokenEndpointAuthMethod: z.enum(OAuth2_TokenEndpoint_AuthMethod).optional(),
|
|
186
|
+
/** PKCE support */
|
|
187
|
+
pkce: z.boolean().optional(),
|
|
188
|
+
/** PKCE method */
|
|
189
|
+
pkceMethod: z.enum(OAuth2_PKCE_Method).optional(),
|
|
190
|
+
/** Prompt behavior */
|
|
191
|
+
prompt: z.enum(OAuth2_Prompt).optional(),
|
|
192
|
+
/** Access type (online/offline) */
|
|
193
|
+
accessType: z.enum(OAuth2_AccessType).optional(),
|
|
194
|
+
/** Extra authorization parameters */
|
|
195
|
+
extraAuthParams: z.record(z.string(), z.string()).optional(),
|
|
196
|
+
/** Extra token parameters */
|
|
197
|
+
extraTokenParams: z.record(z.string(), z.string()).optional(),
|
|
198
|
+
// ─── Token Format (for API calls) ───
|
|
199
|
+
/** How to format the token in Authorization header */
|
|
200
|
+
tokenFormat: z.enum(['bearer', 'token', 'oauth', 'custom']).default('bearer'),
|
|
201
|
+
/** Custom prefix if tokenFormat is 'custom' */
|
|
202
|
+
customTokenPrefix: z.string().optional(),
|
|
203
|
+
}),
|
|
204
|
+
// ─── Basic Authentication ───
|
|
205
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
206
|
+
kind: z.literal(ExternalProvider_Auth_Kind.BASIC),
|
|
207
|
+
/** Username field reference */
|
|
208
|
+
usernameRef: z.string().optional(),
|
|
209
|
+
/** Password field reference */
|
|
210
|
+
passwordRef: z.string().optional(),
|
|
211
|
+
}),
|
|
212
|
+
// ─── No Authentication ───
|
|
213
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
214
|
+
kind: z.literal(ExternalProvider_Auth_Kind.NONE),
|
|
215
|
+
}),
|
|
216
|
+
// ─── Frontend Secret ───
|
|
217
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
218
|
+
kind: z.literal(ExternalProvider_Auth_Kind.FRONTEND_SECRET),
|
|
219
|
+
/** Secret is only used in frontend context */
|
|
220
|
+
frontendOnly: z.boolean().default(true),
|
|
221
|
+
}),
|
|
222
|
+
// ─── Mutual TLS ───
|
|
223
|
+
ExternalProvider_AuthProfile_BaseSchema.extend({
|
|
224
|
+
kind: z.literal(ExternalProvider_Auth_Kind.MUTUAL_TLS),
|
|
225
|
+
/** Certificate reference */
|
|
226
|
+
certificateRef: z.string().optional(),
|
|
227
|
+
/** Private key reference */
|
|
228
|
+
privateKeyRef: z.string().optional(),
|
|
229
|
+
/** CA certificate reference */
|
|
230
|
+
caRef: z.string().optional(),
|
|
231
|
+
}),
|
|
232
|
+
]);
|
|
233
|
+
//# sourceMappingURL=security.external-connectors-models.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/core/security.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External Provider Capabilities - Core Definitions
|
|
3
|
+
*
|
|
4
|
+
* Capabilities represent standardized behaviors that can be implemented
|
|
5
|
+
* across multiple providers. Each capability has:
|
|
6
|
+
* - A standard interface (request/response schemas)
|
|
7
|
+
* - A transformer interface (for provider-specific ETL)
|
|
8
|
+
* - Discovery through provider definitions (not protocols)
|
|
9
|
+
*
|
|
10
|
+
* Capabilities are defined at the PROVIDER level, not protocol level.
|
|
11
|
+
* This enables provider-agnostic usage in the backend through
|
|
12
|
+
* the ETL (Extract-Transform-Load) pattern.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Standard capabilities that providers can implement.
|
|
16
|
+
* Each capability maps to a standardized interface and ETL transformer.
|
|
17
|
+
*
|
|
18
|
+
* IMPORTANT: Each capability is fully independent - even if related
|
|
19
|
+
* (like email capabilities), they have separate transformers and files.
|
|
20
|
+
*/
|
|
21
|
+
export declare enum ExternalProvider_Capability {
|
|
22
|
+
/**
|
|
23
|
+
* Transactional email sending - password resets, receipts, notifications.
|
|
24
|
+
* Standard interface: StandardEmail_SendRequest/Response
|
|
25
|
+
* Transformer: EmailTransactional_Transformer
|
|
26
|
+
*/
|
|
27
|
+
EMAIL_TRANSACTIONAL = "email_transactional",
|
|
28
|
+
/**
|
|
29
|
+
* Marketing email campaigns - newsletters, promotions.
|
|
30
|
+
* Standard interface: StandardMarketing_CampaignRequest/Response
|
|
31
|
+
* Transformer: EmailMarketing_Transformer
|
|
32
|
+
*/
|
|
33
|
+
EMAIL_MARKETING = "email_marketing",
|
|
34
|
+
/**
|
|
35
|
+
* Billing provider — subscriptions, payments, invoices, metered usage.
|
|
36
|
+
* Standard interface: StandardBilling_Interface
|
|
37
|
+
* Transformer: Billing_Transformer
|
|
38
|
+
*/
|
|
39
|
+
BILLING = "billing",
|
|
40
|
+
/**
|
|
41
|
+
* SMS sending - OTP codes, phone verification, notifications.
|
|
42
|
+
* Standard interface: StandardSMS_SendRequest/Response
|
|
43
|
+
* Transformer: SMS_Transformer
|
|
44
|
+
*/
|
|
45
|
+
SMS = "sms"
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Metadata about each capability for discovery and documentation.
|
|
49
|
+
*/
|
|
50
|
+
export declare const ExternalProvider_CapabilityMetadata: Record<ExternalProvider_Capability, {
|
|
51
|
+
displayName: string;
|
|
52
|
+
description: string;
|
|
53
|
+
category: "email" | "llm" | "auth" | "storage" | "billing" | "sms" | "other";
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Base interface for all capability transformers.
|
|
57
|
+
* Each capability extends this with its specific transformation methods.
|
|
58
|
+
*/
|
|
59
|
+
export interface CapabilityTransformer<TCapability extends ExternalProvider_Capability = ExternalProvider_Capability> {
|
|
60
|
+
/** The capability this transformer implements */
|
|
61
|
+
readonly feature: TCapability;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=core.external-connectors-models.schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/features/core.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;GAMG;AACH,oBAAY,2BAA2B;IAKrC;;;;OAIG;IACH,mBAAmB,wBAAwB;IAE3C;;;;OAIG;IACH,eAAe,oBAAoB;IAenC;;;;OAIG;IACH,OAAO,YAAY;IAMnB;;;;OAIG;IACH,GAAG,QAAQ;CASZ;AAMD;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,2BAA2B,EAAE;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;CAC9E,CAqBA,CAAC;AAMF;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CAAC,WAAW,SAAS,2BAA2B,GAAG,2BAA2B;IAClH,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External Provider Capabilities - Core Definitions
|
|
3
|
+
*
|
|
4
|
+
* Capabilities represent standardized behaviors that can be implemented
|
|
5
|
+
* across multiple providers. Each capability has:
|
|
6
|
+
* - A standard interface (request/response schemas)
|
|
7
|
+
* - A transformer interface (for provider-specific ETL)
|
|
8
|
+
* - Discovery through provider definitions (not protocols)
|
|
9
|
+
*
|
|
10
|
+
* Capabilities are defined at the PROVIDER level, not protocol level.
|
|
11
|
+
* This enables provider-agnostic usage in the backend through
|
|
12
|
+
* the ETL (Extract-Transform-Load) pattern.
|
|
13
|
+
*/
|
|
14
|
+
// ===============================================================
|
|
15
|
+
// Capabilities Enum
|
|
16
|
+
// ===============================================================
|
|
17
|
+
/**
|
|
18
|
+
* Standard capabilities that providers can implement.
|
|
19
|
+
* Each capability maps to a standardized interface and ETL transformer.
|
|
20
|
+
*
|
|
21
|
+
* IMPORTANT: Each capability is fully independent - even if related
|
|
22
|
+
* (like email capabilities), they have separate transformers and files.
|
|
23
|
+
*/
|
|
24
|
+
export var ExternalProvider_Capability;
|
|
25
|
+
(function (ExternalProvider_Capability) {
|
|
26
|
+
// ============================================================
|
|
27
|
+
// Email Capabilities (fully segregated)
|
|
28
|
+
// ============================================================
|
|
29
|
+
/**
|
|
30
|
+
* Transactional email sending - password resets, receipts, notifications.
|
|
31
|
+
* Standard interface: StandardEmail_SendRequest/Response
|
|
32
|
+
* Transformer: EmailTransactional_Transformer
|
|
33
|
+
*/
|
|
34
|
+
ExternalProvider_Capability["EMAIL_TRANSACTIONAL"] = "email_transactional";
|
|
35
|
+
/**
|
|
36
|
+
* Marketing email campaigns - newsletters, promotions.
|
|
37
|
+
* Standard interface: StandardMarketing_CampaignRequest/Response
|
|
38
|
+
* Transformer: EmailMarketing_Transformer
|
|
39
|
+
*/
|
|
40
|
+
ExternalProvider_Capability["EMAIL_MARKETING"] = "email_marketing";
|
|
41
|
+
// ============================================================
|
|
42
|
+
// LLM Capabilities (future)
|
|
43
|
+
// ============================================================
|
|
44
|
+
// LLM_TEXT_GENERATION = "llm_text_generation",
|
|
45
|
+
// LLM_STRUCTURED_OUTPUT = "llm_structured_output",
|
|
46
|
+
// LLM_STREAMING = "llm_streaming",
|
|
47
|
+
// LLM_MULTIMODAL = "llm_multimodal",
|
|
48
|
+
// ============================================================
|
|
49
|
+
// Billing Capabilities
|
|
50
|
+
// ============================================================
|
|
51
|
+
/**
|
|
52
|
+
* Billing provider — subscriptions, payments, invoices, metered usage.
|
|
53
|
+
* Standard interface: StandardBilling_Interface
|
|
54
|
+
* Transformer: Billing_Transformer
|
|
55
|
+
*/
|
|
56
|
+
ExternalProvider_Capability["BILLING"] = "billing";
|
|
57
|
+
// ============================================================
|
|
58
|
+
// SMS Capabilities (Phase G2)
|
|
59
|
+
// ============================================================
|
|
60
|
+
/**
|
|
61
|
+
* SMS sending - OTP codes, phone verification, notifications.
|
|
62
|
+
* Standard interface: StandardSMS_SendRequest/Response
|
|
63
|
+
* Transformer: SMS_Transformer
|
|
64
|
+
*/
|
|
65
|
+
ExternalProvider_Capability["SMS"] = "sms";
|
|
66
|
+
// ============================================================
|
|
67
|
+
// Other Capabilities (future)
|
|
68
|
+
// ============================================================
|
|
69
|
+
// OAUTH2_SSO = "oauth2_sso",
|
|
70
|
+
// WEBHOOK_RECEIVER = "webhook_receiver",
|
|
71
|
+
// FILE_STORAGE = "file_storage",
|
|
72
|
+
})(ExternalProvider_Capability || (ExternalProvider_Capability = {}));
|
|
73
|
+
// ===============================================================
|
|
74
|
+
// Capability Metadata
|
|
75
|
+
// ===============================================================
|
|
76
|
+
/**
|
|
77
|
+
* Metadata about each capability for discovery and documentation.
|
|
78
|
+
*/
|
|
79
|
+
export const ExternalProvider_CapabilityMetadata = {
|
|
80
|
+
[ExternalProvider_Capability.EMAIL_TRANSACTIONAL]: {
|
|
81
|
+
displayName: "Transactional Email",
|
|
82
|
+
description: "Send transactional emails like password resets, receipts, and notifications",
|
|
83
|
+
category: "email",
|
|
84
|
+
},
|
|
85
|
+
[ExternalProvider_Capability.EMAIL_MARKETING]: {
|
|
86
|
+
displayName: "Marketing Email",
|
|
87
|
+
description: "Send marketing campaigns, newsletters, and promotional emails",
|
|
88
|
+
category: "email",
|
|
89
|
+
},
|
|
90
|
+
[ExternalProvider_Capability.BILLING]: {
|
|
91
|
+
displayName: "Billing",
|
|
92
|
+
description: "Manage subscriptions, payments, invoices, and metered usage via a billing provider",
|
|
93
|
+
category: "billing",
|
|
94
|
+
},
|
|
95
|
+
[ExternalProvider_Capability.SMS]: {
|
|
96
|
+
displayName: "SMS",
|
|
97
|
+
description: "Send SMS messages for OTP codes, phone verification, and notifications",
|
|
98
|
+
category: "sms",
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=core.external-connectors-models.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/features/core.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kEAAkE;AAClE,oBAAoB;AACpB,kEAAkE;AAElE;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,2BAyDX;AAzDD,WAAY,2BAA2B;IACrC,+DAA+D;IAC/D,wCAAwC;IACxC,+DAA+D;IAE/D;;;;OAIG;IACH,0EAA2C,CAAA;IAE3C;;;;OAIG;IACH,kEAAmC,CAAA;IAEnC,+DAA+D;IAC/D,4BAA4B;IAC5B,+DAA+D;IAE/D,+CAA+C;IAC/C,mDAAmD;IACnD,mCAAmC;IACnC,qCAAqC;IAErC,+DAA+D;IAC/D,uBAAuB;IACvB,+DAA+D;IAE/D;;;;OAIG;IACH,kDAAmB,CAAA;IAEnB,+DAA+D;IAC/D,8BAA8B;IAC9B,+DAA+D;IAE/D;;;;OAIG;IACH,0CAAW,CAAA;IAEX,+DAA+D;IAC/D,8BAA8B;IAC9B,+DAA+D;IAE/D,6BAA6B;IAC7B,yCAAyC;IACzC,iCAAiC;AACnC,CAAC,EAzDW,2BAA2B,KAA3B,2BAA2B,QAyDtC;AAED,kEAAkE;AAClE,sBAAsB;AACtB,kEAAkE;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAI3C;IACH,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,EAAE;QACjD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,6EAA6E;QAC1F,QAAQ,EAAE,OAAO;KAClB;IACD,CAAC,2BAA2B,CAAC,eAAe,CAAC,EAAE;QAC7C,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,+DAA+D;QAC5E,QAAQ,EAAE,OAAO;KAClB;IACD,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE;QACrC,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,oFAAoF;QACjG,QAAQ,EAAE,SAAS;KACpB;IACD,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE;QACjC,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,wEAAwE;QACrF,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Capabilities - Transformer Interfaces
|
|
3
|
+
*
|
|
4
|
+
* This file defines the transformer interfaces for email capabilities:
|
|
5
|
+
* - EMAIL_TRANSACTIONAL: Transactional email sending
|
|
6
|
+
* - EMAIL_MARKETING: Marketing campaign orchestration
|
|
7
|
+
*
|
|
8
|
+
* These capabilities are FULLY SEGREGATED - each has independent:
|
|
9
|
+
* - Transformer interface
|
|
10
|
+
* - Standard request/response types (in protocols/email.standard-interface.schemas.ts)
|
|
11
|
+
* - Provider implementations
|
|
12
|
+
*/
|
|
13
|
+
import { ExternalProvider_Capability, CapabilityTransformer } from "./core.external-connectors-models.schemas.js";
|
|
14
|
+
import type { SMS_Transformer } from "./sms.external-connectors-models.schemas.js";
|
|
15
|
+
import type { StandardBilling_Interface } from "../protocols/billing.standard-interface.schemas.js";
|
|
16
|
+
import type { StandardEmail_SendRequest, StandardEmail_SendResponse, StandardEmail_SendTemplateRequest, StandardEmail_BatchRequest, StandardEmail_BatchResponse, StandardMarketing_CampaignRequest, StandardMarketing_CampaignResponse } from "../protocols/email.standard-interface.schemas.js";
|
|
17
|
+
/**
|
|
18
|
+
* Context passed to parse methods when additional info from the request is needed.
|
|
19
|
+
* This allows parse methods to access recipient counts, emails, etc.
|
|
20
|
+
*/
|
|
21
|
+
export interface EmailTransactional_ParseContext<TRequest = unknown> {
|
|
22
|
+
/** The original standard request (for extracting recipient info) */
|
|
23
|
+
originalRequest?: TRequest;
|
|
24
|
+
/** Response headers from the provider */
|
|
25
|
+
headers?: Record<string, string>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Transformer for EMAIL_TRANSACTIONAL capability.
|
|
29
|
+
* Providers implement this to transform standard requests to their API format.
|
|
30
|
+
*/
|
|
31
|
+
export interface EmailTransactional_Transformer extends CapabilityTransformer<typeof ExternalProvider_Capability.EMAIL_TRANSACTIONAL> {
|
|
32
|
+
feature: typeof ExternalProvider_Capability.EMAIL_TRANSACTIONAL;
|
|
33
|
+
/** Transform standard send request to provider format */
|
|
34
|
+
transformSendEmail(request: StandardEmail_SendRequest): unknown;
|
|
35
|
+
/** Parse provider response to standard format */
|
|
36
|
+
parseSendEmailResponse(response: unknown, context?: EmailTransactional_ParseContext<StandardEmail_SendRequest>): StandardEmail_SendResponse;
|
|
37
|
+
/** Transform template send request (requires SUPPORTS_TEMPLATES) */
|
|
38
|
+
transformSendTemplate?(request: StandardEmail_SendTemplateRequest): unknown;
|
|
39
|
+
parseSendTemplateResponse?(response: unknown, context?: EmailTransactional_ParseContext<StandardEmail_SendTemplateRequest>): StandardEmail_SendResponse;
|
|
40
|
+
/** Transform batch send request (requires SUPPORTS_BATCH_SENDING) */
|
|
41
|
+
transformBatchSend?(request: StandardEmail_BatchRequest): unknown;
|
|
42
|
+
parseBatchSendResponse?(response: unknown, context?: EmailTransactional_ParseContext<StandardEmail_BatchRequest>): StandardEmail_BatchResponse;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Generic HTTP client interface for marketing workflows.
|
|
46
|
+
* The actual implementation is injected at runtime by the orchestrator.
|
|
47
|
+
*/
|
|
48
|
+
export interface EmailMarketing_HttpClient {
|
|
49
|
+
get<T = Record<string, unknown>>(path: string): Promise<T>;
|
|
50
|
+
post<T = Record<string, unknown>>(path: string, body: Record<string, unknown>): Promise<T>;
|
|
51
|
+
put<T = Record<string, unknown>>(path: string, body: Record<string, unknown>): Promise<T>;
|
|
52
|
+
delete<T = Record<string, unknown>>(path: string): Promise<T>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Context passed through the marketing workflow steps.
|
|
56
|
+
* Properly typed to avoid redundant casting in implementations.
|
|
57
|
+
*/
|
|
58
|
+
export interface EmailMarketing_WorkflowContext {
|
|
59
|
+
/** Correlation ID for the entire workflow (for logging/tracing) */
|
|
60
|
+
correlationId: string;
|
|
61
|
+
/** Provider-specific HTTP client - properly typed, no casting needed */
|
|
62
|
+
client: EmailMarketing_HttpClient;
|
|
63
|
+
/** Accumulated state from previous steps (for provider-specific data) */
|
|
64
|
+
state: Map<string, unknown>;
|
|
65
|
+
/** Logger for workflow steps (optional) */
|
|
66
|
+
log?: (message: string, data?: unknown) => void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Error data for marketing workflow failures.
|
|
70
|
+
* Includes information for potential rollback.
|
|
71
|
+
*/
|
|
72
|
+
export interface EmailMarketing_WorkflowErrorData {
|
|
73
|
+
message: string;
|
|
74
|
+
step: "prepareAudience" | "prepareContent" | "createCampaign" | "executeCampaign";
|
|
75
|
+
providerError?: unknown;
|
|
76
|
+
rollbackData?: {
|
|
77
|
+
listId?: string;
|
|
78
|
+
campaignId?: string;
|
|
79
|
+
listCreated?: boolean;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create a workflow error with rollback information.
|
|
84
|
+
* Use this instead of throwing plain errors in workflow steps.
|
|
85
|
+
*/
|
|
86
|
+
export declare function createEmailMarketing_WorkflowError(message: string, step: EmailMarketing_WorkflowErrorData["step"], providerError?: unknown, rollbackData?: EmailMarketing_WorkflowErrorData["rollbackData"]): Error & EmailMarketing_WorkflowErrorData;
|
|
87
|
+
/**
|
|
88
|
+
* Type guard to check if an error is a workflow error.
|
|
89
|
+
*/
|
|
90
|
+
export declare function isEmailMarketing_WorkflowError(error: unknown): error is Error & EmailMarketing_WorkflowErrorData;
|
|
91
|
+
/**
|
|
92
|
+
* Result of audience preparation step.
|
|
93
|
+
*/
|
|
94
|
+
export interface EmailMarketing_AudienceResult {
|
|
95
|
+
/** Provider's list/audience ID */
|
|
96
|
+
listId: string;
|
|
97
|
+
/** Number of contacts in the list */
|
|
98
|
+
audienceSize: number;
|
|
99
|
+
/** Was a new list created? */
|
|
100
|
+
listCreated: boolean;
|
|
101
|
+
/** How many contacts were added? */
|
|
102
|
+
contactsAdded: number;
|
|
103
|
+
/** Provider-specific data for next steps */
|
|
104
|
+
providerData?: unknown;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Result of content preparation step.
|
|
108
|
+
*/
|
|
109
|
+
export interface EmailMarketing_ContentResult {
|
|
110
|
+
/** Provider's template/content ID (if applicable) */
|
|
111
|
+
templateId?: string;
|
|
112
|
+
/** Was content prepared as template or inline? */
|
|
113
|
+
contentType: "template" | "inline";
|
|
114
|
+
/** Provider-specific data for next steps */
|
|
115
|
+
providerData?: unknown;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Result of campaign creation step.
|
|
119
|
+
*/
|
|
120
|
+
export interface EmailMarketing_CampaignResult {
|
|
121
|
+
/** Provider's campaign ID */
|
|
122
|
+
campaignId: string;
|
|
123
|
+
/** Current status */
|
|
124
|
+
status: "draft" | "ready";
|
|
125
|
+
/** Provider-specific data for execution */
|
|
126
|
+
providerData?: unknown;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Multi-step workflow for marketing campaigns.
|
|
130
|
+
* Each step can result in 1+ API calls to the provider.
|
|
131
|
+
*/
|
|
132
|
+
export interface EmailMarketing_Workflow {
|
|
133
|
+
/**
|
|
134
|
+
* Step 1: Ensure audience/list exists and is populated
|
|
135
|
+
* May involve: create list, add/update contacts
|
|
136
|
+
*/
|
|
137
|
+
prepareAudience(campaign: StandardMarketing_CampaignRequest, context: EmailMarketing_WorkflowContext): Promise<EmailMarketing_AudienceResult>;
|
|
138
|
+
/**
|
|
139
|
+
* Step 2: Prepare content/template
|
|
140
|
+
* May involve: create template, upload content
|
|
141
|
+
*/
|
|
142
|
+
prepareContent(campaign: StandardMarketing_CampaignRequest, audienceResult: EmailMarketing_AudienceResult, context: EmailMarketing_WorkflowContext): Promise<EmailMarketing_ContentResult>;
|
|
143
|
+
/**
|
|
144
|
+
* Step 3: Create the campaign
|
|
145
|
+
* May involve: create campaign, link to list and content
|
|
146
|
+
*/
|
|
147
|
+
createCampaign(campaign: StandardMarketing_CampaignRequest, audienceResult: EmailMarketing_AudienceResult, contentResult: EmailMarketing_ContentResult, context: EmailMarketing_WorkflowContext): Promise<EmailMarketing_CampaignResult>;
|
|
148
|
+
/**
|
|
149
|
+
* Step 4: Execute/schedule the campaign
|
|
150
|
+
* May involve: send immediately, schedule for later
|
|
151
|
+
*/
|
|
152
|
+
executeCampaign(campaign: StandardMarketing_CampaignRequest, campaignResult: EmailMarketing_CampaignResult, context: EmailMarketing_WorkflowContext): Promise<StandardMarketing_CampaignResponse>;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Transformer for EMAIL_MARKETING capability.
|
|
156
|
+
* Providers implement this to handle marketing campaign workflows.
|
|
157
|
+
*/
|
|
158
|
+
export interface EmailMarketing_Transformer extends CapabilityTransformer<typeof ExternalProvider_Capability.EMAIL_MARKETING> {
|
|
159
|
+
feature: typeof ExternalProvider_Capability.EMAIL_MARKETING;
|
|
160
|
+
/** Multi-step workflow for campaign execution */
|
|
161
|
+
workflow: EmailMarketing_Workflow;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Map of all available capability transformers.
|
|
165
|
+
* Each capability has its own independent transformer type.
|
|
166
|
+
*
|
|
167
|
+
* This type is used at the PROVIDER DEFINITION level, not protocol level.
|
|
168
|
+
*/
|
|
169
|
+
export type ProviderCapabilityTransformers = {
|
|
170
|
+
[ExternalProvider_Capability.EMAIL_TRANSACTIONAL]?: EmailTransactional_Transformer;
|
|
171
|
+
[ExternalProvider_Capability.EMAIL_MARKETING]?: EmailMarketing_Transformer;
|
|
172
|
+
/**
|
|
173
|
+
* Billing capability transformer class.
|
|
174
|
+
* Stored as a constructor (instantiated with credentials at startup).
|
|
175
|
+
* Must implement both StandardBilling_Interface (billing operations) and CapabilityTransformer (discovery).
|
|
176
|
+
*/
|
|
177
|
+
[ExternalProvider_Capability.BILLING]?: new (secretKey: string, apiVersion?: string) => StandardBilling_Interface & CapabilityTransformer;
|
|
178
|
+
/** SMS capability transformer (Phase G2) */
|
|
179
|
+
[ExternalProvider_Capability.SMS]?: SMS_Transformer;
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=email.external-connectors-models.schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/features/email.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Capabilities - Transformer Interfaces
|
|
3
|
+
*
|
|
4
|
+
* This file defines the transformer interfaces for email capabilities:
|
|
5
|
+
* - EMAIL_TRANSACTIONAL: Transactional email sending
|
|
6
|
+
* - EMAIL_MARKETING: Marketing campaign orchestration
|
|
7
|
+
*
|
|
8
|
+
* These capabilities are FULLY SEGREGATED - each has independent:
|
|
9
|
+
* - Transformer interface
|
|
10
|
+
* - Standard request/response types (in protocols/email.standard-interface.schemas.ts)
|
|
11
|
+
* - Provider implementations
|
|
12
|
+
*/
|
|
13
|
+
import { ExternalProvider_Capability } from "./core.external-connectors-models.schemas.js";
|
|
14
|
+
/**
|
|
15
|
+
* Create a workflow error with rollback information.
|
|
16
|
+
* Use this instead of throwing plain errors in workflow steps.
|
|
17
|
+
*/
|
|
18
|
+
export function createEmailMarketing_WorkflowError(message, step, providerError, rollbackData) {
|
|
19
|
+
const error = new Error(message);
|
|
20
|
+
error.name = "EmailMarketing_WorkflowError";
|
|
21
|
+
error.step = step;
|
|
22
|
+
error.providerError = providerError;
|
|
23
|
+
error.rollbackData = rollbackData;
|
|
24
|
+
return error;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Type guard to check if an error is a workflow error.
|
|
28
|
+
*/
|
|
29
|
+
export function isEmailMarketing_WorkflowError(error) {
|
|
30
|
+
return (error instanceof Error &&
|
|
31
|
+
error.name === "EmailMarketing_WorkflowError" &&
|
|
32
|
+
"step" in error);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=email.external-connectors-models.schemas.js.map
|