Validating With Profiles

Advanced constraint profiles for targeted validation scenarios

Constraint profiles (introduced in CBValidation 2.0) allow you to validate specific subsets of fields for different scenarios. This enables flexible validation workflows where different operations require different validation rules.

Overview

Instead of validating all constraints every time, profiles let you:

  • Validate only relevant fields for specific operations

  • Improve performance by skipping unnecessary validations

  • Create context-specific validation rules (registration vs. update vs. password change)

  • Support multi-step forms and wizards

Basic Profile Definition

Define profiles using the this.constraintProfiles struct in your object:

User.bx
class {
    property name="firstName" type="string";
    property name="lastName" type="string";
    property name="email" type="string";
    property name="password" type="string";
    property name="confirmPassword" type="string";

    this.constraints = {
        firstName: { required: true, size: "2..50" },
        lastName: { required: true, size: "2..50" },
        email: { required: true, type: "email" },
        password: { required: true, size: "8..50" },
        confirmPassword: { required: true, sameAs: "password" }
    };

    this.constraintProfiles = {
        registration: "firstName,lastName,email,password,confirmPassword",
        update: "firstName,lastName,email",
        passwordChange: "password,confirmPassword"
    };
}

Using Profiles

Every validation method accepts a profiles argument:

Complex Profile Scenarios

Multi-Step Registration Wizard

For complex forms split across multiple steps:

API Endpoint Profiles

Different API endpoints often need different validation rules:

API Integration Patterns

RESTful API Validation

Use profiles to match your API endpoints:

Role-Based Validation

Different user roles may have different validation requirements:

Performance Considerations

Profile Selection Strategy

Choose profiles wisely to optimize performance:

Caching Constraint Definitions

For high-performance scenarios, cache constraint lookups:

Profile Size Optimization

Keep profiles focused and avoid overlap:

Best Practices

1. Use Descriptive Profile Names

3. Document Profile Usage

4. Validate Profile Efficiency

Monitor which profiles are used most frequently and optimize accordingly:

See Also

Last updated

Was this helpful?