@objectstack/spec 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -1
- package/dist/api/contract.zod.d.ts +1733 -0
- package/dist/api/contract.zod.d.ts.map +1 -0
- package/dist/api/contract.zod.js +138 -0
- package/dist/data/dataset.zod.d.ts +2 -2
- package/dist/data/field.zod.d.ts +1648 -10
- package/dist/data/field.zod.d.ts.map +1 -1
- package/dist/data/field.zod.js +149 -8
- package/dist/data/filter.zod.d.ts +295 -0
- package/dist/data/filter.zod.d.ts.map +1 -0
- package/dist/data/filter.zod.js +226 -0
- package/dist/data/mapping.zod.d.ts +215 -2
- package/dist/data/mapping.zod.d.ts.map +1 -1
- package/dist/data/object.zod.d.ts +505 -25
- package/dist/data/object.zod.d.ts.map +1 -1
- package/dist/data/object.zod.js +32 -5
- package/dist/data/query.zod.d.ts +349 -0
- package/dist/data/query.zod.d.ts.map +1 -1
- package/dist/data/query.zod.js +77 -1
- package/dist/data/trigger.zod.d.ts +354 -0
- package/dist/data/trigger.zod.d.ts.map +1 -0
- package/dist/data/trigger.zod.js +195 -0
- package/dist/data/validation.zod.d.ts +83 -43
- package/dist/data/validation.zod.d.ts.map +1 -1
- package/dist/data/validation.zod.js +51 -5
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/system/api.zod.d.ts +130 -4
- package/dist/system/api.zod.d.ts.map +1 -1
- package/dist/system/api.zod.js +4 -1
- package/dist/system/auth.zod.d.ts +2287 -0
- package/dist/system/auth.zod.d.ts.map +1 -0
- package/dist/system/auth.zod.js +365 -0
- package/dist/system/datasource.zod.d.ts +193 -30
- package/dist/system/datasource.zod.d.ts.map +1 -1
- package/dist/system/datasource.zod.js +58 -11
- package/dist/system/discovery.zod.d.ts +174 -0
- package/dist/system/discovery.zod.d.ts.map +1 -0
- package/dist/system/discovery.zod.js +53 -0
- package/dist/system/driver.zod.d.ts +1631 -0
- package/dist/system/driver.zod.d.ts.map +1 -0
- package/dist/system/driver.zod.js +337 -0
- package/dist/system/license.zod.d.ts +2 -2
- package/dist/system/manifest.zod.d.ts +323 -52
- package/dist/system/manifest.zod.d.ts.map +1 -1
- package/dist/system/manifest.zod.js +91 -17
- package/dist/system/plugin.zod.d.ts +3516 -0
- package/dist/system/plugin.zod.d.ts.map +1 -0
- package/dist/system/plugin.zod.js +226 -0
- package/dist/system/policy.zod.d.ts +10 -10
- package/dist/system/territory.zod.d.ts +1 -1
- package/dist/system/webhook.zod.d.ts +3 -3
- package/dist/ui/action.zod.d.ts +19 -12
- package/dist/ui/action.zod.d.ts.map +1 -1
- package/dist/ui/action.zod.js +7 -1
- package/dist/ui/app.zod.d.ts +109 -3
- package/dist/ui/app.zod.d.ts.map +1 -1
- package/dist/ui/app.zod.js +13 -2
- package/dist/ui/dashboard.zod.d.ts +19 -13
- package/dist/ui/dashboard.zod.d.ts.map +1 -1
- package/dist/ui/dashboard.zod.js +10 -3
- package/dist/ui/page.zod.d.ts +6 -6
- package/dist/ui/report.zod.d.ts +13 -32
- package/dist/ui/report.zod.d.ts.map +1 -1
- package/dist/ui/report.zod.js +10 -9
- package/dist/ui/theme.zod.d.ts +1221 -0
- package/dist/ui/theme.zod.d.ts.map +1 -0
- package/dist/ui/theme.zod.js +202 -0
- package/dist/ui/widget.zod.d.ts +350 -0
- package/dist/ui/widget.zod.d.ts.map +1 -0
- package/dist/ui/widget.zod.js +66 -0
- package/json-schema/AccountLinkingConfig.json +27 -0
- package/json-schema/Action.json +8 -2
- package/json-schema/ActionParam.json +8 -2
- package/json-schema/Address.json +40 -0
- package/json-schema/AggregationFunction.json +19 -0
- package/json-schema/AggregationNode.json +42 -0
- package/json-schema/Animation.json +56 -0
- package/json-schema/ApiCapabilities.json +28 -0
- package/json-schema/ApiError.json +27 -0
- package/json-schema/ApiRoutes.json +41 -0
- package/json-schema/App.json +13 -2
- package/json-schema/AsyncValidation.json +70 -0
- package/json-schema/AuthConfig.json +606 -0
- package/json-schema/AuthPluginConfig.json +28 -0
- package/json-schema/AuthStrategy.json +17 -0
- package/json-schema/AuthenticationConfig.json +601 -0
- package/json-schema/AuthenticationProvider.json +617 -0
- package/json-schema/BaseResponse.json +63 -0
- package/json-schema/BorderRadius.json +44 -0
- package/json-schema/Breakpoints.json +36 -0
- package/json-schema/BulkRequest.json +29 -0
- package/json-schema/BulkResponse.json +108 -0
- package/json-schema/CSRFConfig.json +31 -0
- package/json-schema/ColorPalette.json +83 -0
- package/json-schema/ComparisonOperator.json +56 -0
- package/json-schema/ConditionalValidation.json +793 -0
- package/json-schema/CreateRequest.json +20 -0
- package/json-schema/CrossFieldValidation.json +56 -0
- package/json-schema/CustomValidator.json +57 -0
- package/json-schema/Dashboard.json +20 -0
- package/json-schema/DashboardWidget.json +20 -0
- package/json-schema/DatabaseAdapter.json +38 -0
- package/json-schema/Datasource.json +25 -23
- package/json-schema/DatasourceCapabilities.json +25 -5
- package/json-schema/DeleteResponse.json +68 -0
- package/json-schema/Discovery.json +114 -0
- package/json-schema/DriverCapabilities.json +69 -0
- package/json-schema/DriverDefinition.json +86 -0
- package/json-schema/DriverInterface.json +88 -0
- package/json-schema/DriverOptions.json +23 -0
- package/json-schema/DriverType.json +1 -18
- package/json-schema/EmailPasswordConfig.json +43 -0
- package/json-schema/EqualityOperator.json +14 -0
- package/json-schema/ExportRequest.json +786 -0
- package/json-schema/Field.json +75 -4
- package/json-schema/FieldOperators.json +108 -0
- package/json-schema/FieldType.json +8 -2
- package/json-schema/FieldWidgetProps.json +327 -0
- package/json-schema/FilterCondition.json +28 -0
- package/json-schema/I18nContext.json +12 -0
- package/json-schema/JoinNode.json +455 -0
- package/json-schema/JoinType.json +15 -0
- package/json-schema/ListRecordResponse.json +103 -0
- package/json-schema/LocationCoordinates.json +36 -0
- package/json-schema/Logger.json +25 -0
- package/json-schema/MagicLinkConfig.json +21 -0
- package/json-schema/Manifest.json +243 -18
- package/json-schema/Mapping.json +328 -0
- package/json-schema/ModificationResult.json +46 -0
- package/json-schema/NormalizedFilter.json +348 -0
- package/json-schema/OAuthProvider.json +66 -0
- package/json-schema/Object.json +103 -6
- package/json-schema/ObjectCapabilities.json +26 -0
- package/json-schema/ObjectQLClient.json +12 -0
- package/json-schema/PasskeyConfig.json +54 -0
- package/json-schema/Plugin.json +20 -0
- package/json-schema/PluginContext.json +91 -0
- package/json-schema/PluginLifecycle.json +11 -0
- package/json-schema/Query.json +328 -0
- package/json-schema/QueryFilter.json +34 -0
- package/json-schema/RangeOperator.json +41 -0
- package/json-schema/RateLimitConfig.json +36 -0
- package/json-schema/RecordData.json +11 -0
- package/json-schema/Report.json +20 -26
- package/json-schema/Router.json +12 -0
- package/json-schema/Scheduler.json +12 -0
- package/json-schema/ScopedStorage.json +12 -0
- package/json-schema/SessionConfig.json +56 -0
- package/json-schema/SetOperator.json +18 -0
- package/json-schema/Shadow.json +44 -0
- package/json-schema/SingleRecordResponse.json +69 -0
- package/json-schema/Spacing.json +64 -0
- package/json-schema/SpecialOperator.json +18 -0
- package/json-schema/StandardAuthProvider.json +622 -0
- package/json-schema/StringOperator.json +21 -0
- package/json-schema/SystemAPI.json +12 -0
- package/json-schema/Theme.json +543 -0
- package/json-schema/ThemeMode.json +14 -0
- package/json-schema/Trigger.json +73 -0
- package/json-schema/TriggerAction.json +14 -0
- package/json-schema/TriggerContext.json +61 -0
- package/json-schema/TriggerTiming.json +13 -0
- package/json-schema/TwoFactorConfig.json +40 -0
- package/json-schema/Typography.json +142 -0
- package/json-schema/UpdateRequest.json +20 -0
- package/json-schema/UserFieldMapping.json +47 -0
- package/json-schema/ValidationRule.json +583 -0
- package/json-schema/WindowFunction.json +24 -0
- package/json-schema/WindowFunctionNode.json +104 -0
- package/json-schema/WindowSpec.json +65 -0
- package/json-schema/ZIndex.json +44 -0
- package/package.json +8 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.zod.d.ts","sourceRoot":"","sources":["../../src/system/auth.zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardAuthProviderSchema = exports.AuthConfigSchema = exports.AuthPluginConfigSchema = exports.DatabaseAdapterSchema = exports.UserFieldMappingSchema = exports.TwoFactorConfigSchema = exports.AccountLinkingConfigSchema = exports.CSRFConfigSchema = exports.RateLimitConfigSchema = exports.SessionConfigSchema = exports.PasskeyConfigSchema = exports.MagicLinkConfigSchema = exports.EmailPasswordConfigSchema = exports.OAuthProviderSchema = exports.AuthStrategy = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Authentication Protocol
|
|
7
|
+
*
|
|
8
|
+
* Defines the standard authentication specification for the ObjectStack ecosystem.
|
|
9
|
+
* This protocol supports multiple authentication strategies, session management,
|
|
10
|
+
* and comprehensive security features.
|
|
11
|
+
*
|
|
12
|
+
* This is a framework-agnostic specification that can be implemented with any
|
|
13
|
+
* authentication library (better-auth, Auth.js, Passport, etc.)
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Supported authentication strategies
|
|
17
|
+
*/
|
|
18
|
+
exports.AuthStrategy = zod_1.z.enum([
|
|
19
|
+
'email_password', // Traditional email & password authentication
|
|
20
|
+
'magic_link', // Passwordless email magic link
|
|
21
|
+
'oauth', // OAuth2 providers (Google, GitHub, etc.)
|
|
22
|
+
'passkey', // WebAuthn / FIDO2 passkeys
|
|
23
|
+
'otp', // One-time password (SMS, Email)
|
|
24
|
+
'anonymous', // Anonymous/guest sessions
|
|
25
|
+
]);
|
|
26
|
+
/**
|
|
27
|
+
* OAuth Provider Configuration
|
|
28
|
+
* Supports popular OAuth2 providers
|
|
29
|
+
*/
|
|
30
|
+
exports.OAuthProviderSchema = zod_1.z.object({
|
|
31
|
+
provider: zod_1.z.enum([
|
|
32
|
+
'google',
|
|
33
|
+
'github',
|
|
34
|
+
'facebook',
|
|
35
|
+
'twitter',
|
|
36
|
+
'linkedin',
|
|
37
|
+
'microsoft',
|
|
38
|
+
'apple',
|
|
39
|
+
'discord',
|
|
40
|
+
'gitlab',
|
|
41
|
+
'custom',
|
|
42
|
+
]).describe('OAuth provider type'),
|
|
43
|
+
clientId: zod_1.z.string().describe('OAuth client ID'),
|
|
44
|
+
clientSecret: zod_1.z.string().describe('OAuth client secret (typically from ENV)'),
|
|
45
|
+
scopes: zod_1.z.array(zod_1.z.string()).optional().describe('Requested OAuth scopes'),
|
|
46
|
+
redirectUri: zod_1.z.string().url().optional().describe('OAuth callback URL'),
|
|
47
|
+
enabled: zod_1.z.boolean().default(true).describe('Whether this provider is enabled'),
|
|
48
|
+
displayName: zod_1.z.string().optional().describe('Display name for the provider button'),
|
|
49
|
+
icon: zod_1.z.string().optional().describe('Icon URL or identifier'),
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Email & Password Strategy Configuration
|
|
53
|
+
*/
|
|
54
|
+
exports.EmailPasswordConfigSchema = zod_1.z.object({
|
|
55
|
+
enabled: zod_1.z.boolean().default(true),
|
|
56
|
+
requireEmailVerification: zod_1.z.boolean().default(true).describe('Require email verification before login'),
|
|
57
|
+
minPasswordLength: zod_1.z.number().min(6).max(128).default(8).describe('Minimum password length'),
|
|
58
|
+
requirePasswordComplexity: zod_1.z.boolean().default(true).describe('Require uppercase, lowercase, numbers, symbols'),
|
|
59
|
+
allowPasswordReset: zod_1.z.boolean().default(true).describe('Enable password reset functionality'),
|
|
60
|
+
passwordResetExpiry: zod_1.z.number().default(3600).describe('Password reset token expiry in seconds'),
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* Magic Link Strategy Configuration
|
|
64
|
+
*/
|
|
65
|
+
exports.MagicLinkConfigSchema = zod_1.z.object({
|
|
66
|
+
enabled: zod_1.z.boolean().default(true),
|
|
67
|
+
expiryTime: zod_1.z.number().default(900).describe('Magic link expiry time in seconds (default 15 min)'),
|
|
68
|
+
sendEmail: zod_1.z.function()
|
|
69
|
+
.args(zod_1.z.object({
|
|
70
|
+
to: zod_1.z.string().email(),
|
|
71
|
+
link: zod_1.z.string().url(),
|
|
72
|
+
token: zod_1.z.string(),
|
|
73
|
+
}))
|
|
74
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
75
|
+
.optional()
|
|
76
|
+
.describe('Custom email sending function'),
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* Passkey (WebAuthn) Strategy Configuration
|
|
80
|
+
*/
|
|
81
|
+
exports.PasskeyConfigSchema = zod_1.z.object({
|
|
82
|
+
enabled: zod_1.z.boolean().default(false),
|
|
83
|
+
rpName: zod_1.z.string().describe('Relying Party name'),
|
|
84
|
+
rpId: zod_1.z.string().optional().describe('Relying Party ID (defaults to domain)'),
|
|
85
|
+
allowedOrigins: zod_1.z.array(zod_1.z.string().url()).optional().describe('Allowed origins for WebAuthn'),
|
|
86
|
+
userVerification: zod_1.z.enum(['required', 'preferred', 'discouraged']).default('preferred'),
|
|
87
|
+
attestation: zod_1.z.enum(['none', 'indirect', 'direct', 'enterprise']).default('none'),
|
|
88
|
+
});
|
|
89
|
+
/**
|
|
90
|
+
* Session Configuration
|
|
91
|
+
*/
|
|
92
|
+
exports.SessionConfigSchema = zod_1.z.object({
|
|
93
|
+
expiresIn: zod_1.z.number().default(86400 * 7).describe('Session expiry in seconds (default 7 days)'),
|
|
94
|
+
updateAge: zod_1.z.number().default(86400).describe('Session update interval in seconds (default 1 day)'),
|
|
95
|
+
cookieName: zod_1.z.string().default('session_token').describe('Session cookie name'),
|
|
96
|
+
cookieSecure: zod_1.z.boolean().default(true).describe('Use secure cookies (HTTPS only)'),
|
|
97
|
+
cookieSameSite: zod_1.z.enum(['strict', 'lax', 'none']).default('lax').describe('SameSite cookie attribute'),
|
|
98
|
+
cookieDomain: zod_1.z.string().optional().describe('Cookie domain'),
|
|
99
|
+
cookiePath: zod_1.z.string().default('/').describe('Cookie path'),
|
|
100
|
+
cookieHttpOnly: zod_1.z.boolean().default(true).describe('HttpOnly cookie attribute'),
|
|
101
|
+
});
|
|
102
|
+
/**
|
|
103
|
+
* Rate Limiting Configuration
|
|
104
|
+
*/
|
|
105
|
+
exports.RateLimitConfigSchema = zod_1.z.object({
|
|
106
|
+
enabled: zod_1.z.boolean().default(true),
|
|
107
|
+
maxAttempts: zod_1.z.number().default(5).describe('Maximum login attempts'),
|
|
108
|
+
windowMs: zod_1.z.number().default(900000).describe('Time window in milliseconds (default 15 min)'),
|
|
109
|
+
blockDuration: zod_1.z.number().default(900000).describe('Block duration after max attempts in ms'),
|
|
110
|
+
skipSuccessfulRequests: zod_1.z.boolean().default(false).describe('Only count failed requests'),
|
|
111
|
+
});
|
|
112
|
+
/**
|
|
113
|
+
* CSRF Protection Configuration
|
|
114
|
+
*/
|
|
115
|
+
exports.CSRFConfigSchema = zod_1.z.object({
|
|
116
|
+
enabled: zod_1.z.boolean().default(true),
|
|
117
|
+
tokenLength: zod_1.z.number().default(32).describe('CSRF token length'),
|
|
118
|
+
cookieName: zod_1.z.string().default('csrf_token').describe('CSRF cookie name'),
|
|
119
|
+
headerName: zod_1.z.string().default('X-CSRF-Token').describe('CSRF header name'),
|
|
120
|
+
});
|
|
121
|
+
/**
|
|
122
|
+
* Account Linking Configuration
|
|
123
|
+
* Allows linking multiple auth methods to a single user account
|
|
124
|
+
*/
|
|
125
|
+
exports.AccountLinkingConfigSchema = zod_1.z.object({
|
|
126
|
+
enabled: zod_1.z.boolean().default(true).describe('Allow account linking'),
|
|
127
|
+
autoLink: zod_1.z.boolean().default(false).describe('Automatically link accounts with same email'),
|
|
128
|
+
requireVerification: zod_1.z.boolean().default(true).describe('Require email verification before linking'),
|
|
129
|
+
});
|
|
130
|
+
/**
|
|
131
|
+
* Two-Factor Authentication (2FA) Configuration
|
|
132
|
+
*/
|
|
133
|
+
exports.TwoFactorConfigSchema = zod_1.z.object({
|
|
134
|
+
enabled: zod_1.z.boolean().default(false),
|
|
135
|
+
issuer: zod_1.z.string().optional().describe('TOTP issuer name'),
|
|
136
|
+
qrCodeSize: zod_1.z.number().default(200).describe('QR code size in pixels'),
|
|
137
|
+
backupCodes: zod_1.z.object({
|
|
138
|
+
enabled: zod_1.z.boolean().default(true),
|
|
139
|
+
count: zod_1.z.number().default(10).describe('Number of backup codes to generate'),
|
|
140
|
+
}).optional(),
|
|
141
|
+
});
|
|
142
|
+
/**
|
|
143
|
+
* User Field Mapping Configuration
|
|
144
|
+
* Maps authentication user fields to ObjectStack user object fields
|
|
145
|
+
*/
|
|
146
|
+
exports.UserFieldMappingSchema = zod_1.z.object({
|
|
147
|
+
id: zod_1.z.string().default('id').describe('User ID field'),
|
|
148
|
+
email: zod_1.z.string().default('email').describe('Email field'),
|
|
149
|
+
name: zod_1.z.string().default('name').describe('Name field'),
|
|
150
|
+
image: zod_1.z.string().default('image').optional().describe('Profile image field'),
|
|
151
|
+
emailVerified: zod_1.z.string().default('email_verified').describe('Email verification status field'),
|
|
152
|
+
createdAt: zod_1.z.string().default('created_at').describe('Created timestamp field'),
|
|
153
|
+
updatedAt: zod_1.z.string().default('updated_at').describe('Updated timestamp field'),
|
|
154
|
+
});
|
|
155
|
+
/**
|
|
156
|
+
* Database Adapter Configuration
|
|
157
|
+
*/
|
|
158
|
+
exports.DatabaseAdapterSchema = zod_1.z.object({
|
|
159
|
+
type: zod_1.z.enum(['prisma', 'drizzle', 'kysely', 'custom']).describe('Database adapter type'),
|
|
160
|
+
connectionString: zod_1.z.string().optional().describe('Database connection string'),
|
|
161
|
+
tablePrefix: zod_1.z.string().default('auth_').describe('Prefix for auth tables'),
|
|
162
|
+
schema: zod_1.z.string().optional().describe('Database schema name'),
|
|
163
|
+
});
|
|
164
|
+
/**
|
|
165
|
+
* Authentication Plugin Configuration
|
|
166
|
+
* Extends authentication with additional features
|
|
167
|
+
*/
|
|
168
|
+
exports.AuthPluginConfigSchema = zod_1.z.object({
|
|
169
|
+
name: zod_1.z.string().describe('Plugin name'),
|
|
170
|
+
enabled: zod_1.z.boolean().default(true),
|
|
171
|
+
options: zod_1.z.record(zod_1.z.any()).optional().describe('Plugin-specific options'),
|
|
172
|
+
});
|
|
173
|
+
/**
|
|
174
|
+
* Complete Authentication Configuration Schema
|
|
175
|
+
*
|
|
176
|
+
* This is the main configuration object for authentication
|
|
177
|
+
* in an ObjectStack application.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* const authConfig: AuthConfig = {
|
|
182
|
+
* name: 'main_auth',
|
|
183
|
+
* label: 'Main Authentication',
|
|
184
|
+
* strategies: ['email_password', 'oauth'],
|
|
185
|
+
* baseUrl: 'https://app.example.com',
|
|
186
|
+
* secret: process.env.AUTH_SECRET,
|
|
187
|
+
* driver: 'better-auth', // Optional, defaults to 'better-auth'
|
|
188
|
+
* emailPassword: {
|
|
189
|
+
* enabled: true,
|
|
190
|
+
* minPasswordLength: 8,
|
|
191
|
+
* },
|
|
192
|
+
* oauth: {
|
|
193
|
+
* providers: [{
|
|
194
|
+
* provider: 'google',
|
|
195
|
+
* clientId: process.env.GOOGLE_CLIENT_ID,
|
|
196
|
+
* clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
197
|
+
* }],
|
|
198
|
+
* },
|
|
199
|
+
* session: {
|
|
200
|
+
* expiresIn: 604800, // 7 days
|
|
201
|
+
* },
|
|
202
|
+
* };
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
exports.AuthConfigSchema = zod_1.z.object({
|
|
206
|
+
/**
|
|
207
|
+
* Unique identifier for this auth configuration
|
|
208
|
+
* Must be in snake_case following ObjectStack conventions
|
|
209
|
+
*/
|
|
210
|
+
name: zod_1.z.string()
|
|
211
|
+
.regex(/^[a-z_][a-z0-9_]*$/)
|
|
212
|
+
.describe('Configuration name (snake_case)'),
|
|
213
|
+
/**
|
|
214
|
+
* Human-readable label
|
|
215
|
+
*/
|
|
216
|
+
label: zod_1.z.string().describe('Display label'),
|
|
217
|
+
/**
|
|
218
|
+
* The underlying authentication implementation driver
|
|
219
|
+
* Default: 'better-auth' (the reference implementation)
|
|
220
|
+
* Can be: 'better-auth', 'auth-js', 'passport', or custom driver name
|
|
221
|
+
*/
|
|
222
|
+
driver: zod_1.z.string().default('better-auth').describe('The underlying authentication implementation driver'),
|
|
223
|
+
/**
|
|
224
|
+
* Enabled authentication strategies
|
|
225
|
+
*/
|
|
226
|
+
strategies: zod_1.z.array(exports.AuthStrategy).min(1).describe('Enabled authentication strategies'),
|
|
227
|
+
/**
|
|
228
|
+
* Base URL for the application
|
|
229
|
+
*/
|
|
230
|
+
baseUrl: zod_1.z.string().url().describe('Application base URL'),
|
|
231
|
+
/**
|
|
232
|
+
* Secret key for signing tokens and cookies
|
|
233
|
+
* Should be loaded from environment variables
|
|
234
|
+
*/
|
|
235
|
+
secret: zod_1.z.string().min(32).describe('Secret key for signing (min 32 chars)'),
|
|
236
|
+
/**
|
|
237
|
+
* Email & Password configuration
|
|
238
|
+
*/
|
|
239
|
+
emailPassword: exports.EmailPasswordConfigSchema.optional(),
|
|
240
|
+
/**
|
|
241
|
+
* Magic Link configuration
|
|
242
|
+
*/
|
|
243
|
+
magicLink: exports.MagicLinkConfigSchema.optional(),
|
|
244
|
+
/**
|
|
245
|
+
* Passkey (WebAuthn) configuration
|
|
246
|
+
*/
|
|
247
|
+
passkey: exports.PasskeyConfigSchema.optional(),
|
|
248
|
+
/**
|
|
249
|
+
* OAuth configuration
|
|
250
|
+
*/
|
|
251
|
+
oauth: zod_1.z.object({
|
|
252
|
+
providers: zod_1.z.array(exports.OAuthProviderSchema).min(1),
|
|
253
|
+
}).optional(),
|
|
254
|
+
/**
|
|
255
|
+
* Session configuration
|
|
256
|
+
*/
|
|
257
|
+
session: exports.SessionConfigSchema.default({}),
|
|
258
|
+
/**
|
|
259
|
+
* Rate limiting configuration
|
|
260
|
+
*/
|
|
261
|
+
rateLimit: exports.RateLimitConfigSchema.default({}),
|
|
262
|
+
/**
|
|
263
|
+
* CSRF protection configuration
|
|
264
|
+
*/
|
|
265
|
+
csrf: exports.CSRFConfigSchema.default({}),
|
|
266
|
+
/**
|
|
267
|
+
* Account linking configuration
|
|
268
|
+
*/
|
|
269
|
+
accountLinking: exports.AccountLinkingConfigSchema.default({}),
|
|
270
|
+
/**
|
|
271
|
+
* Two-factor authentication configuration
|
|
272
|
+
*/
|
|
273
|
+
twoFactor: exports.TwoFactorConfigSchema.optional(),
|
|
274
|
+
/**
|
|
275
|
+
* User field mapping
|
|
276
|
+
*/
|
|
277
|
+
userFieldMapping: exports.UserFieldMappingSchema.default({}),
|
|
278
|
+
/**
|
|
279
|
+
* Database adapter configuration
|
|
280
|
+
*/
|
|
281
|
+
database: exports.DatabaseAdapterSchema.optional(),
|
|
282
|
+
/**
|
|
283
|
+
* Additional authentication plugins
|
|
284
|
+
*/
|
|
285
|
+
plugins: zod_1.z.array(exports.AuthPluginConfigSchema).default([]),
|
|
286
|
+
/**
|
|
287
|
+
* Custom hooks for authentication events
|
|
288
|
+
*/
|
|
289
|
+
hooks: zod_1.z.object({
|
|
290
|
+
beforeSignIn: zod_1.z.function()
|
|
291
|
+
.args(zod_1.z.object({ email: zod_1.z.string() }))
|
|
292
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
293
|
+
.optional()
|
|
294
|
+
.describe('Called before user sign in'),
|
|
295
|
+
afterSignIn: zod_1.z.function()
|
|
296
|
+
.args(zod_1.z.object({ user: zod_1.z.any(), session: zod_1.z.any() }))
|
|
297
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
298
|
+
.optional()
|
|
299
|
+
.describe('Called after user sign in'),
|
|
300
|
+
beforeSignUp: zod_1.z.function()
|
|
301
|
+
.args(zod_1.z.object({ email: zod_1.z.string(), name: zod_1.z.string().optional() }))
|
|
302
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
303
|
+
.optional()
|
|
304
|
+
.describe('Called before user registration'),
|
|
305
|
+
afterSignUp: zod_1.z.function()
|
|
306
|
+
.args(zod_1.z.object({ user: zod_1.z.any() }))
|
|
307
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
308
|
+
.optional()
|
|
309
|
+
.describe('Called after user registration'),
|
|
310
|
+
beforeSignOut: zod_1.z.function()
|
|
311
|
+
.args(zod_1.z.object({ sessionId: zod_1.z.string() }))
|
|
312
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
313
|
+
.optional()
|
|
314
|
+
.describe('Called before user sign out'),
|
|
315
|
+
afterSignOut: zod_1.z.function()
|
|
316
|
+
.args(zod_1.z.object({ sessionId: zod_1.z.string() }))
|
|
317
|
+
.returns(zod_1.z.promise(zod_1.z.void()))
|
|
318
|
+
.optional()
|
|
319
|
+
.describe('Called after user sign out'),
|
|
320
|
+
}).optional().describe('Authentication lifecycle hooks'),
|
|
321
|
+
/**
|
|
322
|
+
* Advanced security settings
|
|
323
|
+
*/
|
|
324
|
+
security: zod_1.z.object({
|
|
325
|
+
allowedOrigins: zod_1.z.array(zod_1.z.string()).optional().describe('CORS allowed origins'),
|
|
326
|
+
trustProxy: zod_1.z.boolean().default(false).describe('Trust proxy headers'),
|
|
327
|
+
ipRateLimiting: zod_1.z.boolean().default(true).describe('Enable IP-based rate limiting'),
|
|
328
|
+
sessionFingerprinting: zod_1.z.boolean().default(true).describe('Enable session fingerprinting'),
|
|
329
|
+
maxSessions: zod_1.z.number().default(5).describe('Maximum concurrent sessions per user'),
|
|
330
|
+
}).optional().describe('Advanced security settings'),
|
|
331
|
+
/**
|
|
332
|
+
* Email configuration for transactional emails
|
|
333
|
+
*/
|
|
334
|
+
email: zod_1.z.object({
|
|
335
|
+
from: zod_1.z.string().email().describe('From email address'),
|
|
336
|
+
fromName: zod_1.z.string().optional().describe('From name'),
|
|
337
|
+
provider: zod_1.z.enum(['smtp', 'sendgrid', 'mailgun', 'ses', 'resend', 'custom']).describe('Email provider'),
|
|
338
|
+
config: zod_1.z.record(zod_1.z.any()).optional().describe('Provider-specific configuration'),
|
|
339
|
+
}).optional().describe('Email configuration'),
|
|
340
|
+
/**
|
|
341
|
+
* UI customization options
|
|
342
|
+
*/
|
|
343
|
+
ui: zod_1.z.object({
|
|
344
|
+
brandName: zod_1.z.string().optional().describe('Brand name displayed in auth UI'),
|
|
345
|
+
logo: zod_1.z.string().optional().describe('Logo URL'),
|
|
346
|
+
primaryColor: zod_1.z.string().optional().describe('Primary brand color (hex)'),
|
|
347
|
+
customCss: zod_1.z.string().optional().describe('Custom CSS for auth pages'),
|
|
348
|
+
}).optional().describe('UI customization'),
|
|
349
|
+
/**
|
|
350
|
+
* Whether this auth provider is active
|
|
351
|
+
*/
|
|
352
|
+
active: zod_1.z.boolean().default(true).describe('Whether this provider is active'),
|
|
353
|
+
/**
|
|
354
|
+
* Whether to allow new user registration
|
|
355
|
+
*/
|
|
356
|
+
allowRegistration: zod_1.z.boolean().default(true).describe('Allow new user registration'),
|
|
357
|
+
});
|
|
358
|
+
/**
|
|
359
|
+
* Standard Authentication Provider Schema
|
|
360
|
+
* Wraps the configuration for use in the identity system
|
|
361
|
+
*/
|
|
362
|
+
exports.StandardAuthProviderSchema = zod_1.z.object({
|
|
363
|
+
type: zod_1.z.literal('standard_auth').describe('Provider type identifier'),
|
|
364
|
+
config: exports.AuthConfigSchema.describe('Standard authentication configuration'),
|
|
365
|
+
});
|
|
@@ -1,9 +1,122 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
* Driver Type Enum
|
|
4
|
-
*
|
|
3
|
+
* Driver Type Enum (Built-in)
|
|
4
|
+
* Standard drivers supported by the core platform.
|
|
5
|
+
* Plugins can register additional drivers using different identifiers.
|
|
5
6
|
*/
|
|
6
|
-
export declare const
|
|
7
|
+
export declare const BuiltInDrivers: readonly ["postgres", "mysql", "sqlserver", "oracle", "sqlite", "mongo", "redis", "excel", "csv", "airtable", "rest_api", "graphql", "odata", "salesforce", "sap", "workday"];
|
|
8
|
+
/**
|
|
9
|
+
* Driver Identifier
|
|
10
|
+
* Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").
|
|
11
|
+
*/
|
|
12
|
+
export declare const DriverType: z.ZodString;
|
|
13
|
+
/**
|
|
14
|
+
* Driver Definition Schema
|
|
15
|
+
* Metadata describing a Database Driver.
|
|
16
|
+
* Plugins use this to register new connectivity options.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DriverDefinitionSchema: z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
label: z.ZodString;
|
|
21
|
+
description: z.ZodOptional<z.ZodString>;
|
|
22
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
23
|
+
/**
|
|
24
|
+
* Configuration Schema (JSON Schema)
|
|
25
|
+
* Describes the structure of the `config` object needed for this driver.
|
|
26
|
+
* Used by the UI to generate the connection form.
|
|
27
|
+
*/
|
|
28
|
+
configSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
29
|
+
/**
|
|
30
|
+
* Default Capabilities
|
|
31
|
+
* What this driver supports out-of-the-box.
|
|
32
|
+
*/
|
|
33
|
+
capabilities: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
34
|
+
/** Can handle ACID transactions? */
|
|
35
|
+
transactions: z.ZodDefault<z.ZodBoolean>;
|
|
36
|
+
/** Can execute WHERE clause filters natively? */
|
|
37
|
+
queryFilters: z.ZodDefault<z.ZodBoolean>;
|
|
38
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
39
|
+
queryAggregations: z.ZodDefault<z.ZodBoolean>;
|
|
40
|
+
/** Can perform ORDER BY sorting? */
|
|
41
|
+
querySorting: z.ZodDefault<z.ZodBoolean>;
|
|
42
|
+
/** Can perform LIMIT/OFFSET pagination? */
|
|
43
|
+
queryPagination: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
/** Can perform window functions? */
|
|
45
|
+
queryWindowFunctions: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
/** Can perform subqueries? */
|
|
47
|
+
querySubqueries: z.ZodDefault<z.ZodBoolean>;
|
|
48
|
+
/** Can execute SQL-like joins natively? */
|
|
49
|
+
joins: z.ZodDefault<z.ZodBoolean>;
|
|
50
|
+
/** Can perform full-text search? */
|
|
51
|
+
fullTextSearch: z.ZodDefault<z.ZodBoolean>;
|
|
52
|
+
/** Is read-only? */
|
|
53
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
54
|
+
/** Is scheme-less (needs schema inference)? */
|
|
55
|
+
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
56
|
+
}, "strip", z.ZodTypeAny, {
|
|
57
|
+
joins: boolean;
|
|
58
|
+
transactions: boolean;
|
|
59
|
+
queryFilters: boolean;
|
|
60
|
+
queryAggregations: boolean;
|
|
61
|
+
querySorting: boolean;
|
|
62
|
+
queryPagination: boolean;
|
|
63
|
+
queryWindowFunctions: boolean;
|
|
64
|
+
querySubqueries: boolean;
|
|
65
|
+
fullTextSearch: boolean;
|
|
66
|
+
readOnly: boolean;
|
|
67
|
+
dynamicSchema: boolean;
|
|
68
|
+
}, {
|
|
69
|
+
joins?: boolean | undefined;
|
|
70
|
+
transactions?: boolean | undefined;
|
|
71
|
+
queryFilters?: boolean | undefined;
|
|
72
|
+
queryAggregations?: boolean | undefined;
|
|
73
|
+
querySorting?: boolean | undefined;
|
|
74
|
+
queryPagination?: boolean | undefined;
|
|
75
|
+
queryWindowFunctions?: boolean | undefined;
|
|
76
|
+
querySubqueries?: boolean | undefined;
|
|
77
|
+
fullTextSearch?: boolean | undefined;
|
|
78
|
+
readOnly?: boolean | undefined;
|
|
79
|
+
dynamicSchema?: boolean | undefined;
|
|
80
|
+
}>>>;
|
|
81
|
+
}, "strip", z.ZodTypeAny, {
|
|
82
|
+
label: string;
|
|
83
|
+
id: string;
|
|
84
|
+
configSchema: Record<string, any>;
|
|
85
|
+
description?: string | undefined;
|
|
86
|
+
icon?: string | undefined;
|
|
87
|
+
capabilities?: {
|
|
88
|
+
joins: boolean;
|
|
89
|
+
transactions: boolean;
|
|
90
|
+
queryFilters: boolean;
|
|
91
|
+
queryAggregations: boolean;
|
|
92
|
+
querySorting: boolean;
|
|
93
|
+
queryPagination: boolean;
|
|
94
|
+
queryWindowFunctions: boolean;
|
|
95
|
+
querySubqueries: boolean;
|
|
96
|
+
fullTextSearch: boolean;
|
|
97
|
+
readOnly: boolean;
|
|
98
|
+
dynamicSchema: boolean;
|
|
99
|
+
} | undefined;
|
|
100
|
+
}, {
|
|
101
|
+
label: string;
|
|
102
|
+
id: string;
|
|
103
|
+
configSchema: Record<string, any>;
|
|
104
|
+
description?: string | undefined;
|
|
105
|
+
icon?: string | undefined;
|
|
106
|
+
capabilities?: {
|
|
107
|
+
joins?: boolean | undefined;
|
|
108
|
+
transactions?: boolean | undefined;
|
|
109
|
+
queryFilters?: boolean | undefined;
|
|
110
|
+
queryAggregations?: boolean | undefined;
|
|
111
|
+
querySorting?: boolean | undefined;
|
|
112
|
+
queryPagination?: boolean | undefined;
|
|
113
|
+
queryWindowFunctions?: boolean | undefined;
|
|
114
|
+
querySubqueries?: boolean | undefined;
|
|
115
|
+
fullTextSearch?: boolean | undefined;
|
|
116
|
+
readOnly?: boolean | undefined;
|
|
117
|
+
dynamicSchema?: boolean | undefined;
|
|
118
|
+
} | undefined;
|
|
119
|
+
}>;
|
|
7
120
|
/**
|
|
8
121
|
* Datasource Capabilities Schema
|
|
9
122
|
* Declares what this datasource naturally supports.
|
|
@@ -11,32 +124,52 @@ export declare const DriverType: z.ZodEnum<["postgres", "mysql", "sqlserver", "o
|
|
|
11
124
|
* and what to compute in memory.
|
|
12
125
|
*/
|
|
13
126
|
export declare const DatasourceCapabilities: z.ZodObject<{
|
|
14
|
-
/** Can execute SQL-like joins natively? */
|
|
15
|
-
joins: z.ZodDefault<z.ZodBoolean>;
|
|
16
127
|
/** Can handle ACID transactions? */
|
|
17
128
|
transactions: z.ZodDefault<z.ZodBoolean>;
|
|
129
|
+
/** Can execute WHERE clause filters natively? */
|
|
130
|
+
queryFilters: z.ZodDefault<z.ZodBoolean>;
|
|
131
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
132
|
+
queryAggregations: z.ZodDefault<z.ZodBoolean>;
|
|
133
|
+
/** Can perform ORDER BY sorting? */
|
|
134
|
+
querySorting: z.ZodDefault<z.ZodBoolean>;
|
|
135
|
+
/** Can perform LIMIT/OFFSET pagination? */
|
|
136
|
+
queryPagination: z.ZodDefault<z.ZodBoolean>;
|
|
137
|
+
/** Can perform window functions? */
|
|
138
|
+
queryWindowFunctions: z.ZodDefault<z.ZodBoolean>;
|
|
139
|
+
/** Can perform subqueries? */
|
|
140
|
+
querySubqueries: z.ZodDefault<z.ZodBoolean>;
|
|
141
|
+
/** Can execute SQL-like joins natively? */
|
|
142
|
+
joins: z.ZodDefault<z.ZodBoolean>;
|
|
18
143
|
/** Can perform full-text search? */
|
|
19
144
|
fullTextSearch: z.ZodDefault<z.ZodBoolean>;
|
|
20
|
-
/** Can perform aggregation (group by, sum, avg)? */
|
|
21
|
-
aggregation: z.ZodDefault<z.ZodBoolean>;
|
|
22
|
-
/** Is scheme-less (needs schema inference)? */
|
|
23
|
-
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
24
145
|
/** Is read-only? */
|
|
25
146
|
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
147
|
+
/** Is scheme-less (needs schema inference)? */
|
|
148
|
+
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
26
149
|
}, "strip", z.ZodTypeAny, {
|
|
27
150
|
joins: boolean;
|
|
28
151
|
transactions: boolean;
|
|
152
|
+
queryFilters: boolean;
|
|
153
|
+
queryAggregations: boolean;
|
|
154
|
+
querySorting: boolean;
|
|
155
|
+
queryPagination: boolean;
|
|
156
|
+
queryWindowFunctions: boolean;
|
|
157
|
+
querySubqueries: boolean;
|
|
29
158
|
fullTextSearch: boolean;
|
|
30
|
-
aggregation: boolean;
|
|
31
|
-
dynamicSchema: boolean;
|
|
32
159
|
readOnly: boolean;
|
|
160
|
+
dynamicSchema: boolean;
|
|
33
161
|
}, {
|
|
34
162
|
joins?: boolean | undefined;
|
|
35
163
|
transactions?: boolean | undefined;
|
|
164
|
+
queryFilters?: boolean | undefined;
|
|
165
|
+
queryAggregations?: boolean | undefined;
|
|
166
|
+
querySorting?: boolean | undefined;
|
|
167
|
+
queryPagination?: boolean | undefined;
|
|
168
|
+
queryWindowFunctions?: boolean | undefined;
|
|
169
|
+
querySubqueries?: boolean | undefined;
|
|
36
170
|
fullTextSearch?: boolean | undefined;
|
|
37
|
-
aggregation?: boolean | undefined;
|
|
38
|
-
dynamicSchema?: boolean | undefined;
|
|
39
171
|
readOnly?: boolean | undefined;
|
|
172
|
+
dynamicSchema?: boolean | undefined;
|
|
40
173
|
}>;
|
|
41
174
|
/**
|
|
42
175
|
* Datasource Schema
|
|
@@ -48,7 +181,7 @@ export declare const DatasourceSchema: z.ZodObject<{
|
|
|
48
181
|
/** Human Label */
|
|
49
182
|
label: z.ZodOptional<z.ZodString>;
|
|
50
183
|
/** Driver */
|
|
51
|
-
driver: z.
|
|
184
|
+
driver: z.ZodString;
|
|
52
185
|
/**
|
|
53
186
|
* Connection Configuration
|
|
54
187
|
* Specific to the driver (e.g., host, port, user, password, bucket, etc.)
|
|
@@ -60,32 +193,52 @@ export declare const DatasourceSchema: z.ZodObject<{
|
|
|
60
193
|
* Manually override what the driver claims to support.
|
|
61
194
|
*/
|
|
62
195
|
capabilities: z.ZodOptional<z.ZodObject<{
|
|
63
|
-
/** Can execute SQL-like joins natively? */
|
|
64
|
-
joins: z.ZodDefault<z.ZodBoolean>;
|
|
65
196
|
/** Can handle ACID transactions? */
|
|
66
197
|
transactions: z.ZodDefault<z.ZodBoolean>;
|
|
198
|
+
/** Can execute WHERE clause filters natively? */
|
|
199
|
+
queryFilters: z.ZodDefault<z.ZodBoolean>;
|
|
200
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
201
|
+
queryAggregations: z.ZodDefault<z.ZodBoolean>;
|
|
202
|
+
/** Can perform ORDER BY sorting? */
|
|
203
|
+
querySorting: z.ZodDefault<z.ZodBoolean>;
|
|
204
|
+
/** Can perform LIMIT/OFFSET pagination? */
|
|
205
|
+
queryPagination: z.ZodDefault<z.ZodBoolean>;
|
|
206
|
+
/** Can perform window functions? */
|
|
207
|
+
queryWindowFunctions: z.ZodDefault<z.ZodBoolean>;
|
|
208
|
+
/** Can perform subqueries? */
|
|
209
|
+
querySubqueries: z.ZodDefault<z.ZodBoolean>;
|
|
210
|
+
/** Can execute SQL-like joins natively? */
|
|
211
|
+
joins: z.ZodDefault<z.ZodBoolean>;
|
|
67
212
|
/** Can perform full-text search? */
|
|
68
213
|
fullTextSearch: z.ZodDefault<z.ZodBoolean>;
|
|
69
|
-
/** Can perform aggregation (group by, sum, avg)? */
|
|
70
|
-
aggregation: z.ZodDefault<z.ZodBoolean>;
|
|
71
|
-
/** Is scheme-less (needs schema inference)? */
|
|
72
|
-
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
73
214
|
/** Is read-only? */
|
|
74
215
|
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
216
|
+
/** Is scheme-less (needs schema inference)? */
|
|
217
|
+
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
75
218
|
}, "strip", z.ZodTypeAny, {
|
|
76
219
|
joins: boolean;
|
|
77
220
|
transactions: boolean;
|
|
221
|
+
queryFilters: boolean;
|
|
222
|
+
queryAggregations: boolean;
|
|
223
|
+
querySorting: boolean;
|
|
224
|
+
queryPagination: boolean;
|
|
225
|
+
queryWindowFunctions: boolean;
|
|
226
|
+
querySubqueries: boolean;
|
|
78
227
|
fullTextSearch: boolean;
|
|
79
|
-
aggregation: boolean;
|
|
80
|
-
dynamicSchema: boolean;
|
|
81
228
|
readOnly: boolean;
|
|
229
|
+
dynamicSchema: boolean;
|
|
82
230
|
}, {
|
|
83
231
|
joins?: boolean | undefined;
|
|
84
232
|
transactions?: boolean | undefined;
|
|
233
|
+
queryFilters?: boolean | undefined;
|
|
234
|
+
queryAggregations?: boolean | undefined;
|
|
235
|
+
querySorting?: boolean | undefined;
|
|
236
|
+
queryPagination?: boolean | undefined;
|
|
237
|
+
queryWindowFunctions?: boolean | undefined;
|
|
238
|
+
querySubqueries?: boolean | undefined;
|
|
85
239
|
fullTextSearch?: boolean | undefined;
|
|
86
|
-
aggregation?: boolean | undefined;
|
|
87
|
-
dynamicSchema?: boolean | undefined;
|
|
88
240
|
readOnly?: boolean | undefined;
|
|
241
|
+
dynamicSchema?: boolean | undefined;
|
|
89
242
|
}>>;
|
|
90
243
|
/** Description */
|
|
91
244
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -95,31 +248,41 @@ export declare const DatasourceSchema: z.ZodObject<{
|
|
|
95
248
|
name: string;
|
|
96
249
|
active: boolean;
|
|
97
250
|
config: Record<string, any>;
|
|
98
|
-
driver:
|
|
251
|
+
driver: string;
|
|
99
252
|
label?: string | undefined;
|
|
100
253
|
description?: string | undefined;
|
|
101
254
|
capabilities?: {
|
|
102
255
|
joins: boolean;
|
|
103
256
|
transactions: boolean;
|
|
257
|
+
queryFilters: boolean;
|
|
258
|
+
queryAggregations: boolean;
|
|
259
|
+
querySorting: boolean;
|
|
260
|
+
queryPagination: boolean;
|
|
261
|
+
queryWindowFunctions: boolean;
|
|
262
|
+
querySubqueries: boolean;
|
|
104
263
|
fullTextSearch: boolean;
|
|
105
|
-
aggregation: boolean;
|
|
106
|
-
dynamicSchema: boolean;
|
|
107
264
|
readOnly: boolean;
|
|
265
|
+
dynamicSchema: boolean;
|
|
108
266
|
} | undefined;
|
|
109
267
|
}, {
|
|
110
268
|
name: string;
|
|
111
269
|
config: Record<string, any>;
|
|
112
|
-
driver:
|
|
270
|
+
driver: string;
|
|
113
271
|
label?: string | undefined;
|
|
114
272
|
description?: string | undefined;
|
|
115
273
|
active?: boolean | undefined;
|
|
116
274
|
capabilities?: {
|
|
117
275
|
joins?: boolean | undefined;
|
|
118
276
|
transactions?: boolean | undefined;
|
|
277
|
+
queryFilters?: boolean | undefined;
|
|
278
|
+
queryAggregations?: boolean | undefined;
|
|
279
|
+
querySorting?: boolean | undefined;
|
|
280
|
+
queryPagination?: boolean | undefined;
|
|
281
|
+
queryWindowFunctions?: boolean | undefined;
|
|
282
|
+
querySubqueries?: boolean | undefined;
|
|
119
283
|
fullTextSearch?: boolean | undefined;
|
|
120
|
-
aggregation?: boolean | undefined;
|
|
121
|
-
dynamicSchema?: boolean | undefined;
|
|
122
284
|
readOnly?: boolean | undefined;
|
|
285
|
+
dynamicSchema?: boolean | undefined;
|
|
123
286
|
} | undefined;
|
|
124
287
|
}>;
|
|
125
288
|
export type Datasource = z.infer<typeof DatasourceSchema>;
|