snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped

This commit is contained in:
upstream-mirror
2026-09-15 21:19:12 +05:00
commit c60cc7ca75
8092 changed files with 394160 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
code:
hooks:
- hook: show_verification_ui
- hook: session
login:
ui_url: http://localhost:4455/login
after:
code:
hooks:
- hook: require_verified_address
error:
ui_url: http://localhost:4455/error
verification:
enabled: true
use: code
ui_url: http://localhost:4455/verification
recovery:
enabled: true
use: code
ui_url: http://localhost:4455/recovery
methods:
password:
enabled: true
code:
passwordless_enabled: true
enabled: true
config:
lifespan: 1h
identity:
schemas:
- id: default
url: file://test/e2e/profiles/code/identity.traits.schema.json

View File

@@ -0,0 +1,31 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
}
}
}
},
"required": ["email"]
}
}
}

View File

@@ -0,0 +1,77 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"username": {
"type": "string",
"title": "Your Username",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
}
}
}
},
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
},
"email2": {
"type": "string",
"format": "email",
"title": "Your Second E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
}
},
"required": [
"email"
]
}
}
}

View File

@@ -0,0 +1,42 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
},
"tos": {
"type": "boolean",
"title": "Accept Terms of Service",
"description": "In order to sign up, you have to accept our terms of service."
}
},
"required": ["email", "tos"]
}
}
}

View File

@@ -0,0 +1,31 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verification
recovery:
ui_url: http://localhost:4455/recovery
identity:
schemas:
- id: default
url: file://test/e2e/profiles/email/identity.traits.schema.json

View File

@@ -0,0 +1,67 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
},
"webauthn": {
"identifier": true
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
},
"tos": {
"title": "Accept Terms of Service",
"type": "boolean"
},
"age": {
"title": "Age",
"type": "number",
"maximum": 300
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,59 @@
log:
level: trace
leak_sensitive_values: true
secrets:
cookie:
- PLEASE-CHANGE-ME-I-AM-VERY-INSECURE
selfservice:
default_browser_return_url: http://localhost:4455/
allowed_return_urls:
- http://localhost:4455
- http://localhost:19006/Callback
- exp://example.com/Callback
- https://www.ory.sh/
- https://example.org/
- https://www.example.org/
methods:
link:
config:
lifespan: 1h
code:
config:
lifespan: 1h
serve:
public:
base_url: http://localhost:4455/
cors:
enabled: true
allowed_origins:
- http://localhost:3000
- http://localhost:19006
allowed_headers:
- Authorization
- Content-Type
- X-Session-Token
admin:
base_url: http://kratos:4434/
hashers:
algorithm: argon2
argon2:
memory: 1KB
iterations: 1
parallelism: 1
courier:
smtp:
connection_uri: smtps://test:test@localhost:1025/?skip_ssl_verify=true
session:
whoami:
required_aal: aal1
feature_flags:
legacy_continue_with_verification_ui: true
legacy_require_verified_login_error: true
legacy_oidc_registration_node_group: true

View File

@@ -0,0 +1,53 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
required_aal: highest_available
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
methods:
code:
mfa_enabled: true
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
webauthn:
enabled: true
config:
rp:
id: localhost
origin: http://localhost:4455
display_name: Ory
identity:
schemas:
- id: default
url: file://test/e2e/profiles/mfa-optional/identity.traits.schema.json
session:
whoami:
required_aal: highest_available

View File

@@ -0,0 +1,45 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
}
}
},
"optionalMfaEmail": {
"type": "string",
"format": "email",
"title": "Your E-Mail for MFA (Optional)",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"code": {
"identifier": true,
"via": "email"
}
}
}
}
},
"required": ["email"],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,53 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
required_aal: aal1
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
methods:
code:
mfa_enabled: true
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
webauthn:
enabled: true
config:
rp:
id: localhost
origin: http://localhost:4455
display_name: Ory
identity:
schemas:
- id: default
url: file://test/e2e/profiles/mfa/identity.traits.schema.json
session:
whoami:
required_aal: aal1

View File

@@ -0,0 +1,44 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,80 @@
selfservice:
flows:
settings:
privileged_session_max_age: 5m
required_aal: aal1
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
after:
password:
hooks:
- hook: session
oidc:
hooks:
- hook: session
recovery:
enabled: true
verification:
enabled: false
methods:
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
webauthn:
enabled: true
config:
rp:
id: localhost
origin: http://localhost:4455
display_name: Ory
oidc:
enabled: true
config:
providers:
- id: hydra
label: Ory
provider: generic
client_id: ${OIDC_HYDRA_CLIENT_ID}
client_secret: ${OIDC_HYDRA_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
- id: google
provider: generic
client_id: ${OIDC_GOOGLE_CLIENT_ID}
client_secret: ${OIDC_GOOGLE_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
- id: github
provider: generic
client_id: ${OIDC_GITHUB_CLIENT_ID}
client_secret: ${OIDC_GITHUB_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
identity:
schemas:
- id: default
url: file://test/e2e/profiles/email/identity.traits.schema.json
secrets:
cipher:
- secret-thirty-two-character-long
session:
whoami:
required_aal: aal1

View File

@@ -0,0 +1,48 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
}
}
},
"website": {
"type": "string",
"format": "uri",
"minLength": 10
},
"tos": {
"title": "Accept Terms of Service",
"type": "boolean"
},
"age": {
"title": "Age",
"type": "number",
"maximum": 300
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,52 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
hooks:
- hook: web_hook
config:
method: GET
url: https://www.google.com/login/hook
body: http://192.168.178.3:4455/body
login:
ui_url: http://localhost:4455/login
before:
hooks:
- hook: web_hook
config:
method: GET
url: http://192.168.178.2:4455/login/hook
body: file://test/e2e/profiles/network/webhook.jsonnet
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verification
enabled: true
recovery:
ui_url: http://localhost:4455/recovery
identity:
default_schema_id: localhost
schemas:
- id: localhost
url: http://localhost/
- id: ref
url: file://test/e2e/profiles/network/identity.traits.schema.json
- id: working
url: file://test/e2e/profiles/email/identity.traits.schema.json
clients:
http:
disallow_private_ip_ranges: true

View File

@@ -0,0 +1,60 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
},
"website": {
"$ref": "http://192.168.178.1/"
},
"tos": {
"title": "Accept Terms of Service",
"type": "boolean"
},
"age": {
"title": "Age",
"type": "number",
"maximum": 300
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,54 @@
clients:
http:
disallow_private_ip_ranges: false
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
required_aal: highest_available
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
methods:
totp:
enabled: true
config:
issuer: issuer.ory.sh
webauthn:
enabled: true
config:
rp:
id: localhost
origin: http://localhost:4455
display_name: Ory
oauth2_provider:
url: "http://localhost:4745"
identity:
schemas:
- id: default
url: file://test/e2e/profiles/oidc-provider-mfa/identity.traits.schema.json
session:
whoami:
required_aal: highest_available

View File

@@ -0,0 +1,57 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
}
}
},
"website": {
"title": "Website",
"type": "string",
"format": "uri",
"minLength": 10
},
"tos": {
"title": "Accept Terms of Service",
"type": "boolean"
},
"age": {
"title": "Age",
"type": "number",
"maximum": 300
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,61 @@
clients:
http:
disallow_private_ip_ranges: false
oauth2_provider:
url: "http://localhost:4745"
selfservice:
methods:
password:
enabled: true
code:
enabled: true
oidc:
enabled: true
config:
providers:
- id: google
provider: generic
client_id: ${OIDC_GOOGLE_CLIENT_ID}
client_secret: ${OIDC_GOOGLE_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc-provider/hydra.jsonnet
flows:
settings:
privileged_session_max_age: 5m
ui_url: http://localhost:4455/settings
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
oidc:
hooks:
- hook: session
password:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
enabled: true
lifespan: 5m
identity:
schemas:
- id: default
url: file://test/e2e/profiles/oidc-provider/identity.traits.schema.json
secrets:
cipher:
- secret-thirty-two-character-long

View File

@@ -0,0 +1,13 @@
local claims = std.extVar('claims');
if std.length(claims.sub) == 0 then
error 'claim sub not set'
else
{
identity: {
traits: {
email: claims.sub,
[if "website" in claims then "website" else null]: claims.website
},
},
}

View File

@@ -0,0 +1,60 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
},
"recovery": {
"via": "email"
}
}
},
"website": {
"title": "Website",
"type": "string",
"format": "uri",
"minLength": 10
},
"tos": {
"title": "Accept Terms of Service",
"type": "boolean"
},
"age": {
"title": "Age",
"type": "number",
"maximum": 300
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,72 @@
selfservice:
methods:
oidc:
enabled: true
config:
providers:
- id: hydra
label: Ory
provider: generic
client_id: ${OIDC_HYDRA_CLIENT_ID}
client_secret: ${OIDC_HYDRA_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
- id: google
provider: generic
client_id: ${OIDC_GOOGLE_CLIENT_ID}
client_secret: ${OIDC_GOOGLE_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
- id: github
provider: generic
client_id: ${OIDC_GITHUB_CLIENT_ID}
client_secret: ${OIDC_GITHUB_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
flows:
settings:
privileged_session_max_age: 5m
ui_url: http://localhost:4455/settings
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
oidc:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
identity:
schemas:
- id: default
url: file://test/e2e/profiles/oidc/identity.traits.schema.json
secrets:
cipher:
- secret-thirty-two-character-long
session:
whoami:
required_aal: aal1

View File

@@ -0,0 +1,13 @@
local claims = std.extVar('claims');
if std.length(claims.sub) == 0 then
error 'claim sub not set'
else
{
identity: {
traits: {
email: claims.sub,
[if "website" in claims then "website" else null]: claims.website
},
},
}

View File

@@ -0,0 +1,80 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
}
}
},
"website": {
"title": "Website",
"type": "string",
"format": "uri",
"minLength": 10
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
},
"nested": {
"type": "object",
"properties": {
"b": {
"title": " optional B",
"type": "string"
}
}
},
"requirednested": {
"title": "required nested",
"type": "object",
"properties": {
"a": {
"title": "Required A",
"const": true
},
"b": {
"title": "Required optional B",
"type": "string"
}
},
"required": [
"a"
]
}
},
"required": [
"email",
"website",
"requirednested",
"consent"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,52 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
}
},
"verification": {
"via": "email"
}
}
},
"website": {
"title": "Website",
"type": "string",
"format": "uri",
"minLength": 10
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
}
},
"required": ["email", "website"],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,56 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
required_aal: highest_available
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
passkey:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
methods:
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
passkey:
enabled: true
config:
rp:
id: localhost
origins:
- http://localhost:4455
- http://localhost:19006
display_name: Ory
identity:
schemas:
- id: default
url: file://test/e2e/profiles/passkey/identity.traits.schema.json
session:
whoami:
required_aal: highest_available

View File

@@ -0,0 +1,40 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"passkey": {
"display_name": true
}
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
}
},
"required": ["email"],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,68 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
required_aal: aal1
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
webauthn:
hooks:
- hook: session
passkey:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
methods:
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
webauthn:
enabled: true
config:
passwordless: true
rp:
id: localhost
origin: http://localhost:4455
display_name: Ory
passkey:
enabled: true
config:
rp:
display_name: Your Application name
# Set 'id' to the top-level domain.
id: localhost
# Set 'origin' to the exact URL of the page that prompts the user to use WebAuthn. You must include the scheme, host, and port.
origins:
- http://localhost:4455
identity:
schemas:
- id: default
url: file://test/e2e/profiles/passwordless/identity.traits.schema.json
session:
whoami:
required_aal: aal1

View File

@@ -0,0 +1,40 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"passkey": {
"display_name": true
}
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
}
},
"required": ["email", "website"],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,47 @@
selfservice:
methods:
password:
enabled: true
link:
enabled: true
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 1m
required_aal: highest_available
recovery:
ui_url: http://localhost:4455/recovery
enabled: true
lifespan: 5m
logout:
after:
default_browser_return_url: http://localhost:4455/login
login:
ui_url: http://localhost:4455/login
registration:
ui_url: http://localhost:4455/registration
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
methods:
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
identity:
schemas:
- id: default
url: file://test/e2e/profiles/recovery/identity.traits.schema.json
secrets:
cipher:
- secret-thirty-two-character-long

View File

@@ -0,0 +1,36 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
},
"recovery": {
"via": "email"
}
}
}
},
"required": [
"email"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,38 @@
selfservice:
methods:
password:
enabled: true
link:
enabled: true
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 1m
recovery:
ui_url: http://localhost:4455/recovery
enabled: true
lifespan: 5m
logout:
after:
default_browser_return_url: http://localhost:4455/login
login:
ui_url: http://localhost:4455/login
registration:
ui_url: http://localhost:4455/registration
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
identity:
schemas:
- id: default
url: file://test/e2e/profiles/recovery/identity.traits.schema.json
secrets:
cipher:
- secret-thirty-two-character-long

View File

@@ -0,0 +1,36 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
},
"recovery": {
"via": "email"
}
}
}
},
"required": [
"email"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,91 @@
selfservice:
flows:
settings:
privileged_session_max_age: 5m
ui_url: http://localhost:4455/settings
required_aal: aal1
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
-
hook: session
oidc:
hooks:
-
hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
enabled: true
lifespan: 5m
ui_url: http://localhost:4455/verify
recovery:
enabled: true
lifespan: 5m
ui_url: http://localhost:4455/recovery
methods:
oidc:
enabled: true
config:
providers:
-
id: hydra
label: Ory
provider: generic
client_id: ${OIDC_HYDRA_CLIENT_ID}
client_secret: ${OIDC_HYDRA_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
-
id: google
provider: generic
client_id: ${OIDC_GOOGLE_CLIENT_ID}
client_secret: ${OIDC_GOOGLE_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
-
id: github
provider: generic
client_id: ${OIDC_GITHUB_CLIENT_ID}
client_secret: ${OIDC_GITHUB_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
totp:
enabled: true
config:
issuer: issuer.ory.sh
lookup_secret:
enabled: true
webauthn:
enabled: true
config:
rp:
id: localhost
origin: http://localhost:4455
display_name: Ory
identity:
schemas:
- id: default
url: file://test/e2e/profiles/spa/identity.traits.schema.json
session:
whoami:
required_aal: aal1

View File

@@ -0,0 +1,66 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"totp": {
"account_name": true
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
},
"tos": {
"title": "Accept Terms of Service",
"type": "boolean"
},
"age": {
"title": "Age",
"type": "number",
"maximum": 300
},
"consent": {
"title": "Consent",
"type": "boolean"
},
"newsletter": {
"title": "Newsletter",
"type": "boolean"
}
},
"required": [
"email",
"website"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,109 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
required_aal: aal1
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: false
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
webauthn:
hooks:
- hook: session
code:
hooks:
- hook: session
oidc:
hooks:
- hook: session
login:
ui_url: http://localhost:4455/login
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
enabled: true
use: code
ui_url: http://localhost:4455/recovery
methods:
password:
enabled: true
webauthn:
enabled: true
config:
passwordless: true
rp:
display_name: Your Application name
# Set 'id' to the top-level domain.
id: localhost
# Set 'origin' to the exact URL of the page that prompts the user to use WebAuthn. You must include the scheme, host, and port.
origin: http://localhost:4455
totp:
config:
issuer: Kratos
enabled: true
lookup_secret:
enabled: true
link:
enabled: true
code:
enabled: true
passwordless_enabled: true
config:
lifespan: 1h
oidc:
enabled: true
config:
providers:
- id: hydra
label: Ory
provider: generic
client_id: ${OIDC_HYDRA_CLIENT_ID}
client_secret: ${OIDC_HYDRA_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
- id: google
provider: generic
client_id: ${OIDC_GOOGLE_CLIENT_ID}
client_secret: ${OIDC_GOOGLE_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
- id: github
provider: generic
client_id: ${OIDC_GITHUB_CLIENT_ID}
client_secret: ${OIDC_GITHUB_CLIENT_SECRET}
issuer_url: http://localhost:4444/
scope:
- offline
mapper_url: file://test/e2e/profiles/oidc/hydra.jsonnet
identity:
schemas:
- id: default
url: file://test/e2e/profiles/two-steps/identity.traits.schema.json
session:
whoami:
required_aal: aal1

View File

@@ -0,0 +1,41 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"code": {
"identifier": true,
"via": "email"
},
"webauthn": {
"identifier": true
}
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
}
},
"required": ["email", "website"],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,43 @@
selfservice:
methods:
password:
enabled: true
link:
enabled: true
code:
enabled: true
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 1m
verification:
ui_url: http://localhost:4455/verification
enabled: true
lifespan: 5m
use: code
after:
default_browser_return_url: http://localhost:4455/
logout:
after:
default_browser_return_url: http://localhost:4455/login
login:
ui_url: http://localhost:4455/login
registration:
ui_url: http://localhost:4455/registration
error:
ui_url: http://localhost:4455/error
recovery:
ui_url: http://localhost:4455/recovery
identity:
schemas:
- id: default
url: file://test/e2e/profiles/verification/identity.traits.schema.json
secrets:
cipher:
- secret-thirty-two-character-long

View File

@@ -0,0 +1,36 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
}
},
"verification": {
"via": "email"
}
}
}
},
"required": [
"email"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,58 @@
selfservice:
flows:
settings:
ui_url: http://localhost:4455/settings
privileged_session_max_age: 5m
logout:
after:
default_browser_return_url: http://localhost:4455/login
registration:
enable_legacy_one_step: true
ui_url: http://localhost:4455/registration
after:
password:
hooks:
- hook: session
- hook: web_hook
config:
url: http://127.0.0.1:4459/webhook
method: POST
body: file://test/e2e/profiles/webhooks/webhook_body.jsonnet
can_interrupt: true
auth:
type: api_key
config:
name: X-Authorize-Request
value: "1"
in: header
login:
ui_url: http://localhost:4455/login
after:
password:
hooks:
- hook: web_hook
config:
url: http://127.0.0.1:4459/webhook
method: POST
body: file://test/e2e/profiles/webhooks/webhook_body.jsonnet
can_interrupt: true
auth:
type: api_key
config:
name: X-Authorize-Request
value: "1"
in: header
error:
ui_url: http://localhost:4455/error
verification:
ui_url: http://localhost:4455/verify
recovery:
ui_url: http://localhost:4455/recovery
identity:
schemas:
- id: default
url: file://test/e2e/profiles/webhooks/identity.traits.schema.json

View File

@@ -0,0 +1,42 @@
{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Your E-Mail",
"minLength": 3,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
}
},
"website": {
"title": "Your website",
"type": "string",
"format": "uri",
"minLength": 10
},
"required": [
"email"
],
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,8 @@
function(ctx) {
identity_id: if std.objectHas(ctx, "identity") then ctx.identity.id else null,
email: if std.objectHas(ctx, "identity") then ctx.identity.traits.email else null,
flow_id: ctx.flow.id,
flow_type: ctx.flow.type,
identity: if std.objectHas(ctx, "identity") then ctx.identity else null,
ctx: ctx
}