@zitadel/config 1.0.0-alpha.21 → 1.0.0-alpha.23
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 +2 -0
- package/defaults/README-branding.md +1 -1
- package/defaults/README-flows.md +9 -4
- package/defaults/default-login.json +0 -27
- package/dist/branding-contrast.d.mts +107 -0
- package/dist/branding-contrast.d.mts.map +1 -0
- package/dist/branding-contrast.mjs +229 -0
- package/dist/branding-contrast.mjs.map +1 -0
- package/dist/css-color.d.mts +36 -0
- package/dist/css-color.d.mts.map +1 -0
- package/dist/css-color.mjs +231 -0
- package/dist/css-color.mjs.map +1 -0
- package/dist/{defaults-Bh4_xVbh.d.mts → defaults-BxGCGdqS.d.mts} +5 -3
- package/dist/defaults-BxGCGdqS.d.mts.map +1 -0
- package/dist/{defaults-DPq0o3iU.mjs → defaults-DV6hY2KT.mjs} +25 -53
- package/dist/defaults-DV6hY2KT.mjs.map +1 -0
- package/dist/defaults.d.mts +1 -1
- package/dist/defaults.mjs +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +4 -4
- package/dist/meta-schemas-OowgSUfU.mjs +1173 -0
- package/dist/meta-schemas-OowgSUfU.mjs.map +1 -0
- package/dist/meta-schemas.d.mts +4 -3
- package/dist/meta-schemas.d.mts.map +1 -1
- package/dist/meta-schemas.mjs +1 -1
- package/dist/schemas-7oNU25Qz.mjs +173 -0
- package/dist/schemas-7oNU25Qz.mjs.map +1 -0
- package/dist/schemas.d.mts +12 -5
- package/dist/schemas.d.mts.map +1 -1
- package/dist/schemas.mjs +3 -69
- package/dist/validate.d.mts +8 -2
- package/dist/validate.d.mts.map +1 -1
- package/dist/validate.mjs +9 -2
- package/dist/validate.mjs.map +1 -1
- package/meta-schemas/auth-method.json +1 -0
- package/meta-schemas/auth-methods.json +5 -3
- package/meta-schemas/branding.json +268 -19
- package/meta-schemas/flow-definition.json +375 -171
- package/meta-schemas/idp-connection.json +397 -0
- package/meta-schemas/property-name.json +1 -0
- package/meta-schemas/sso-auth-method.json +54 -0
- package/meta-schemas/user-property.json +10 -13
- package/meta-schemas/user-schema.json +20 -13
- package/package.json +18 -5
- package/dist/defaults-Bh4_xVbh.d.mts.map +0 -1
- package/dist/defaults-DPq0o3iU.mjs.map +0 -1
- package/dist/meta-schemas-z4IlqbLd.mjs +0 -531
- package/dist/meta-schemas-z4IlqbLd.mjs.map +0 -1
- package/dist/schemas.mjs.map +0 -1
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Code generated by scripts/generate-meta-schemas.ts; DO NOT EDIT.",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"title": "IdentityProviderConnection",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"slug",
|
|
8
|
+
"protocol",
|
|
9
|
+
"display_name"
|
|
10
|
+
],
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"$schema": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 1,
|
|
16
|
+
"description": "Editor affordance: path or URL of this schema so editors validate and autocomplete the file (scaffolded connection files point at `.zitadel/meta/idp-connection.json`). Ignored by the platform."
|
|
17
|
+
},
|
|
18
|
+
"slug": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
21
|
+
"maxLength": 64,
|
|
22
|
+
"description": "Stable identifier, referenced by user schemas (x-auth-methods.sso.providers) and flow steps (sso_providers). Unique within the Project.",
|
|
23
|
+
"examples": [
|
|
24
|
+
"google",
|
|
25
|
+
"github",
|
|
26
|
+
"corp_idp"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"protocol": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"enum": [
|
|
32
|
+
"oidc",
|
|
33
|
+
"oauth2"
|
|
34
|
+
],
|
|
35
|
+
"description": "The protocol used by the identity provider."
|
|
36
|
+
},
|
|
37
|
+
"template": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"examples": [
|
|
40
|
+
"google",
|
|
41
|
+
"github",
|
|
42
|
+
"okta"
|
|
43
|
+
],
|
|
44
|
+
"description": "Template hint for rendering the provider (logo, colors). Carries no protocol behavior: conduct comes only from the protocol blocks."
|
|
45
|
+
},
|
|
46
|
+
"display_name": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1,
|
|
49
|
+
"maxLength": 256,
|
|
50
|
+
"description": "Shown to the user on the sign-in button."
|
|
51
|
+
},
|
|
52
|
+
"subject_claim": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"minLength": 1,
|
|
55
|
+
"description": "Claim carrying the provider's stable subject identifier. Optional for OIDC (the engine uses `sub` per spec; override where `sub` is pairwise, e.g. Entra `oid`). Required for OAuth2 — no `sub` guarantee."
|
|
56
|
+
},
|
|
57
|
+
"claim_mapping": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"pattern": "^[^$]"
|
|
62
|
+
},
|
|
63
|
+
"description": "Maps user-schema property names (keys) to provider claim names (values). A value is an exact top-level claim key: no path syntax, and a dot is part of the key, so nested claims (OIDC `address`, GitHub `plan`) are not addressable yet. `$`-prefixed strings and non-string values are reserved for future mapping forms. Add properties defined in the user schemas; unmatched entries are ignored."
|
|
64
|
+
},
|
|
65
|
+
"verified_claims": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"additionalProperties": {
|
|
68
|
+
"anyOf": [
|
|
69
|
+
{
|
|
70
|
+
"const": true
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"const": "$supplementary_fetch"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"type": "string",
|
|
77
|
+
"pattern": "^[^$]"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"description": "Maps a verifiable user-schema property to its verification source: a claim name (read the claim), the literal `true` (trust this provider unconditionally), or the `$`-pointer `\"$supplementary_fetch\"` (verified by the selected supplementary_fetch strategy per its contract - e.g. github_primary_email verifies `email` via primary && verified). Values starting with `$` are reserved; only `$supplementary_fetch` is defined. Distinct from claim_mapping, which carries values, not verification state.",
|
|
82
|
+
"examples": [
|
|
83
|
+
{
|
|
84
|
+
"email": "email_verified"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"email": true
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"email": "$supplementary_fetch"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"provisioning": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"additionalProperties": false,
|
|
97
|
+
"description": "How far this provider's data is trusted. `creation` defines what happens to a subject that has no account yet. With `disabled`, a user is not created. With `auto`, the user is created without a collection step when the mapped claims fill every required property of the schema. A required property with an `x-unique` scope must also arrive verified according to `verified_claims`. When a required property is missing or such a property is unverified, the collection step is shown instead, prefilled with the claims. Gating on other properties will be added when `x-verify` returns to the dialect. The following are deferred and will be added as additive changes. The `auto_only` value creates the user from complete claims or fails without collecting. The linking policy (`is_linking_allowed`, `auto_linking`), together with the account-linking journey. `is_auto_update`, together with per-property verification state.",
|
|
98
|
+
"properties": {
|
|
99
|
+
"creation": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"enum": [
|
|
102
|
+
"disabled",
|
|
103
|
+
"auto"
|
|
104
|
+
],
|
|
105
|
+
"default": "auto"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"oidc": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"additionalProperties": false,
|
|
112
|
+
"description": "OIDC connection details. Endpoints come from discovery, but any may be supplied to override it, or to serve a provider that exposes no .well-known document.",
|
|
113
|
+
"required": [
|
|
114
|
+
"issuer",
|
|
115
|
+
"client_id",
|
|
116
|
+
"client_secret",
|
|
117
|
+
"scopes"
|
|
118
|
+
],
|
|
119
|
+
"properties": {
|
|
120
|
+
"issuer": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"format": "uri",
|
|
123
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)(/[^\\s?#]*)?$",
|
|
124
|
+
"description": "Discovery base. Endpoints are resolved from its .well-known document unless overridden below."
|
|
125
|
+
},
|
|
126
|
+
"jwks_uri": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"format": "uri",
|
|
129
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
130
|
+
"description": "Overrides the JWKS endpoint from discovery. Required in practice when the provider exposes no .well-known document, since ID tokens cannot otherwise be validated."
|
|
131
|
+
},
|
|
132
|
+
"id_token_mapping": {
|
|
133
|
+
"type": "boolean",
|
|
134
|
+
"default": false,
|
|
135
|
+
"description": "Read user claims from the id_token instead of the userinfo endpoint, for providers that populate only the former."
|
|
136
|
+
},
|
|
137
|
+
"authorization_endpoint": {
|
|
138
|
+
"type": "string",
|
|
139
|
+
"format": "uri",
|
|
140
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
141
|
+
"description": "Overrides discovery."
|
|
142
|
+
},
|
|
143
|
+
"token_endpoint": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"format": "uri",
|
|
146
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
147
|
+
"description": "Overrides discovery."
|
|
148
|
+
},
|
|
149
|
+
"userinfo_endpoint": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"format": "uri",
|
|
152
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
153
|
+
"description": "Overrides discovery."
|
|
154
|
+
},
|
|
155
|
+
"client_id": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"minLength": 1,
|
|
158
|
+
"maxLength": 512,
|
|
159
|
+
"description": "Either a literal in case the same client is used in all environments, or a `${{ NAME }}` reference to a variable in case of separate clients per environment."
|
|
160
|
+
},
|
|
161
|
+
"client_secret": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"pattern": "^\\$\\{\\{ *[A-Za-z0-9_]+ *\\}\\}$",
|
|
164
|
+
"description": "A reference to the variable holding the client secret, never the secret itself. A secret may only be referenced as the entire value: text around the placeholder would be rendered into the resolved credential, so it is rejected. The engine resolves it against the environment serving the request."
|
|
165
|
+
},
|
|
166
|
+
"token_endpoint_auth_method": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"enum": [
|
|
169
|
+
"client_secret_basic",
|
|
170
|
+
"client_secret_post"
|
|
171
|
+
],
|
|
172
|
+
"default": "client_secret_basic",
|
|
173
|
+
"description": "How the client authenticates at the token endpoint."
|
|
174
|
+
},
|
|
175
|
+
"scopes": {
|
|
176
|
+
"type": "array",
|
|
177
|
+
"items": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"minLength": 1
|
|
180
|
+
},
|
|
181
|
+
"uniqueItems": true,
|
|
182
|
+
"minItems": 1,
|
|
183
|
+
"contains": {
|
|
184
|
+
"const": "openid"
|
|
185
|
+
},
|
|
186
|
+
"default": [
|
|
187
|
+
"openid",
|
|
188
|
+
"profile",
|
|
189
|
+
"email"
|
|
190
|
+
],
|
|
191
|
+
"description": "Must contain `openid` - without it the provider returns no id_token and the connection is not OIDC. Enforced by `required` + `contains`; the `default` is a UI-prefill hint only - validators never inject it, so an omitted `scopes` is rejected regardless."
|
|
192
|
+
},
|
|
193
|
+
"pkce_enabled": {
|
|
194
|
+
"type": "boolean",
|
|
195
|
+
"default": true,
|
|
196
|
+
"description": "Send PKCE (code_challenge/code_verifier). Providers that do not support PKCE typically ignore the parameters, so `true` is safe and future-proofs; set `false` only for a provider whose token endpoint rejects them."
|
|
197
|
+
},
|
|
198
|
+
"static_authorize_parameters": {
|
|
199
|
+
"type": "object",
|
|
200
|
+
"propertyNames": {
|
|
201
|
+
"minLength": 1,
|
|
202
|
+
"not": {
|
|
203
|
+
"enum": [
|
|
204
|
+
"client_id",
|
|
205
|
+
"redirect_uri",
|
|
206
|
+
"response_type",
|
|
207
|
+
"scope",
|
|
208
|
+
"state",
|
|
209
|
+
"nonce",
|
|
210
|
+
"code_challenge",
|
|
211
|
+
"code_challenge_method",
|
|
212
|
+
"response_mode",
|
|
213
|
+
"request",
|
|
214
|
+
"request_uri",
|
|
215
|
+
"client_secret",
|
|
216
|
+
"client_assertion"
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"additionalProperties": {
|
|
221
|
+
"type": "string"
|
|
222
|
+
},
|
|
223
|
+
"description": "Extra provider-specific authorize parameters (for example `prompt`). Engine-owned protocol parameters are reserved and rejected by `propertyNames`: the engine composes them itself, and an override of `state` or `nonce` would silently defeat CSRF and token binding. `client_secret` and `client_assertion` are rejected as they could be appended to the public authorize URL."
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
"oauth2": {
|
|
228
|
+
"type": "object",
|
|
229
|
+
"additionalProperties": false,
|
|
230
|
+
"description": "OAuth 2.0 connection details.",
|
|
231
|
+
"required": [
|
|
232
|
+
"authorization_endpoint",
|
|
233
|
+
"token_endpoint",
|
|
234
|
+
"userinfo_endpoint",
|
|
235
|
+
"client_id",
|
|
236
|
+
"client_secret"
|
|
237
|
+
],
|
|
238
|
+
"properties": {
|
|
239
|
+
"authorization_endpoint": {
|
|
240
|
+
"type": "string",
|
|
241
|
+
"format": "uri",
|
|
242
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
243
|
+
"description": "Where the user is sent to authorize."
|
|
244
|
+
},
|
|
245
|
+
"token_endpoint": {
|
|
246
|
+
"type": "string",
|
|
247
|
+
"format": "uri",
|
|
248
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
249
|
+
"description": "Where the authorization code is exchanged."
|
|
250
|
+
},
|
|
251
|
+
"userinfo_endpoint": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"format": "uri",
|
|
254
|
+
"pattern": "^(https://[^\\s/?#]+|http://(localhost|127\\.0\\.0\\.1)(:[0-9]+)?)([/?][^\\s#]*)?$",
|
|
255
|
+
"description": "Where the authenticated user's profile is fetched."
|
|
256
|
+
},
|
|
257
|
+
"client_id": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"minLength": 1,
|
|
260
|
+
"maxLength": 512,
|
|
261
|
+
"description": "Either a literal in case the same client is used in all environments, or a `${{ NAME }}` reference to a variable in case of separate clients per environment."
|
|
262
|
+
},
|
|
263
|
+
"client_secret": {
|
|
264
|
+
"type": "string",
|
|
265
|
+
"pattern": "^\\$\\{\\{ *[A-Za-z0-9_]+ *\\}\\}$",
|
|
266
|
+
"description": "A reference to the variable holding the client secret, never the secret itself. A secret may only be referenced as the entire value: text around the placeholder would be rendered into the resolved credential, so it is rejected. The engine resolves it against the environment serving the request."
|
|
267
|
+
},
|
|
268
|
+
"token_endpoint_auth_method": {
|
|
269
|
+
"type": "string",
|
|
270
|
+
"enum": [
|
|
271
|
+
"client_secret_basic",
|
|
272
|
+
"client_secret_post"
|
|
273
|
+
],
|
|
274
|
+
"default": "client_secret_basic",
|
|
275
|
+
"description": "How the client authenticates at the token endpoint."
|
|
276
|
+
},
|
|
277
|
+
"scopes": {
|
|
278
|
+
"type": "array",
|
|
279
|
+
"items": {
|
|
280
|
+
"type": "string",
|
|
281
|
+
"minLength": 1
|
|
282
|
+
},
|
|
283
|
+
"uniqueItems": true,
|
|
284
|
+
"description": "Provider-specific; OAuth 2.0 defines no universal scope."
|
|
285
|
+
},
|
|
286
|
+
"pkce_enabled": {
|
|
287
|
+
"type": "boolean",
|
|
288
|
+
"default": true,
|
|
289
|
+
"description": "Send PKCE (code_challenge/code_verifier). Providers that do not support PKCE typically ignore the parameters, so `true` is safe and future-proofs; set `false` only for a provider whose token endpoint rejects them."
|
|
290
|
+
},
|
|
291
|
+
"static_authorize_parameters": {
|
|
292
|
+
"type": "object",
|
|
293
|
+
"propertyNames": {
|
|
294
|
+
"minLength": 1,
|
|
295
|
+
"not": {
|
|
296
|
+
"enum": [
|
|
297
|
+
"client_id",
|
|
298
|
+
"redirect_uri",
|
|
299
|
+
"response_type",
|
|
300
|
+
"scope",
|
|
301
|
+
"state",
|
|
302
|
+
"nonce",
|
|
303
|
+
"code_challenge",
|
|
304
|
+
"code_challenge_method",
|
|
305
|
+
"response_mode",
|
|
306
|
+
"request",
|
|
307
|
+
"request_uri",
|
|
308
|
+
"client_secret",
|
|
309
|
+
"client_assertion"
|
|
310
|
+
]
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"additionalProperties": {
|
|
314
|
+
"type": "string"
|
|
315
|
+
},
|
|
316
|
+
"description": "Extra provider-specific authorize parameters (for example `prompt`). Engine-owned protocol parameters are reserved and rejected by `propertyNames`: the engine composes them itself, and an override of `state` or `nonce` would silently defeat CSRF and token binding. `client_secret` and `client_assertion` are rejected as they could be appended to the public authorize URL."
|
|
317
|
+
},
|
|
318
|
+
"supplementary_fetch": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"enum": [
|
|
321
|
+
"github_primary_email"
|
|
322
|
+
],
|
|
323
|
+
"description": "Provider-specific follow-up call after userinfo. New values are non-breaking."
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"allOf": [
|
|
327
|
+
{
|
|
328
|
+
"if": {
|
|
329
|
+
"properties": {
|
|
330
|
+
"supplementary_fetch": {
|
|
331
|
+
"const": "github_primary_email"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
"required": [
|
|
335
|
+
"supplementary_fetch"
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
"then": {
|
|
339
|
+
"required": [
|
|
340
|
+
"scopes"
|
|
341
|
+
],
|
|
342
|
+
"properties": {
|
|
343
|
+
"scopes": {
|
|
344
|
+
"contains": {
|
|
345
|
+
"const": "user:email"
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
]
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
"allOf": [
|
|
355
|
+
{
|
|
356
|
+
"if": {
|
|
357
|
+
"properties": {
|
|
358
|
+
"protocol": {
|
|
359
|
+
"const": "oidc"
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"required": [
|
|
363
|
+
"protocol"
|
|
364
|
+
]
|
|
365
|
+
},
|
|
366
|
+
"then": {
|
|
367
|
+
"required": [
|
|
368
|
+
"oidc"
|
|
369
|
+
],
|
|
370
|
+
"properties": {
|
|
371
|
+
"oauth2": false
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"if": {
|
|
377
|
+
"properties": {
|
|
378
|
+
"protocol": {
|
|
379
|
+
"const": "oauth2"
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"required": [
|
|
383
|
+
"protocol"
|
|
384
|
+
]
|
|
385
|
+
},
|
|
386
|
+
"then": {
|
|
387
|
+
"required": [
|
|
388
|
+
"oauth2",
|
|
389
|
+
"subject_claim"
|
|
390
|
+
],
|
|
391
|
+
"properties": {
|
|
392
|
+
"oidc": false
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
]
|
|
397
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Code generated by scripts/generate-meta-schemas.ts; DO NOT EDIT.",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"title": "SSOAuthMethod",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"enabled"
|
|
8
|
+
],
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"properties": {
|
|
11
|
+
"enabled": {
|
|
12
|
+
"type": "boolean",
|
|
13
|
+
"description": "Whether the authentication method is enabled or not"
|
|
14
|
+
},
|
|
15
|
+
"providers": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"minItems": 1,
|
|
18
|
+
"uniqueItems": true,
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
22
|
+
"maxLength": 64,
|
|
23
|
+
"examples": [
|
|
24
|
+
"google",
|
|
25
|
+
"github",
|
|
26
|
+
"corp_idp"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"description": "Slugs of the Project-level identity provider connections available to users of this schema. Each entry must match the `slug` of a connection under `.zitadel/idps/`; a connection existing does not by itself make it available here."
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"if": {
|
|
33
|
+
"properties": {
|
|
34
|
+
"enabled": {
|
|
35
|
+
"const": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": [
|
|
39
|
+
"enabled"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"then": {
|
|
43
|
+
"required": [
|
|
44
|
+
"providers"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"else": {
|
|
48
|
+
"not": {
|
|
49
|
+
"required": [
|
|
50
|
+
"providers"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$comment": "Code generated by scripts/generate-meta-schemas.ts; DO NOT EDIT.",
|
|
2
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
4
|
"title": "UserProperty",
|
|
4
5
|
"type": "object",
|
|
5
|
-
"
|
|
6
|
-
{
|
|
7
|
-
"$ref": "https://json-schema.org/draft/2020-12/schema"
|
|
8
|
-
}
|
|
9
|
-
],
|
|
6
|
+
"description": "The meta-schema one property of a customer's user schema is validated\nagainst. The generated `user-property.json` adds\n`allOf: [{$ref: draft-2020-12}]`, which cannot live here because code\ngenerators choke on it.\n\nNative JSON Schema keywords such as `type`, `format`, `title` and `writeOnly`\nare accepted without being listed below. `writeOnly: true` is reserved for a\nvalue that may be written but is never returned by the read API; nothing\nenforces it today, so responses still include write-only properties.\n",
|
|
10
7
|
"additionalProperties": true,
|
|
11
8
|
"properties": {
|
|
12
|
-
"$schema": {
|
|
13
|
-
"type": "string",
|
|
14
|
-
"const": "https://json-schema.org/draft/2020-12/schema",
|
|
15
|
-
"description": "The JSON Schema version used for this schema."
|
|
16
|
-
},
|
|
17
9
|
"x-unique": {
|
|
18
10
|
"oneOf": [
|
|
19
11
|
{
|
|
@@ -44,11 +36,11 @@
|
|
|
44
36
|
"x-audit": {
|
|
45
37
|
"type": "boolean",
|
|
46
38
|
"default": false,
|
|
47
|
-
"description": "Whether this property's value may appear in audit event payloads. Audit
|
|
39
|
+
"description": "Whether this property's value may appear in audit event payloads. Audit\npayloads are deny-by-default: a property without this annotation\ncontributes its key but never its value.\n"
|
|
48
40
|
},
|
|
49
41
|
"properties": {
|
|
50
42
|
"type": "object",
|
|
51
|
-
"description": "A map of additional properties for the user definition, where the key is
|
|
43
|
+
"description": "A map of additional properties for the user definition, where the key is\nthe property name and the value is the property schema.\n",
|
|
52
44
|
"propertyNames": {
|
|
53
45
|
"$ref": "property-name.json"
|
|
54
46
|
},
|
|
@@ -56,5 +48,10 @@
|
|
|
56
48
|
"$ref": "user-property.json"
|
|
57
49
|
}
|
|
58
50
|
}
|
|
59
|
-
}
|
|
51
|
+
},
|
|
52
|
+
"allOf": [
|
|
53
|
+
{
|
|
54
|
+
"$ref": "https://json-schema.org/draft/2020-12/schema"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
60
57
|
}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"$comment": "Code generated by scripts/generate-meta-schemas.ts; DO NOT EDIT.",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"title": "UserSchema",
|
|
4
5
|
"type": "object",
|
|
6
|
+
"description": "The meta-schema a customer's user schema document is validated against.\nThe generated `user-schema.json` adds `allOf: [{$ref: draft-2020-12}]`,\nwhich cannot live here because code generators choke on it.\n",
|
|
5
7
|
"required": [
|
|
6
8
|
"metaSchema",
|
|
7
9
|
"kind",
|
|
8
10
|
"x-auth-methods"
|
|
9
11
|
],
|
|
10
|
-
"allOf": [
|
|
11
|
-
{
|
|
12
|
-
"$ref": "https://json-schema.org/draft/2020-12/schema"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
12
|
"additionalProperties": true,
|
|
16
13
|
"properties": {
|
|
17
14
|
"$schema": {
|
|
@@ -22,8 +19,10 @@
|
|
|
22
19
|
"objectType": {
|
|
23
20
|
"type": "string",
|
|
24
21
|
"maxLength": 256,
|
|
25
|
-
"description": "The type of user this schema describes. This is a customer chosen name
|
|
26
|
-
"
|
|
22
|
+
"description": "The type of user this schema describes. This is a customer chosen name.\n",
|
|
23
|
+
"examples": [
|
|
24
|
+
"human-user"
|
|
25
|
+
]
|
|
27
26
|
},
|
|
28
27
|
"kind": {
|
|
29
28
|
"type": "string",
|
|
@@ -32,8 +31,8 @@
|
|
|
32
31
|
},
|
|
33
32
|
"metaSchema": {
|
|
34
33
|
"type": "string",
|
|
35
|
-
"maxLength": 1024,
|
|
36
34
|
"format": "uri",
|
|
35
|
+
"maxLength": 1024,
|
|
37
36
|
"description": "The user Schema version used for this schema."
|
|
38
37
|
},
|
|
39
38
|
"x-auth-methods": {
|
|
@@ -42,7 +41,10 @@
|
|
|
42
41
|
"x-identifier": {
|
|
43
42
|
"type": "string",
|
|
44
43
|
"minLength": 1,
|
|
45
|
-
"description": "Path of the leaf property whose value identifies a user (nested leaves
|
|
44
|
+
"description": "Path of the leaf property whose value identifies a user (nested leaves\nare addressed by their dot-joined attribute path). The property must\ncarry `x-unique` \"project\". Required when an auth method needing\nidentifier-first dispatch (password) is enabled. Passkey is exempt:\ndiscoverable credentials identify the user through the assertion\nitself, so passkey-only and API-managed schemas may designate nothing;\nflows using identifier-first passkey are validated at the flow level\ninstead.\n",
|
|
45
|
+
"examples": [
|
|
46
|
+
"email"
|
|
47
|
+
]
|
|
46
48
|
},
|
|
47
49
|
"x-display": {
|
|
48
50
|
"type": "array",
|
|
@@ -51,11 +53,11 @@
|
|
|
51
53
|
"type": "string",
|
|
52
54
|
"minLength": 1
|
|
53
55
|
},
|
|
54
|
-
"description": "Ordered leaf property paths whose values, joined with a space, render
|
|
56
|
+
"description": "Ordered leaf property paths whose values, joined with a space, render\nthe user's display name.\n"
|
|
55
57
|
},
|
|
56
58
|
"properties": {
|
|
57
59
|
"type": "object",
|
|
58
|
-
"description": "A map of additional properties for the user definition, where the
|
|
60
|
+
"description": "A map of additional properties for the user definition, where the\nkey is the property name and the value is the property schema\n",
|
|
59
61
|
"propertyNames": {
|
|
60
62
|
"$ref": "property-name.json"
|
|
61
63
|
},
|
|
@@ -63,5 +65,10 @@
|
|
|
63
65
|
"$ref": "user-property.json"
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
|
-
}
|
|
68
|
+
},
|
|
69
|
+
"allOf": [
|
|
70
|
+
{
|
|
71
|
+
"$ref": "https://json-schema.org/draft/2020-12/schema"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
67
74
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zitadel/config",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.23",
|
|
4
4
|
"description": "Versioned Zitadel local config schemas and defaults",
|
|
5
5
|
"homepage": "https://github.com/zitadel/nextgen/tree/main/packages/config#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -43,6 +43,16 @@
|
|
|
43
43
|
"types": "./dist/branding-url.d.mts",
|
|
44
44
|
"import": "./dist/branding-url.mjs"
|
|
45
45
|
},
|
|
46
|
+
"./branding-contrast": {
|
|
47
|
+
"@zitadel/source": "./src/branding-contrast.ts",
|
|
48
|
+
"types": "./dist/branding-contrast.d.mts",
|
|
49
|
+
"import": "./dist/branding-contrast.mjs"
|
|
50
|
+
},
|
|
51
|
+
"./css-color": {
|
|
52
|
+
"@zitadel/source": "./src/css-color.ts",
|
|
53
|
+
"types": "./dist/css-color.d.mts",
|
|
54
|
+
"import": "./dist/css-color.mjs"
|
|
55
|
+
},
|
|
46
56
|
"./normalize": {
|
|
47
57
|
"@zitadel/source": "./src/normalize.ts",
|
|
48
58
|
"types": "./dist/normalize.d.mts",
|
|
@@ -71,20 +81,23 @@
|
|
|
71
81
|
"access": "public"
|
|
72
82
|
},
|
|
73
83
|
"dependencies": {
|
|
84
|
+
"culori": "^4.0.2",
|
|
74
85
|
"liquidjs": "^10.27.2",
|
|
75
86
|
"zod": "^4.3.6",
|
|
76
|
-
"@zitadel/api": "1.0.0-alpha.
|
|
87
|
+
"@zitadel/api": "1.0.0-alpha.23"
|
|
77
88
|
},
|
|
78
89
|
"devDependencies": {
|
|
90
|
+
"@types/culori": "^4.0.1",
|
|
79
91
|
"ajv": "^8.20.0",
|
|
80
92
|
"tsdown": "^0.21.10",
|
|
81
93
|
"tslib": "^2.8.1",
|
|
82
94
|
"vitest": "^4.1.9"
|
|
83
95
|
},
|
|
84
96
|
"scripts": {
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
97
|
+
"sync-schemas": "node scripts/sync-meta-schemas.mjs",
|
|
98
|
+
"build": "node scripts/sync-meta-schemas.mjs && tsdown",
|
|
99
|
+
"typecheck": "node scripts/sync-meta-schemas.mjs && tsc --build tsconfig.json",
|
|
100
|
+
"test": "node scripts/sync-meta-schemas.mjs && vitest run --passWithNoTests",
|
|
88
101
|
"lint": "oxlint ."
|
|
89
102
|
}
|
|
90
103
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults-Bh4_xVbh.d.mts","names":[],"sources":["../src/readmes.ts","../src/defaults.ts"],"mappings":";;;;;;AAQA;;iBAAgB,oBAAA,CAAA;;;AAQhB;;iBAAgB,kBAAA,CAAA;;;AAShB;;;iBAAgB,qBAAA,CAAA;;;cCFH,2BAAA;AAAA,cACA,uBAAA;AAAA,cACA,0BAAA;AAAA,cACA,wBAAA;AAAA,cACA,4BAAA;AAAA,cACA,8BAAA;ADZb;;;;;AASA;;AATA,cCqBa,aAAA;AAAA,KAED,WAAA,WAAsB,aAAA;AAAA,cAErB,oBAAA,EAAsB,WAAA;;;;AAlBnC;;;;cAkDa,gBAAA;AAAA,KAED,cAAA,WAAyB,gBAAA;AAAA,cAExB,uBAAA,EAAyB,cAAA;AAAA,KAW1B,qBAAA;EAhEwB,8EAkElC,QAAA;IACE,MAAA;IACA,oBAAA;EAAA,GAnEmC;EAsErC,QAAA;AAAA;;;;;AApEF;iBA4EgB,wBAAA,CACd,MAAA,YACC,qBAAA;;;;AA7EH;;;;;cAgHa,eAAA;AAAA,KAED,YAAA,WAAuB,eAAA;AAAA,cAEtB,sBAAA,EAAwB,YAAA;AAAA,KA0GzB,0BAAA;EACV,iBAAA;EACA,aAAA,WArNqB;EAuNrB,MAAA,WAvNgC;EAyNhC,OAAA;AAAA;AAAA,iBAGc,yBAAA,CACd,iBAAA;AAAA,iBAKc,yBAAA,CACd,OAAA,GAAS,0BAAA,GACR,gBAAA;AAAA,iBAca,mBAAA,CACd,OAAA,GAAS,0BAAA,GACR,sCAAA"}
|