@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,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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"}
|