content_objects (array, required) - List of content objects to fetch
Content Management Types:
managed - Platform manages the content loading
custom - Custom content loading logic
Content Dependencies
Field-dependent content:
Array item dependencies:
Choices Configuration
Static Choices
Simple string choices:
Object choices:
Dynamic Choices
Empty choices for dynamic loading:
Schema Rules (Conditional Logic)
Basic Rules Structure
Condition Operators
equal - Exact match
not_equal - Not equal to
is_in - Value in array
is_not_in - Value not in array
is_empty - Field is empty
is_not_empty - Field has value
greater_than - Numeric comparison
less_than - Numeric comparison
Logic Combinators
and - All conditions must be true
or - Any condition must be true
Rule Effects
apply_as options:
merge - Merge with existing field configuration
fully_replace - Replace entire field configuration
Show/Hide Fields:
Hide Fields:
UI Layout Options
Global UI Options
Field Ordering:
Field-Level UI Options
Horizontal Layout:
Advanced Features
Action Handlers
Action handlers define what should happen when users interact with fields. They trigger specific behaviors when field values change.
load_schema
Purpose: Triggers a schema reload when the field value changes, allowing for dynamic updates to other fields based on the new value.
Basic Usage:
What happens when load_schema is triggered:
You change the value of the field country
A trigger sends an HTTP POST request to the module /schema endpoint with :
the full schema
the full form data
the full content objects
The module returns a new schema
The new schema is merged with the existing schema
The frontend updates the UI to reflect the new schema
Common Use Cases
Use Case 1: Cascading Dropdowns
Use Case 2: Conditional Field Display
Use Case 3: Dynamic Validation
Backend Implementation
When load_schema: true is triggered, your /content endpoint receives the updated form data:
Performance Considerations
Use Sparingly: Only add load_schema: true to fields that actually need to trigger updates
Optimize Backend: Ensure your /content endpoint responds quickly to avoid UI lag
Cache When Possible: Cache static data that doesn't change between requests
Batch Updates: If multiple fields need to trigger updates, consider grouping them
Best Practices
Clear User Feedback: Show loading indicators when schema is reloading
Preserve User Input: Ensure field values aren't lost during reload
Error Handling: Gracefully handle failures in content loading
Debouncing: Consider debouncing rapid field changes to avoid excessive requests
Debugging Tips
Check browser network tab to see /content requests when fields change
Verify that content_object_depends_on_fields references match your field IDs exactly
Test with browser console open to catch any JavaScript errors
Use simple test data first, then add complexity
Complete Field Example
Here's a comprehensive example showing most available options:
This specification covers all major aspects of module schema configuration. Refer to this document when building your schemas to understand all available options and their proper usage.