TenantPasswordPolicy

Password security policy and complexity requirements for a tenant workspace, defining rules that govern password creation, validation, expiration, and lockout behavior. This entity enables tenant-specific password security standards, allowing different organizations to enforce their own security requirements ranging from basic (8 characters) to stringent (16+ characters with complexity). It supports password complexity rules (uppercase, lowercase, numbers, special characters), password history to prevent reuse, expiration policies for forced rotation, account lockout rules after failed attempts, and password strength validation. The entity serves as the enforcement layer for password security compliance across industries with different regulatory requirements (HIPAA, PCI-DSS, SOC2) and enables tenants to balance security with user experience based on their risk profile.

15 properties
Schema

Properties

PropertyTypeModeDescriptionRequired
tenantTenant
stored

Reference to the Tenant this password policy applies to

Required
minLengthnumber
stored

Minimum password length

Example: 12

Required
maxLengthnumber
stored

Maximum password length (null for no limit)

Example: 128

Optional
requireUppercaseboolean
stored

Whether password must contain at least one uppercase letter

Example: true

Required
requireLowercaseboolean
stored

Whether password must contain at least one lowercase letter

Example: true

Required
requireNumbersboolean
stored

Whether password must contain at least one numeric digit

Example: true

Required
requireSpecialCharsboolean
stored

Whether password must contain at least one special character

Example: true

Required
specialCharsSetstring
stored

Set of allowed special characters

Example: "!@#$%^&*()_+-=[]{}|;:,.<>?"

Optional
expirationDaysnumber
stored

Number of days before password expires (0 for no expiration)

Example: 90

Required
preventReuseLastnumber
stored

Number of previous passwords to prevent reuse (0 for no history check)

Example: 5

Required
maxFailedAttemptsnumber
stored

Maximum number of failed login attempts before account lockout

Example: 5

Required
lockoutDurationMinutesnumber
stored

Duration in minutes for account lockout after max failed attempts

Example: 30

Required
minStrengthScorenumber
stored

Minimum password strength score required (0-4, using zxcvbn or similar)

Example: 3

Optional
allowCommonPasswordsboolean
stored

Whether to allow commonly used passwords (password123, etc.)

Required
metadatajson
stored

Additional policy metadata and custom rules

Optional

Examples

Example 1

{
  "@type": "TenantPasswordPolicy",
  "tenant": {
    "@type": "Tenant",
    "slug": "acme-corp",
    "name": "ACME Corporation"
  },
  "minLength": 12,
  "maxLength": 128,
  "requireUppercase": true,
  "requireLowercase": true,
  "requireNumbers": true,
  "requireSpecialChars": true,
  "expirationDays": 90,
  "preventReuseLast": 5,
  "maxFailedAttempts": 5,
  "lockoutDurationMinutes": 30,
  "minStrengthScore": 3,
  "allowCommonPasswords": false
}

Example 2

{
  "@type": "TenantPasswordPolicy",
  "tenant": {
    "@type": "Tenant",
    "slug": "techstart",
    "name": "TechStart Inc"
  },
  "minLength": 8,
  "maxLength": 128,
  "requireUppercase": true,
  "requireLowercase": true,
  "requireNumbers": true,
  "requireSpecialChars": false,
  "expirationDays": 0,
  "preventReuseLast": 3,
  "maxFailedAttempts": 3,
  "lockoutDurationMinutes": 15,
  "minStrengthScore": 2,
  "allowCommonPasswords": false
}