nexus-5-auth/nexus-5-auth-kratos/config/identity.v2.schema.json
2026-01-26 11:15:52 -05:00

82 lines
2.1 KiB
JSON

{
"$id": "https://schemas.nexus.local/nexus-identity.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Nexus Profile",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
"maxLength": 320,
"ory.sh/kratos": {
"credentials": {
"password": {
"identifier": true
},
"webauthn": {
"identifier": true
},
"totp": {
"account_name": true
}
},
"verification": {
"via": "email"
},
"recovery": {
"via": "email"
}
}
},
"name": {
"type": "object",
"properties": {
"first": {
"type": "string",
"title": "First Name",
"minLength": 1,
"maxLength": 100
},
"last": {
"type": "string",
"title": "Last Name",
"minLength": 1,
"maxLength": 100
}
},
"required": ["first", "last"]
},
"phone": {
"type": "string",
"title": "Phone Number",
"pattern": "^[0-9\\s+()-]*$",
"maxLength": 30
},
"profile_type": {
"type": "string",
"title": "Profile Type",
"enum": ["team", "customer"],
"description": "Determines whether this is a team member or customer profile"
}
},
"required": ["email", "name", "profile_type"],
"additionalProperties": false
},
"metadata_public": {
"type": "object",
"properties": {
"django_profile_id": {
"type": "string",
"title": "Nexus Profile ID",
"description": "UUID of the linked Django profile (TeamProfile or CustomerProfile)"
}
}
}
}
}