Olympus Docs
ReferenceSchemas

CIAM Company Identity Schema

JSON Schema reference for the Organizational User identity model

Source: platform/dev/ciam-kratos/company-identity.schema.json

Schema $id: https://example.com/schemas/organizational-user.schema.json

Fields

FieldTypeFormatRequiredOry bindingsDescription
traitsobject-no-,
traits.emailstringemailyestotp account_name, verifiable (email), recovery (email)Email Address
traits.employee_idstring-yespassword identifierEmployee ID
traits.first_namestring-yes-First Name
traits.last_namestring-yes-Last Name
traits.departmentstring-yes-Department
traits.rolestring-yes-Role
traits.statusstring-no-Status

Raw schema

{
  "$id": "https://example.com/schemas/organizational-user.schema.json",
  "title": "Organizational User",
  "type": "object",
  "properties": {
    "traits": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "title": "Email Address",
          "ory.sh/kratos": {
            "credentials": {
              "password": {
                "identifier": false
              },
              "webauthn": {
                "identifier": false
              },
              "totp": {
                "account_name": true
              }
            },
            "recovery": {
              "via": "email"
            },
            "verification": {
              "via": "email"
            }
          },
          "maxLength": 320
        },
        "employee_id": {
          "title": "Employee ID",
          "type": "string",
          "minLength": 1,
          "maxLength": 50,
          "pattern": "^[A-Z0-9-]+$",
          "ory.sh/kratos": {
            "credentials": {
              "password": {
                "identifier": true
              }
            }
          }
        },
        "first_name": {
          "title": "First Name",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "last_name": {
          "title": "Last Name",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "department": {
          "title": "Department",
          "type": "string",
          "enum": [
            "Engineering",
            "Product",
            "Marketing",
            "Sales",
            "Operations",
            "Finance",
            "HR"
          ]
        },
        "role": {
          "title": "Role",
          "type": "string",
          "enum": [
            "admin",
            "manager",
            "senior",
            "junior",
            "intern"
          ]
        },
        "status": {
          "title": "Status",
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "on_leave"
          ]
        }
      },
      "required": [
        "email",
        "employee_id",
        "first_name",
        "last_name",
        "department",
        "role"
      ],
      "additionalProperties": false
    }
  }
}

Generated from ../platform/dev/ciam-kratos/company-identity.schema.json at build time.

On this page