@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.
Files changed (114) hide show
  1. package/dist/esm/core/commons.external-connectors-models.schemas.d.ts +195 -0
  2. package/dist/esm/core/commons.external-connectors-models.schemas.d.ts.map +1 -0
  3. package/dist/esm/core/commons.external-connectors-models.schemas.js +96 -0
  4. package/dist/esm/core/commons.external-connectors-models.schemas.js.map +1 -0
  5. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts +127 -0
  6. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts.map +1 -0
  7. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js +22 -0
  8. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js.map +1 -0
  9. package/dist/esm/core/oauth2.enums.d.ts +125 -0
  10. package/dist/esm/core/oauth2.enums.d.ts.map +1 -0
  11. package/dist/esm/core/oauth2.enums.js +134 -0
  12. package/dist/esm/core/oauth2.enums.js.map +1 -0
  13. package/dist/esm/core/operations.external-connectors-models.schemas.d.ts +46 -0
  14. package/dist/esm/core/operations.external-connectors-models.schemas.d.ts.map +1 -0
  15. package/dist/esm/core/operations.external-connectors-models.schemas.js +10 -0
  16. package/dist/esm/core/operations.external-connectors-models.schemas.js.map +1 -0
  17. package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts +84 -0
  18. package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts.map +1 -0
  19. package/dist/esm/core/protocols.external-connectors-models.schemas.js +1 -0
  20. package/dist/esm/core/protocols.external-connectors-models.schemas.js.map +1 -0
  21. package/dist/esm/core/providers.external-connectors-models.schemas.d.ts +80 -0
  22. package/dist/esm/core/providers.external-connectors-models.schemas.d.ts.map +1 -0
  23. package/dist/esm/core/providers.external-connectors-models.schemas.js +55 -0
  24. package/dist/esm/core/providers.external-connectors-models.schemas.js.map +1 -0
  25. package/dist/esm/core/security.external-connectors-models.schemas.d.ts +187 -0
  26. package/dist/esm/core/security.external-connectors-models.schemas.d.ts.map +1 -0
  27. package/dist/esm/core/security.external-connectors-models.schemas.js +233 -0
  28. package/dist/esm/core/security.external-connectors-models.schemas.js.map +1 -0
  29. package/dist/esm/features/core.external-connectors-models.schemas.d.ts +63 -0
  30. package/dist/esm/features/core.external-connectors-models.schemas.d.ts.map +1 -0
  31. package/dist/esm/features/core.external-connectors-models.schemas.js +101 -0
  32. package/dist/esm/features/core.external-connectors-models.schemas.js.map +1 -0
  33. package/dist/esm/features/email.external-connectors-models.schemas.d.ts +181 -0
  34. package/dist/esm/features/email.external-connectors-models.schemas.d.ts.map +1 -0
  35. package/dist/esm/features/email.external-connectors-models.schemas.js +34 -0
  36. package/dist/esm/features/email.external-connectors-models.schemas.js.map +1 -0
  37. package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts +101 -0
  38. package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts.map +1 -0
  39. package/dist/esm/features/hooks.external-connectors-models.schemas.js +11 -0
  40. package/dist/esm/features/hooks.external-connectors-models.schemas.js.map +1 -0
  41. package/dist/esm/features/sms.external-connectors-models.schemas.d.ts +21 -0
  42. package/dist/esm/features/sms.external-connectors-models.schemas.d.ts.map +1 -0
  43. package/dist/esm/features/sms.external-connectors-models.schemas.js +8 -0
  44. package/dist/esm/features/sms.external-connectors-models.schemas.js.map +1 -0
  45. package/dist/esm/index.d.ts +28 -0
  46. package/dist/esm/index.d.ts.map +1 -0
  47. package/dist/esm/index.js +31 -0
  48. package/dist/esm/index.js.map +1 -0
  49. package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts +57 -0
  50. package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts.map +1 -0
  51. package/dist/esm/protocols/a2a.external-connectors-models.schemas.js +73 -0
  52. package/dist/esm/protocols/a2a.external-connectors-models.schemas.js.map +1 -0
  53. package/dist/esm/protocols/billing.standard-interface.schemas.d.ts +315 -0
  54. package/dist/esm/protocols/billing.standard-interface.schemas.d.ts.map +1 -0
  55. package/dist/esm/protocols/billing.standard-interface.schemas.js +104 -0
  56. package/dist/esm/protocols/billing.standard-interface.schemas.js.map +1 -0
  57. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts +214 -0
  58. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts.map +1 -0
  59. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js +188 -0
  60. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js.map +1 -0
  61. package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts +370 -0
  62. package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts.map +1 -0
  63. package/dist/esm/protocols/email.external-connectors-models.schemas.js +368 -0
  64. package/dist/esm/protocols/email.external-connectors-models.schemas.js.map +1 -0
  65. package/dist/esm/protocols/email.standard-interface.schemas.d.ts +330 -0
  66. package/dist/esm/protocols/email.standard-interface.schemas.d.ts.map +1 -0
  67. package/dist/esm/protocols/email.standard-interface.schemas.js +275 -0
  68. package/dist/esm/protocols/email.standard-interface.schemas.js.map +1 -0
  69. package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts +16 -0
  70. package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts.map +1 -0
  71. package/dist/esm/protocols/frontend.external-connectors-models.schemas.js +10 -0
  72. package/dist/esm/protocols/frontend.external-connectors-models.schemas.js.map +1 -0
  73. package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts +14 -0
  74. package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts.map +1 -0
  75. package/dist/esm/protocols/git.external-connectors-models.schemas.js +9 -0
  76. package/dist/esm/protocols/git.external-connectors-models.schemas.js.map +1 -0
  77. package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts +14 -0
  78. package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts.map +1 -0
  79. package/dist/esm/protocols/grpc.external-connectors-models.schemas.js +9 -0
  80. package/dist/esm/protocols/grpc.external-connectors-models.schemas.js.map +1 -0
  81. package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts +192 -0
  82. package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts.map +1 -0
  83. package/dist/esm/protocols/hooks.external-connectors-models.schemas.js +103 -0
  84. package/dist/esm/protocols/hooks.external-connectors-models.schemas.js.map +1 -0
  85. package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts +499 -0
  86. package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts.map +1 -0
  87. package/dist/esm/protocols/llm.external-connectors-models.schemas.js +351 -0
  88. package/dist/esm/protocols/llm.external-connectors-models.schemas.js.map +1 -0
  89. package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts +60 -0
  90. package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts.map +1 -0
  91. package/dist/esm/protocols/mcp.external-connectors-models.schemas.js +35 -0
  92. package/dist/esm/protocols/mcp.external-connectors-models.schemas.js.map +1 -0
  93. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts +570 -0
  94. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts.map +1 -0
  95. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js +401 -0
  96. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js.map +1 -0
  97. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts +125 -0
  98. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts.map +1 -0
  99. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js +92 -0
  100. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js.map +1 -0
  101. package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts +135 -0
  102. package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts.map +1 -0
  103. package/dist/esm/protocols/saml.external-connectors-models.schemas.js +9 -0
  104. package/dist/esm/protocols/saml.external-connectors-models.schemas.js.map +1 -0
  105. package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts +55 -0
  106. package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts.map +1 -0
  107. package/dist/esm/protocols/sms.external-connectors-models.schemas.js +46 -0
  108. package/dist/esm/protocols/sms.external-connectors-models.schemas.js.map +1 -0
  109. package/dist/esm/protocols/sms.standard-interface.schemas.d.ts +35 -0
  110. package/dist/esm/protocols/sms.standard-interface.schemas.d.ts.map +1 -0
  111. package/dist/esm/protocols/sms.standard-interface.schemas.js +54 -0
  112. package/dist/esm/protocols/sms.standard-interface.schemas.js.map +1 -0
  113. package/dist/tsconfig.build.tsbuildinfo +1 -0
  114. package/package.json +47 -0
@@ -0,0 +1,401 @@
1
+ /**
2
+ * OAuth2 Protocol Schemas for External Connectors
3
+ *
4
+ * This module integrates the comprehensive OAuth2 definitions with the
5
+ * external connectors protocol engine. It provides:
6
+ *
7
+ * 1. SSO_OAuth2 Protocol - For user authentication (OpenID Connect)
8
+ * 2. OAuth2 API Auth Profile - For linking OAuth2 to REST API authentication
9
+ */
10
+ import { z } from 'zod';
11
+ import { ExternalProvider_ExchangeProtocol_Configuration_BaseSchema, ExternalProvider_ExchangeProtocol_Kind, ExternalProvider_ExchangeProtocol_Profile_BaseSchema, ExternalProvider_ExchangeProtocol_Status_BaseSchema } from '../core/commons.external-connectors-models.schemas.js';
12
+ // Re-export OAuth2 enums from the shared enums file (avoids circular dependency)
13
+ export { OAuth2_GrantType, OAuth2_ResponseType, OAuth2_PKCE_Method, OAuth2_TokenEndpoint_AuthMethod, OAuth2_Prompt, OAuth2_AccessType, OAuth2_Purpose, OAuth2_TokenFormat, OAuth2_TokenLocation, } from '../core/oauth2.enums.js';
14
+ import { OAuth2_GrantType, OAuth2_ResponseType, OAuth2_PKCE_Method, OAuth2_TokenEndpoint_AuthMethod, OAuth2_Prompt, OAuth2_AccessType, OAuth2_Purpose, OAuth2_TokenFormat, OAuth2_TokenLocation, } from '../core/oauth2.enums.js';
15
+ /**
16
+ * OAuth2 and OpenID Connect Protocol Definitions
17
+ *
18
+ * Based on:
19
+ * - RFC 6749: The OAuth 2.0 Authorization Framework
20
+ * - RFC 7636: Proof Key for Code Exchange (PKCE)
21
+ * - OpenID Connect Core 1.0
22
+ * - RFC 7662: OAuth 2.0 Token Introspection
23
+ * - RFC 7009: OAuth 2.0 Token Revocation
24
+ *
25
+ * This module provides standardized OAuth2 definitions that unify:
26
+ * 1. API Authentication (for REST/GraphQL/Webhook calls)
27
+ * 2. User SSO Authentication (OpenID Connect overlay)
28
+ * 3. Service-to-Service (S2S) authentication
29
+ */
30
+ // =============================================================================
31
+ // CAPABILITY FLAGS - Provider Features and Limitations
32
+ // =============================================================================
33
+ /**
34
+ * OAuth2 Provider Capabilities - what the provider supports
35
+ * These flags help determine what flows and features are available
36
+ */
37
+ export const OAuth2_ProviderCapabilitiesSchema = z.object({
38
+ // ─── Grant Type Support ───
39
+ /** Supports authorization_code grant (user-interactive flow) */
40
+ supportsAuthorizationCode: z.boolean().optional(),
41
+ /** Supports client_credentials grant (S2S/machine-to-machine) */
42
+ supportsClientCredentials: z.boolean().optional(),
43
+ /** Supports device_code grant (input-constrained devices) */
44
+ supportsDeviceCode: z.boolean().optional(),
45
+ /** Supports JWT bearer assertions */
46
+ supportsJwtBearer: z.boolean().optional(),
47
+ // ─── Token Features ───
48
+ /** Supports refresh tokens */
49
+ supportsRefreshToken: z.boolean().optional(),
50
+ /** Provider rotates refresh tokens on each use */
51
+ rotatesRefreshToken: z.boolean().optional(),
52
+ /** Supports token revocation (RFC 7009) */
53
+ supportsTokenRevocation: z.boolean().optional(),
54
+ /** Supports token introspection (RFC 7662) */
55
+ supportsTokenIntrospection: z.boolean().optional(),
56
+ // ─── Security Features ───
57
+ /** Supports PKCE (RFC 7636) - required for public clients */
58
+ supportsPKCE: z.boolean().optional(),
59
+ /** PKCE is required (not optional) */
60
+ requiresPKCE: z.boolean().optional(),
61
+ /** Preferred PKCE method */
62
+ preferredPKCEMethod: z.enum(OAuth2_PKCE_Method).optional(),
63
+ // ─── OpenID Connect Features ───
64
+ /** Supports OpenID Connect */
65
+ supportsOIDC: z.boolean().optional(),
66
+ /** Supports OIDC Discovery (.well-known/openid-configuration) */
67
+ supportsOIDCDiscovery: z.boolean().optional(),
68
+ /** Supports userinfo endpoint */
69
+ supportsUserInfo: z.boolean().optional(),
70
+ /** Supports ID tokens */
71
+ supportsIdToken: z.boolean().optional(),
72
+ // ─── Advanced Features ───
73
+ /** Supports incremental authorization (adding scopes) */
74
+ supportsIncrementalAuth: z.boolean().optional(),
75
+ /** Supports scope reduction on token refresh */
76
+ supportsScopeReduction: z.boolean().optional(),
77
+ /** Supports custom domains/environments */
78
+ supportsCustomDomains: z.boolean().optional(),
79
+ /** Supports multi-tenancy */
80
+ supportsMultiTenancy: z.boolean().optional(),
81
+ });
82
+ // =============================================================================
83
+ // ENDPOINTS - OAuth2 Server Endpoints
84
+ // =============================================================================
85
+ /**
86
+ * OAuth2 Endpoints Configuration
87
+ * Standard endpoints as defined in RFC 6749 and OIDC Discovery
88
+ */
89
+ export const OAuth2_EndpointsSchema = z.object({
90
+ // ─── Core OAuth2 Endpoints (RFC 6749) ───
91
+ /** Authorization endpoint - where user grants access */
92
+ authorizationUrl: z.url(),
93
+ /** Token endpoint - where tokens are exchanged */
94
+ tokenUrl: z.url(),
95
+ // ─── Optional Endpoints ───
96
+ /** Refresh URL - often same as tokenUrl, but some providers differ */
97
+ refreshUrl: z.url().optional(),
98
+ /** Revocation endpoint (RFC 7009) */
99
+ revocationUrl: z.url().optional(),
100
+ /** Introspection endpoint (RFC 7662) */
101
+ introspectionUrl: z.url().optional(),
102
+ /** Device authorization endpoint (RFC 8628) */
103
+ deviceAuthorizationUrl: z.url().optional(),
104
+ // ─── OpenID Connect Endpoints ───
105
+ /** UserInfo endpoint - for fetching user profile */
106
+ userInfoUrl: z.url().optional(),
107
+ /** JWKS endpoint - for verifying tokens */
108
+ jwksUrl: z.url().optional(),
109
+ /** OIDC Discovery endpoint */
110
+ discoveryUrl: z.url().optional(),
111
+ /** End session / logout endpoint */
112
+ endSessionUrl: z.url().optional(),
113
+ // ─── Provider-Specific ───
114
+ /** Custom API base URL (for making authenticated API calls) */
115
+ apiBaseUrl: z.url().optional(),
116
+ });
117
+ // =============================================================================
118
+ // SCOPE DEFINITIONS - Granular Permissions
119
+ // =============================================================================
120
+ /**
121
+ * OAuth2 Scope Definition - describes what a scope grants
122
+ */
123
+ export const OAuth2_ScopeDefinitionSchema = z.object({
124
+ /** The scope string as used in OAuth2 requests */
125
+ scope: z.string(),
126
+ /** Human-readable description */
127
+ description: z.string().optional(),
128
+ /** Is this scope required or optional? */
129
+ required: z.boolean().optional(),
130
+ /** Category for grouping scopes (e.g., 'read', 'write', 'admin') */
131
+ category: z.string().optional(),
132
+ /** Is this an OIDC standard scope? */
133
+ isOIDC: z.boolean().optional(),
134
+ /** Does this scope grant offline access (refresh tokens)? */
135
+ grantsOfflineAccess: z.boolean().optional(),
136
+ /** Related resources or APIs this scope provides access to */
137
+ resources: z.array(z.string()).optional(),
138
+ });
139
+ /**
140
+ * Scope Collection - organized scopes for a provider
141
+ */
142
+ export const OAuth2_ScopeCollectionSchema = z.object({
143
+ /** All available scopes */
144
+ available: z.array(OAuth2_ScopeDefinitionSchema).optional(),
145
+ /** Default scopes for user SSO authentication */
146
+ defaultForSSO: z.array(z.string()).optional(),
147
+ /** Default scopes for API access */
148
+ defaultForAPI: z.array(z.string()).optional(),
149
+ /** Minimum required scopes */
150
+ minimum: z.array(z.string()).optional(),
151
+ /** Scope that grants offline/refresh access (e.g., 'offline_access') */
152
+ offlineAccessScope: z.string().optional(),
153
+ });
154
+ // =============================================================================
155
+ // TOKEN CONFIGURATION - Token handling specifics
156
+ // =============================================================================
157
+ /**
158
+ * Token Configuration - how tokens behave
159
+ */
160
+ export const OAuth2_TokenConfigSchema = z.object({
161
+ /** Token type (usually 'Bearer') */
162
+ tokenType: z.string().optional(),
163
+ /** Default access token lifetime in seconds */
164
+ accessTokenLifetime: z.number().positive().optional(),
165
+ /** Default refresh token lifetime in seconds */
166
+ refreshTokenLifetime: z.number().positive().optional(),
167
+ /** ID token lifetime in seconds (OIDC) */
168
+ idTokenLifetime: z.number().positive().optional(),
169
+ /** How to authenticate at the token endpoint */
170
+ tokenEndpointAuthMethod: z.enum(OAuth2_TokenEndpoint_AuthMethod).optional(),
171
+ /** Additional headers required for token requests */
172
+ tokenRequestHeaders: z.record(z.string(), z.string()).optional(),
173
+ /** How early (in seconds) to refresh tokens before expiry */
174
+ refreshBufferSeconds: z.number().nonnegative().optional(),
175
+ });
176
+ // =============================================================================
177
+ // MAIN OAUTH2 PROVIDER DEFINITION
178
+ // =============================================================================
179
+ /**
180
+ * Complete OAuth2 Provider Definition
181
+ * This is the main schema that captures all OAuth2 configuration for a provider
182
+ */
183
+ export const OAuth2_ProviderDefinitionSchema = z.object({
184
+ // ─── Identity ───
185
+ /** Unique provider identifier */
186
+ providerId: z.string().min(1),
187
+ /** Display name for UI */
188
+ displayName: z.string().min(1),
189
+ /** Provider icon URL */
190
+ iconUrl: z.url().optional(),
191
+ /** Primary brand color (hex) */
192
+ brandColor: z.string().optional(),
193
+ // ─── Purpose ───
194
+ /** What this OAuth2 config is used for */
195
+ purpose: z.enum(OAuth2_Purpose).default(OAuth2_Purpose.API_ACCESS),
196
+ /** Is this provider enabled? */
197
+ enabled: z.boolean().default(true),
198
+ // ─── Endpoints ───
199
+ /** OAuth2 endpoints configuration */
200
+ endpoints: OAuth2_EndpointsSchema,
201
+ // ─── Capabilities ───
202
+ /** What the provider supports (all fields have defaults) */
203
+ capabilities: OAuth2_ProviderCapabilitiesSchema.optional(),
204
+ // ─── Scopes ───
205
+ /** Scope definitions and defaults (all fields have defaults) */
206
+ scopes: OAuth2_ScopeCollectionSchema.optional(),
207
+ // ─── Token Configuration ───
208
+ /** Token handling configuration (all fields have defaults) */
209
+ tokenConfig: OAuth2_TokenConfigSchema.optional(),
210
+ // ─── Authorization Configuration ───
211
+ /** Preferred grant type */
212
+ preferredGrantType: z.enum(OAuth2_GrantType).default(OAuth2_GrantType.AUTHORIZATION_CODE),
213
+ /** Response type for authorization requests */
214
+ responseType: z.enum(OAuth2_ResponseType).default(OAuth2_ResponseType.CODE),
215
+ /** Prompt behavior */
216
+ prompt: z.enum(OAuth2_Prompt).optional(),
217
+ /** Access type (online/offline) */
218
+ accessType: z.enum(OAuth2_AccessType).default(OAuth2_AccessType.OFFLINE),
219
+ // ─── Dynamic Configuration ───
220
+ /**
221
+ * Template variables that can be substituted in URLs
222
+ * e.g., { location: 'us' } for 'https://accounts.{location}.zoho.com'
223
+ */
224
+ templateVariables: z.record(z.string(), z.object({
225
+ displayName: z.string(),
226
+ description: z.string().optional(),
227
+ required: z.boolean().optional(),
228
+ defaultValue: z.string().optional(),
229
+ options: z.array(z.object({
230
+ value: z.string(),
231
+ label: z.string(),
232
+ })).optional(),
233
+ })).optional(),
234
+ /** Extra parameters to include in authorization requests */
235
+ extraAuthParams: z.record(z.string(), z.string()).optional(),
236
+ /** Extra parameters to include in token requests */
237
+ extraTokenParams: z.record(z.string(), z.string()).optional(),
238
+ // ─── User Profile Mapping (OIDC/SSO) ───
239
+ /** Mapping for extracting user info from profile response */
240
+ userProfileMapping: z.object({
241
+ id: z.string().default('sub'),
242
+ email: z.string().default('email'),
243
+ name: z.string().default('name'),
244
+ image: z.string().default('picture'),
245
+ emailVerified: z.string().default('email_verified'),
246
+ }).optional(),
247
+ // ─── Provider-Specific Extensions ───
248
+ /** Provider-specific configuration extensions */
249
+ extensions: z.record(z.string(), z.unknown()).optional(),
250
+ });
251
+ // =============================================================================
252
+ // NOTE: OAuth2 configurations are defined per-provider in external-connectors
253
+ // =============================================================================
254
+ //
255
+ // Each provider folder (e.g., google/, microsoft/) contains its own OAuth2
256
+ // protocol definition. Use provider string identifiers to reference providers.
257
+ //
258
+ // =============================================================================
259
+ // SSO OAUTH2 PROTOCOL - For User Authentication
260
+ // =============================================================================
261
+ /**
262
+ * OAuth2 Provider Profile - UI and identification information
263
+ * Used when OAuth2 is exposed as an SSO protocol
264
+ *
265
+ * Note: Uses OAuth2_ProviderDefinitionSchema.pick() to avoid duplication
266
+ * of common fields (displayName, iconUrl, enabled, purpose)
267
+ */
268
+ export const OAuth2Provider_ProfileSchema = ExternalProvider_ExchangeProtocol_Profile_BaseSchema.extend({
269
+ /** Provider name (unique identifier) - string reference (e.g., "google", "openai") */
270
+ providerName: z.string().min(1, { message: 'Provider name is required' }),
271
+ /** Display name for UI - picked from OAuth2_ProviderDefinitionSchema */
272
+ displayName: OAuth2_ProviderDefinitionSchema.shape.displayName,
273
+ /** Icon URL for the provider - picked from OAuth2_ProviderDefinitionSchema */
274
+ iconUrl: OAuth2_ProviderDefinitionSchema.shape.iconUrl,
275
+ /** Button color for OAuth login buttons (SSO-specific) */
276
+ buttonColor: z.string().optional(),
277
+ /** Is this provider enabled? - picked from OAuth2_ProviderDefinitionSchema */
278
+ enabled: OAuth2_ProviderDefinitionSchema.shape.enabled,
279
+ /** Provider purpose (SSO, API, or both) - with SSO default for this context */
280
+ purpose: z.enum(OAuth2_Purpose).default(OAuth2_Purpose.USER_SSO),
281
+ });
282
+ // =============================================================================
283
+ // RUNTIME CREDENTIAL - Active OAuth2 credentials
284
+ // =============================================================================
285
+ /**
286
+ * OAuth2 Credential - Active tokens for a provider connection
287
+ * This is what gets stored after successful OAuth2 authentication
288
+ */
289
+ export const OAuth2_CredentialSchema = z.object({
290
+ /** Provider this credential is for */
291
+ providerId: z.string(),
292
+ /** Access token */
293
+ accessToken: z.string(),
294
+ /** Token type (usually 'Bearer') */
295
+ tokenType: z.string().default('Bearer'),
296
+ /** When the access token expires (Unix timestamp) */
297
+ expiresAt: z.number().optional(),
298
+ /** Refresh token (if available) */
299
+ refreshToken: z.string().optional(),
300
+ /** When the refresh token expires (Unix timestamp) */
301
+ refreshTokenExpiresAt: z.number().optional(),
302
+ /** ID token (OIDC) */
303
+ idToken: z.string().optional(),
304
+ /** Granted scopes (may differ from requested) */
305
+ scope: z.string().optional(),
306
+ /** When this credential was obtained */
307
+ claimedAt: z.number(),
308
+ /** Additional data from the token response */
309
+ data: z.record(z.string(), z.unknown()).optional(),
310
+ /** Provider-specific properties used during auth */
311
+ props: z.record(z.string(), z.unknown()).optional(),
312
+ });
313
+ /**
314
+ * OAuth2 Provider Configuration - Runtime configuration
315
+ * Contains the OAuth2 endpoints and configuration
316
+ */
317
+ export const OAuth2Provider_ConfigurationSchema = ExternalProvider_ExchangeProtocol_Configuration_BaseSchema.extend({
318
+ // ─── OAuth2 Core Configuration ───
319
+ /** Complete OAuth2 provider definition (new comprehensive approach) */
320
+ oauth2Definition: OAuth2_ProviderDefinitionSchema.optional(),
321
+ // ─── Legacy fields for backward compatibility ───
322
+ /** Authorization endpoint URL */
323
+ authorizationEndpoint: z.url().optional(),
324
+ /** Requested scopes */
325
+ scopes: z.array(z.string()).default([]),
326
+ /** Native SDK client IDs for Capacitor token exchange (F2). Apple uses bundle ID, Google uses per-platform OAuth client IDs. */
327
+ nativeClientIds: z.array(z.string()).optional(),
328
+ // ─── Integration Access (for providers that offer multiple APIs) ───
329
+ integrationAccess: z.object({
330
+ /** Enable third-party integrations through this OAuth2 connection */
331
+ enableIntegrations: z.boolean().default(false),
332
+ /** Available integrations (e.g., ['drive', 'calendar', 'contacts']) */
333
+ availableIntegrations: z.array(z.string()).default([]),
334
+ /** Default integrations to enable */
335
+ defaultIntegrations: z.array(z.string()).default([]),
336
+ /** User must grant permission for each integration */
337
+ requiresPermission: z.boolean().default(true),
338
+ }).default({
339
+ enableIntegrations: false,
340
+ availableIntegrations: [],
341
+ defaultIntegrations: [],
342
+ requiresPermission: true,
343
+ }),
344
+ });
345
+ /**
346
+ * OAuth2 Provider Operation - Operations that require OAuth2
347
+ * Currently empty, reserved for future use
348
+ */
349
+ export const OAuth2Provider_OperationSchema = z.object({});
350
+ /**
351
+ * OAuth2 Provider Status - Connection status
352
+ */
353
+ export const OAuth2Provider_StatusSchema = ExternalProvider_ExchangeProtocol_Status_BaseSchema.extend({
354
+ protocolKind: z.literal(ExternalProvider_ExchangeProtocol_Kind.SSO_OAUTH2),
355
+ /** Current credential (if connected) */
356
+ credential: OAuth2_CredentialSchema.optional(),
357
+ /** Is the token valid/not expired? */
358
+ isTokenValid: z.boolean().optional(),
359
+ /** Does the token need refresh? */
360
+ needsRefresh: z.boolean().optional(),
361
+ /** Last token refresh time */
362
+ lastRefreshAt: z.number().optional(),
363
+ /** Granted scopes (may differ from requested) */
364
+ grantedScopes: z.array(z.string()).optional(),
365
+ /** Missing required scopes */
366
+ missingScopes: z.array(z.string()).optional(),
367
+ });
368
+ // =============================================================================
369
+ // OAUTH2 API AUTHENTICATION LINK (Consolidated)
370
+ // =============================================================================
371
+ /**
372
+ * OAuth2 API Auth Link
373
+ *
374
+ * Unified schema for linking OAuth2 credentials to REST API / Hook authentication.
375
+ * This prevents duplication between auth profile and OAuth2 config.
376
+ *
377
+ * When a REST API uses OAuth2 for authentication:
378
+ * 1. Define the OAuth2 provider once (endpoints, scopes, capabilities)
379
+ * 2. Link it to the API auth profile using this schema
380
+ * 3. The system will automatically:
381
+ * - Manage token refresh
382
+ * - Format Authorization headers
383
+ * - Track required scopes per operation
384
+ */
385
+ export const OAuth2_APIAuthLinkSchema = z.object({
386
+ /** Reference to the OAuth2 provider definition */
387
+ oauth2ProviderRef: z.string().min(1),
388
+ /** Which scopes are needed for this API access */
389
+ requiredScopes: z.array(z.string()).default([]),
390
+ /** How to format the token for API calls */
391
+ tokenFormat: z.enum(OAuth2_TokenFormat).default(OAuth2_TokenFormat.BEARER),
392
+ /** Where to send the access token */
393
+ tokenLocation: z.enum(OAuth2_TokenLocation).default(OAuth2_TokenLocation.HEADER),
394
+ /** Custom header name (when tokenFormat is 'custom_header') */
395
+ customHeaderName: z.string().optional(),
396
+ /** Query parameter name (when tokenLocation is 'query') */
397
+ queryParamName: z.string().optional(),
398
+ /** Prefix for the token value (optional override) */
399
+ tokenPrefix: z.string().optional(),
400
+ });
401
+ //# sourceMappingURL=oauth2.external-connectors-models.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/protocols/oauth2.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import { z } from "zod";
2
+ import { API_HttpMethod, ExternalProvider_ExchangeProtocol_Kind, ExternalProvider_ExchangeProtocol_Profile_Base, ExternalProvider_ExchangeProtocol_Configuration_Base } from "../core/commons.external-connectors-models.schemas.js";
3
+ import { ExternalProvider_OperationDefinition_Base } from "../core/operations.external-connectors-models.schemas.js";
4
+ export declare enum API_ParameterIn {
5
+ QUERY = "query",
6
+ HEADER = "header",
7
+ PATH = "path",
8
+ COOKIE = "cookie"
9
+ }
10
+ export declare enum API_ContentType {
11
+ JSON = "application/json",
12
+ XML = "application/xml",
13
+ FORM_URLENCODED = "application/x-www-form-urlencoded",
14
+ MULTIPART_FORM = "multipart/form-data",
15
+ TEXT_PLAIN = "text/plain",
16
+ OCTET_STREAM = "application/octet-stream"
17
+ }
18
+ export declare const API_ParameterSchema: z.ZodObject<{
19
+ name: z.ZodString;
20
+ in: z.ZodEnum<typeof API_ParameterIn>;
21
+ description: z.ZodOptional<z.ZodString>;
22
+ required: z.ZodDefault<z.ZodBoolean>;
23
+ deprecated: z.ZodOptional<z.ZodBoolean>;
24
+ schemaRef: z.ZodOptional<z.ZodString>;
25
+ type: z.ZodOptional<z.ZodEnum<{
26
+ string: "string";
27
+ number: "number";
28
+ boolean: "boolean";
29
+ array: "array";
30
+ integer: "integer";
31
+ }>>;
32
+ format: z.ZodOptional<z.ZodString>;
33
+ enumValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
35
+ }, z.core.$strip>;
36
+ export type API_Parameter = z.infer<typeof API_ParameterSchema>;
37
+ export declare const REST_API_OperationSpecSchema: z.ZodObject<{
38
+ method: z.ZodEnum<typeof API_HttpMethod>;
39
+ path: z.ZodString;
40
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
41
+ name: z.ZodString;
42
+ in: z.ZodEnum<typeof API_ParameterIn>;
43
+ description: z.ZodOptional<z.ZodString>;
44
+ required: z.ZodDefault<z.ZodBoolean>;
45
+ deprecated: z.ZodOptional<z.ZodBoolean>;
46
+ schemaRef: z.ZodOptional<z.ZodString>;
47
+ type: z.ZodOptional<z.ZodEnum<{
48
+ string: "string";
49
+ number: "number";
50
+ boolean: "boolean";
51
+ array: "array";
52
+ integer: "integer";
53
+ }>>;
54
+ format: z.ZodOptional<z.ZodString>;
55
+ enumValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
56
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
57
+ }, z.core.$strip>>>;
58
+ requestContentType: z.ZodOptional<z.ZodEnum<typeof API_ContentType>>;
59
+ responseContentType: z.ZodOptional<z.ZodEnum<typeof API_ContentType>>;
60
+ rateLimit: z.ZodOptional<z.ZodObject<{
61
+ requests: z.ZodNumber;
62
+ period: z.ZodEnum<{
63
+ second: "second";
64
+ minute: "minute";
65
+ hour: "hour";
66
+ day: "day";
67
+ }>;
68
+ }, z.core.$strip>>;
69
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
70
+ deprecated: z.ZodOptional<z.ZodBoolean>;
71
+ }, z.core.$strip>;
72
+ export type REST_API_OperationSpec = z.infer<typeof REST_API_OperationSpecSchema>;
73
+ export type REST_API_Provider_Profile = ExternalProvider_ExchangeProtocol_Profile_Base & {
74
+ baseURL: string;
75
+ version?: string;
76
+ defaultHeaders?: Record<string, string>;
77
+ serverVariables?: Record<string, {
78
+ default: string;
79
+ enum?: string[];
80
+ description?: string;
81
+ }>;
82
+ /**
83
+ * Common error schema for this API
84
+ * Used for standardized error handling across all operations
85
+ * Individual operations can override with their own error schema if needed
86
+ */
87
+ errorSchema?: z.ZodSchema<any>;
88
+ };
89
+ export type REST_API_Provider_Configuration = ExternalProvider_ExchangeProtocol_Configuration_Base & {
90
+ defaultTimeout?: number;
91
+ defaultRetries?: number;
92
+ pagination?: {
93
+ style: "offset" | "cursor" | "page" | "link";
94
+ pageParam?: string;
95
+ limitParam?: string;
96
+ defaultLimit?: number;
97
+ };
98
+ };
99
+ export declare const REST_API_OperationContextSchema: z.ZodObject<{
100
+ callTimestamp: z.ZodISODateTime;
101
+ callDuration: z.ZodOptional<z.ZodNumber>;
102
+ errorReason: z.ZodOptional<z.ZodString>;
103
+ requestMethod: z.ZodEnum<typeof API_HttpMethod>;
104
+ requestPath: z.ZodString;
105
+ requestUrl: z.ZodString;
106
+ responseStatus: z.ZodNumber;
107
+ responseStatusText: z.ZodOptional<z.ZodString>;
108
+ rateLimitRemaining: z.ZodOptional<z.ZodNumber>;
109
+ rateLimitReset: z.ZodOptional<z.ZodString>;
110
+ retryCount: z.ZodOptional<z.ZodNumber>;
111
+ }, z.core.$strip>;
112
+ export type REST_API_OperationContext = z.infer<typeof REST_API_OperationContextSchema>;
113
+ export type REST_API_OperationDefinition = ExternalProvider_OperationDefinition_Base & {
114
+ spec: REST_API_OperationSpec;
115
+ operationContextSchema: typeof REST_API_OperationContextSchema;
116
+ };
117
+ export declare const REST_APIProvider_StatusSchema: z.ZodObject<{
118
+ status: z.ZodEnum<typeof import("../index.js").ExternalProvider_Status>;
119
+ lastCheckedAt: z.ZodString;
120
+ errorReason: z.ZodOptional<z.ZodString>;
121
+ protocolKind: z.ZodLiteral<ExternalProvider_ExchangeProtocol_Kind.REST_API>;
122
+ apiVersion: z.ZodOptional<z.ZodString>;
123
+ }, z.core.$strip>;
124
+ export type REST_APIProvider_Status = z.infer<typeof REST_APIProvider_StatusSchema>;
125
+ //# sourceMappingURL=rest-api.external-connectors-models.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-api.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/protocols/rest-api.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,sCAAsC,EAEtC,8CAA8C,EAC9C,oDAAoD,EACrD,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAA2C,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAa3J,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,eAAe;IACzB,IAAI,qBAAqB;IACzB,GAAG,oBAAoB;IACvB,eAAe,sCAAsC;IACrD,cAAc,wBAAwB;IACtC,UAAU,eAAe;IACzB,YAAY,6BAA6B;CAC1C;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;iBAe9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMlF,MAAM,MAAM,yBAAyB,GAAG,8CAA8C,GAAG;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IAEH;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CAChC,CAAC;AAMF,MAAM,MAAM,+BAA+B,GAAG,oDAAoD,GAAG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;QAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAMF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;iBAgB1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAMxF,MAAM,MAAM,4BAA4B,GAAG,yCAAyC,GAAG;IACrF,IAAI,EAAE,sBAAsB,CAAC;IAC7B,sBAAsB,EAAE,OAAO,+BAA+B,CAAC;CAIhE,CAAC;AAMF,eAAO,MAAM,6BAA6B;;;;;;iBAGxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { z } from "zod";
2
+ import { API_HttpMethod, ExternalProvider_ExchangeProtocol_Kind, ExternalProvider_ExchangeProtocol_Status_BaseSchema } from "../core/commons.external-connectors-models.schemas.js";
3
+ import { ExternalProvider_OperationContextSchema } from "../core/operations.external-connectors-models.schemas.js";
4
+ //===============================================================
5
+ // REST API Provider
6
+ // --------
7
+ // Integration with REST APIs. Uses Zod schemas for request/response
8
+ // definitions. OpenAPI-compatible concepts mapped to Zod types.
9
+ //===============================================================
10
+ // ===============================================================
11
+ // Parameter Location & Content Types
12
+ // ===============================================================
13
+ export var API_ParameterIn;
14
+ (function (API_ParameterIn) {
15
+ API_ParameterIn["QUERY"] = "query";
16
+ API_ParameterIn["HEADER"] = "header";
17
+ API_ParameterIn["PATH"] = "path";
18
+ API_ParameterIn["COOKIE"] = "cookie";
19
+ })(API_ParameterIn || (API_ParameterIn = {}));
20
+ export var API_ContentType;
21
+ (function (API_ContentType) {
22
+ API_ContentType["JSON"] = "application/json";
23
+ API_ContentType["XML"] = "application/xml";
24
+ API_ContentType["FORM_URLENCODED"] = "application/x-www-form-urlencoded";
25
+ API_ContentType["MULTIPART_FORM"] = "multipart/form-data";
26
+ API_ContentType["TEXT_PLAIN"] = "text/plain";
27
+ API_ContentType["OCTET_STREAM"] = "application/octet-stream";
28
+ })(API_ContentType || (API_ContentType = {}));
29
+ // ===============================================================
30
+ // API Parameter (for path, query, header params)
31
+ // ===============================================================
32
+ export const API_ParameterSchema = z.object({
33
+ name: z.string(),
34
+ in: z.enum(API_ParameterIn),
35
+ description: z.string().optional(),
36
+ required: z.boolean().default(false),
37
+ deprecated: z.boolean().optional(),
38
+ // Schema is a Zod schema reference (stored as string for serialization)
39
+ schemaRef: z.string().optional(), // Reference to a named schema
40
+ // Or inline type info
41
+ type: z.enum(["string", "number", "integer", "boolean", "array"]).optional(),
42
+ format: z.string().optional(), // e.g., "date-time", "email", "uuid"
43
+ enumValues: z.array(z.string()).optional(),
44
+ defaultValue: z.unknown().optional(),
45
+ });
46
+ // ===============================================================
47
+ // REST API Operation Spec
48
+ // ===============================================================
49
+ export const REST_API_OperationSpecSchema = z.object({
50
+ // HTTP specifics
51
+ method: z.enum(API_HttpMethod),
52
+ path: z.string(), // e.g., "/users/{userId}/posts"
53
+ // Parameters
54
+ parameters: z.array(API_ParameterSchema).optional(),
55
+ // Request/Response content types
56
+ requestContentType: z.enum(API_ContentType).optional(),
57
+ responseContentType: z.enum(API_ContentType).optional(),
58
+ // Rate limiting hints
59
+ rateLimit: z.object({
60
+ requests: z.number(),
61
+ period: z.enum(["second", "minute", "hour", "day"]),
62
+ }).optional(),
63
+ // Tags for grouping
64
+ tags: z.array(z.string()).optional(),
65
+ // Deprecation
66
+ deprecated: z.boolean().optional(),
67
+ });
68
+ // ===============================================================
69
+ // REST API Operation Context (for tracking)
70
+ // ===============================================================
71
+ export const REST_API_OperationContextSchema = ExternalProvider_OperationContextSchema.extend({
72
+ // Request details
73
+ requestMethod: z.enum(API_HttpMethod),
74
+ requestPath: z.string(),
75
+ requestUrl: z.string(),
76
+ // Response details
77
+ responseStatus: z.number(),
78
+ responseStatusText: z.string().optional(),
79
+ // Rate limit info
80
+ rateLimitRemaining: z.number().optional(),
81
+ rateLimitReset: z.string().optional(),
82
+ // Retry info
83
+ retryCount: z.number().optional(),
84
+ });
85
+ // ===============================================================
86
+ // STATUS
87
+ // ===============================================================
88
+ export const REST_APIProvider_StatusSchema = ExternalProvider_ExchangeProtocol_Status_BaseSchema.extend({
89
+ protocolKind: z.literal(ExternalProvider_ExchangeProtocol_Kind.REST_API),
90
+ apiVersion: z.string().optional(),
91
+ });
92
+ //# sourceMappingURL=rest-api.external-connectors-models.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-api.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/protocols/rest-api.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}