@objectstack/spec 0.1.2 → 0.3.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.
Files changed (152) hide show
  1. package/README.md +127 -5
  2. package/dist/ai/index.d.ts +14 -0
  3. package/dist/ai/index.d.ts.map +1 -0
  4. package/dist/ai/index.js +29 -0
  5. package/dist/ai/model-registry.zod.d.ts +1389 -0
  6. package/dist/ai/model-registry.zod.d.ts.map +1 -0
  7. package/dist/ai/model-registry.zod.js +164 -0
  8. package/dist/ai/nlq.zod.d.ts +1126 -0
  9. package/dist/ai/nlq.zod.d.ts.map +1 -0
  10. package/dist/ai/nlq.zod.js +246 -0
  11. package/dist/ai/rag-pipeline.zod.d.ts +1034 -0
  12. package/dist/ai/rag-pipeline.zod.d.ts.map +1 -0
  13. package/dist/ai/rag-pipeline.zod.js +244 -0
  14. package/dist/api/index.d.ts +9 -0
  15. package/dist/api/index.d.ts.map +1 -0
  16. package/dist/api/index.js +24 -0
  17. package/dist/data/filter.zod.d.ts +295 -0
  18. package/dist/data/filter.zod.d.ts.map +1 -0
  19. package/dist/data/filter.zod.js +226 -0
  20. package/dist/data/index.d.ts +21 -0
  21. package/dist/data/index.d.ts.map +1 -0
  22. package/dist/data/index.js +36 -0
  23. package/dist/data/query.zod.d.ts +386 -3
  24. package/dist/data/query.zod.d.ts.map +1 -1
  25. package/dist/data/query.zod.js +386 -3
  26. package/dist/data/validation.zod.d.ts +349 -0
  27. package/dist/data/validation.zod.d.ts.map +1 -1
  28. package/dist/data/validation.zod.js +395 -0
  29. package/dist/index.d.ts +36 -39
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +64 -47
  32. package/dist/system/auth-protocol.d.ts +175 -0
  33. package/dist/system/auth-protocol.d.ts.map +1 -0
  34. package/dist/system/auth-protocol.js +60 -0
  35. package/dist/system/auth.zod.d.ts +3319 -0
  36. package/dist/system/auth.zod.d.ts.map +1 -0
  37. package/dist/system/auth.zod.js +499 -0
  38. package/dist/system/datasource.zod.d.ts +118 -38
  39. package/dist/system/datasource.zod.d.ts.map +1 -1
  40. package/dist/system/datasource.zod.js +25 -6
  41. package/dist/system/driver.zod.d.ts +106 -0
  42. package/dist/system/driver.zod.d.ts.map +1 -1
  43. package/dist/system/driver.zod.js +47 -0
  44. package/dist/system/identity.zod.d.ts +234 -180
  45. package/dist/system/identity.zod.d.ts.map +1 -1
  46. package/dist/system/identity.zod.js +168 -51
  47. package/dist/system/index.d.ts +28 -0
  48. package/dist/system/index.d.ts.map +1 -0
  49. package/dist/system/index.js +43 -0
  50. package/dist/system/manifest.zod.d.ts +10 -10
  51. package/dist/system/organization.zod.d.ts +179 -0
  52. package/dist/system/organization.zod.d.ts.map +1 -0
  53. package/dist/system/organization.zod.js +129 -0
  54. package/dist/system/policy.zod.d.ts +10 -10
  55. package/dist/ui/action.zod.d.ts +2 -2
  56. package/dist/ui/dashboard.zod.d.ts +10 -10
  57. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  58. package/dist/ui/dashboard.zod.js +3 -2
  59. package/dist/ui/index.d.ts +17 -0
  60. package/dist/ui/index.d.ts.map +1 -0
  61. package/dist/ui/index.js +32 -0
  62. package/dist/ui/report.zod.d.ts +4 -32
  63. package/dist/ui/report.zod.d.ts.map +1 -1
  64. package/dist/ui/report.zod.js +3 -8
  65. package/dist/ui/theme.zod.d.ts +6 -6
  66. package/json-schema/Account.json +87 -0
  67. package/json-schema/AccountLinkingConfig.json +27 -0
  68. package/json-schema/AuthConfig.json +841 -0
  69. package/json-schema/AuthPluginConfig.json +28 -0
  70. package/json-schema/AuthStrategy.json +17 -0
  71. package/json-schema/AuthenticationConfig.json +601 -0
  72. package/json-schema/AuthenticationProvider.json +617 -0
  73. package/json-schema/CSRFConfig.json +31 -0
  74. package/json-schema/ChunkingStrategy.json +133 -0
  75. package/json-schema/ComparisonOperator.json +56 -0
  76. package/json-schema/Dashboard.json +20 -0
  77. package/json-schema/DashboardWidget.json +20 -0
  78. package/json-schema/DatabaseAdapter.json +38 -0
  79. package/json-schema/DatabaseMapping.json +48 -0
  80. package/json-schema/Datasource.json +25 -5
  81. package/json-schema/DatasourceCapabilities.json +25 -5
  82. package/json-schema/DocumentChunk.json +97 -0
  83. package/json-schema/DocumentLoaderConfig.json +69 -0
  84. package/json-schema/DocumentMetadata.json +61 -0
  85. package/json-schema/DriverCapabilities.json +30 -0
  86. package/json-schema/DriverDefinition.json +25 -5
  87. package/json-schema/DriverInterface.json +30 -0
  88. package/json-schema/EmailPasswordConfig.json +43 -0
  89. package/json-schema/EmbeddingModel.json +57 -0
  90. package/json-schema/EnterpriseAuthConfig.json +172 -0
  91. package/json-schema/Entity.json +55 -0
  92. package/json-schema/EqualityOperator.json +14 -0
  93. package/json-schema/FieldOperators.json +108 -0
  94. package/json-schema/FieldSynonymConfig.json +39 -0
  95. package/json-schema/FilterCondition.json +28 -0
  96. package/json-schema/Invitation.json +69 -0
  97. package/json-schema/InvitationStatus.json +15 -0
  98. package/json-schema/LDAPConfig.json +22 -5
  99. package/json-schema/MagicLinkConfig.json +21 -0
  100. package/json-schema/Member.json +46 -0
  101. package/json-schema/ModelCapability.json +47 -0
  102. package/json-schema/ModelConfig.json +181 -0
  103. package/json-schema/ModelLimits.json +45 -0
  104. package/json-schema/ModelPricing.json +28 -0
  105. package/json-schema/ModelProvider.json +19 -0
  106. package/json-schema/ModelRegistry.json +427 -0
  107. package/json-schema/ModelRegistryEntry.json +239 -0
  108. package/json-schema/ModelSelectionCriteria.json +50 -0
  109. package/json-schema/NLQAnalytics.json +106 -0
  110. package/json-schema/NLQFieldMapping.json +40 -0
  111. package/json-schema/NLQModelConfig.json +78 -0
  112. package/json-schema/NLQParseResult.json +252 -0
  113. package/json-schema/NLQRequest.json +110 -0
  114. package/json-schema/NLQResponse.json +288 -0
  115. package/json-schema/NLQTrainingExample.json +120 -0
  116. package/json-schema/NormalizedFilter.json +348 -0
  117. package/json-schema/OAuthProvider.json +66 -0
  118. package/json-schema/OIDCConfig.json +18 -3
  119. package/json-schema/Organization.json +52 -0
  120. package/json-schema/PasskeyConfig.json +54 -0
  121. package/json-schema/PromptTemplate.json +163 -0
  122. package/json-schema/PromptVariable.json +56 -0
  123. package/json-schema/QueryContext.json +72 -0
  124. package/json-schema/QueryFilter.json +34 -0
  125. package/json-schema/QueryIntent.json +21 -0
  126. package/json-schema/QueryTemplate.json +81 -0
  127. package/json-schema/RAGPipelineConfig.json +552 -0
  128. package/json-schema/RAGPipelineStatus.json +66 -0
  129. package/json-schema/RAGQueryRequest.json +64 -0
  130. package/json-schema/RAGQueryResponse.json +108 -0
  131. package/json-schema/RangeOperator.json +41 -0
  132. package/json-schema/RateLimitConfig.json +36 -0
  133. package/json-schema/Report.json +20 -26
  134. package/json-schema/RerankingConfig.json +34 -0
  135. package/json-schema/RetrievalStrategy.json +121 -0
  136. package/json-schema/SAMLConfig.json +17 -3
  137. package/json-schema/Session.json +63 -0
  138. package/json-schema/SessionConfig.json +56 -0
  139. package/json-schema/SetOperator.json +18 -0
  140. package/json-schema/SpecialOperator.json +18 -0
  141. package/json-schema/StandardAuthProvider.json +857 -0
  142. package/json-schema/StringOperator.json +21 -0
  143. package/json-schema/Timeframe.json +68 -0
  144. package/json-schema/TwoFactorConfig.json +40 -0
  145. package/json-schema/User.json +51 -0
  146. package/json-schema/UserFieldMapping.json +47 -0
  147. package/json-schema/VectorStoreConfig.json +82 -0
  148. package/json-schema/VectorStoreProvider.json +21 -0
  149. package/json-schema/VerificationToken.json +36 -0
  150. package/package.json +27 -1
  151. package/json-schema/AuthProtocol.json +0 -17
  152. package/json-schema/AuthProvider.json +0 -171
@@ -111,24 +111,8 @@ export declare const ReportSchema: z.ZodObject<{
111
111
  sortOrder?: "asc" | "desc" | undefined;
112
112
  dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
113
113
  }>, "many">>;
114
- /** Filtering */
115
- filter: z.ZodOptional<z.ZodString>;
116
- filterItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
117
- id: z.ZodNumber;
118
- field: z.ZodString;
119
- operator: z.ZodString;
120
- value: z.ZodAny;
121
- }, "strip", z.ZodTypeAny, {
122
- field: string;
123
- id: number;
124
- operator: string;
125
- value?: any;
126
- }, {
127
- field: string;
128
- id: number;
129
- operator: string;
130
- value?: any;
131
- }>, "many">>;
114
+ /** Filtering (MongoDB-style FilterCondition) */
115
+ filter: z.ZodOptional<z.ZodType<import("../data/filter.zod").FilterCondition, z.ZodTypeDef, import("../data/filter.zod").FilterCondition>>;
132
116
  /** Visualization */
133
117
  chart: z.ZodOptional<z.ZodObject<{
134
118
  type: z.ZodEnum<["bar", "column", "line", "pie", "donut", "scatter", "funnel"]>;
@@ -159,7 +143,7 @@ export declare const ReportSchema: z.ZodObject<{
159
143
  label?: string | undefined;
160
144
  aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
161
145
  }[];
162
- filter?: string | undefined;
146
+ filter?: import("../data/filter.zod").FilterCondition | undefined;
163
147
  description?: string | undefined;
164
148
  groupingsDown?: {
165
149
  field: string;
@@ -171,12 +155,6 @@ export declare const ReportSchema: z.ZodObject<{
171
155
  sortOrder: "asc" | "desc";
172
156
  dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
173
157
  }[] | undefined;
174
- filterItems?: {
175
- field: string;
176
- id: number;
177
- operator: string;
178
- value?: any;
179
- }[] | undefined;
180
158
  chart?: {
181
159
  type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
182
160
  showLegend: boolean;
@@ -193,7 +171,7 @@ export declare const ReportSchema: z.ZodObject<{
193
171
  label?: string | undefined;
194
172
  aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
195
173
  }[];
196
- filter?: string | undefined;
174
+ filter?: import("../data/filter.zod").FilterCondition | undefined;
197
175
  type?: "summary" | "tabular" | "matrix" | "joined" | undefined;
198
176
  description?: string | undefined;
199
177
  groupingsDown?: {
@@ -206,12 +184,6 @@ export declare const ReportSchema: z.ZodObject<{
206
184
  sortOrder?: "asc" | "desc" | undefined;
207
185
  dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
208
186
  }[] | undefined;
209
- filterItems?: {
210
- field: string;
211
- id: number;
212
- operator: string;
213
- value?: any;
214
- }[] | undefined;
215
187
  chart?: {
216
188
  type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
217
189
  xAxis: string;
@@ -1 +1 @@
1
- {"version":3,"file":"report.zod.d.ts","sourceRoot":"","sources":["../../src/ui/report.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,UAAU,uDAKrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB,eAAe;;;;IAKf,kBAAkB;;IAGlB,2BAA2B;;;;;;;;;;;;;;;IAK3B,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIpC,gBAAgB;;;;;;;;;;;;;;;;;;IAShB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,MAAM;8BACA,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,KAAG,MAAM;CAC9C,CAAC"}
1
+ {"version":3,"file":"report.zod.d.ts","sourceRoot":"","sources":["../../src/ui/report.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,UAAU,uDAKrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB,eAAe;;;;IAKf,kBAAkB;;IAGlB,2BAA2B;;;;;;;;;;;;;;;IAK3B,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIpC,gDAAgD;;IAGhD,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,MAAM;8BACA,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,KAAG,MAAM;CAC9C,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Report = exports.ReportSchema = exports.ReportChartSchema = exports.ReportGroupingSchema = exports.ReportColumnSchema = exports.ReportType = void 0;
4
4
  const zod_1 = require("zod");
5
+ const filter_zod_1 = require("../data/filter.zod");
5
6
  /**
6
7
  * Report Type Enum
7
8
  */
@@ -55,14 +56,8 @@ exports.ReportSchema = zod_1.z.object({
55
56
  /** Grouping (for Summary/Matrix) */
56
57
  groupingsDown: zod_1.z.array(exports.ReportGroupingSchema).optional().describe('Row groupings'),
57
58
  groupingsAcross: zod_1.z.array(exports.ReportGroupingSchema).optional().describe('Column groupings (Matrix only)'),
58
- /** Filtering */
59
- filter: zod_1.z.string().optional().describe('Filter logic (e.g. "1 AND (2 OR 3)")'),
60
- filterItems: zod_1.z.array(zod_1.z.object({
61
- id: zod_1.z.number(),
62
- field: zod_1.z.string(),
63
- operator: zod_1.z.string(),
64
- value: zod_1.z.any()
65
- })).optional().describe('Filter criteria lines'),
59
+ /** Filtering (MongoDB-style FilterCondition) */
60
+ filter: filter_zod_1.FilterConditionSchema.optional().describe('Filter criteria'),
66
61
  /** Visualization */
67
62
  chart: exports.ReportChartSchema.optional().describe('Embedded chart configuration'),
68
63
  });
@@ -27,9 +27,9 @@ export declare const ColorPaletteSchema: z.ZodObject<{
27
27
  error?: string | undefined;
28
28
  warning?: string | undefined;
29
29
  info?: string | undefined;
30
- success?: string | undefined;
31
30
  secondary?: string | undefined;
32
31
  accent?: string | undefined;
32
+ success?: string | undefined;
33
33
  background?: string | undefined;
34
34
  surface?: string | undefined;
35
35
  textSecondary?: string | undefined;
@@ -45,9 +45,9 @@ export declare const ColorPaletteSchema: z.ZodObject<{
45
45
  error?: string | undefined;
46
46
  warning?: string | undefined;
47
47
  info?: string | undefined;
48
- success?: string | undefined;
49
48
  secondary?: string | undefined;
50
49
  accent?: string | undefined;
50
+ success?: string | undefined;
51
51
  background?: string | undefined;
52
52
  surface?: string | undefined;
53
53
  textSecondary?: string | undefined;
@@ -503,9 +503,9 @@ export declare const ThemeSchema: z.ZodObject<{
503
503
  error?: string | undefined;
504
504
  warning?: string | undefined;
505
505
  info?: string | undefined;
506
- success?: string | undefined;
507
506
  secondary?: string | undefined;
508
507
  accent?: string | undefined;
508
+ success?: string | undefined;
509
509
  background?: string | undefined;
510
510
  surface?: string | undefined;
511
511
  textSecondary?: string | undefined;
@@ -521,9 +521,9 @@ export declare const ThemeSchema: z.ZodObject<{
521
521
  error?: string | undefined;
522
522
  warning?: string | undefined;
523
523
  info?: string | undefined;
524
- success?: string | undefined;
525
524
  secondary?: string | undefined;
526
525
  accent?: string | undefined;
526
+ success?: string | undefined;
527
527
  background?: string | undefined;
528
528
  surface?: string | undefined;
529
529
  textSecondary?: string | undefined;
@@ -947,9 +947,9 @@ export declare const ThemeSchema: z.ZodObject<{
947
947
  error?: string | undefined;
948
948
  warning?: string | undefined;
949
949
  info?: string | undefined;
950
- success?: string | undefined;
951
950
  secondary?: string | undefined;
952
951
  accent?: string | undefined;
952
+ success?: string | undefined;
953
953
  background?: string | undefined;
954
954
  surface?: string | undefined;
955
955
  textSecondary?: string | undefined;
@@ -1081,9 +1081,9 @@ export declare const ThemeSchema: z.ZodObject<{
1081
1081
  error?: string | undefined;
1082
1082
  warning?: string | undefined;
1083
1083
  info?: string | undefined;
1084
- success?: string | undefined;
1085
1084
  secondary?: string | undefined;
1086
1085
  accent?: string | undefined;
1086
+ success?: string | undefined;
1087
1087
  background?: string | undefined;
1088
1088
  surface?: string | undefined;
1089
1089
  textSecondary?: string | undefined;
@@ -0,0 +1,87 @@
1
+ {
2
+ "$ref": "#/definitions/Account",
3
+ "definitions": {
4
+ "Account": {
5
+ "type": "object",
6
+ "properties": {
7
+ "id": {
8
+ "type": "string",
9
+ "description": "Unique account identifier"
10
+ },
11
+ "userId": {
12
+ "type": "string",
13
+ "description": "Associated user ID"
14
+ },
15
+ "type": {
16
+ "type": "string",
17
+ "enum": [
18
+ "oauth",
19
+ "oidc",
20
+ "email",
21
+ "credentials",
22
+ "saml",
23
+ "ldap"
24
+ ],
25
+ "description": "Account type"
26
+ },
27
+ "provider": {
28
+ "type": "string",
29
+ "description": "Provider name"
30
+ },
31
+ "providerAccountId": {
32
+ "type": "string",
33
+ "description": "Provider account ID"
34
+ },
35
+ "refreshToken": {
36
+ "type": "string",
37
+ "description": "OAuth refresh token"
38
+ },
39
+ "accessToken": {
40
+ "type": "string",
41
+ "description": "OAuth access token"
42
+ },
43
+ "expiresAt": {
44
+ "type": "number",
45
+ "description": "Token expiry timestamp (Unix)"
46
+ },
47
+ "tokenType": {
48
+ "type": "string",
49
+ "description": "OAuth token type"
50
+ },
51
+ "scope": {
52
+ "type": "string",
53
+ "description": "OAuth scope"
54
+ },
55
+ "idToken": {
56
+ "type": "string",
57
+ "description": "OAuth ID token"
58
+ },
59
+ "sessionState": {
60
+ "type": "string",
61
+ "description": "Session state"
62
+ },
63
+ "createdAt": {
64
+ "type": "string",
65
+ "format": "date-time",
66
+ "description": "Account creation timestamp"
67
+ },
68
+ "updatedAt": {
69
+ "type": "string",
70
+ "format": "date-time",
71
+ "description": "Last update timestamp"
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "userId",
77
+ "type",
78
+ "provider",
79
+ "providerAccountId",
80
+ "createdAt",
81
+ "updatedAt"
82
+ ],
83
+ "additionalProperties": false
84
+ }
85
+ },
86
+ "$schema": "http://json-schema.org/draft-07/schema#"
87
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$ref": "#/definitions/AccountLinkingConfig",
3
+ "definitions": {
4
+ "AccountLinkingConfig": {
5
+ "type": "object",
6
+ "properties": {
7
+ "enabled": {
8
+ "type": "boolean",
9
+ "default": true,
10
+ "description": "Allow account linking"
11
+ },
12
+ "autoLink": {
13
+ "type": "boolean",
14
+ "default": false,
15
+ "description": "Automatically link accounts with same email"
16
+ },
17
+ "requireVerification": {
18
+ "type": "boolean",
19
+ "default": true,
20
+ "description": "Require email verification before linking"
21
+ }
22
+ },
23
+ "additionalProperties": false
24
+ }
25
+ },
26
+ "$schema": "http://json-schema.org/draft-07/schema#"
27
+ }