Data class overview
Casewhere does not impose a fixed data model. As a configurator, you define how data is stored by creating data classes and specifying the relationships between them. When creating a data class, you specify:
- Name — the data entity (e.g., Employee, JobApplication, Invoice)
- Relationships — how the entity relates to others via foreign keys
- Attributes — the fields that describe your entity, including:
- Data type (String, Integer, Decimal, DateTime, etc.) — see all supported types
- Required or optional
- Encrypted (for sensitive data)
- Searchable (for free-text search)
- Computed or auto-increment
- Default value
All data objects created from a data class share the same structure. For example, consider the data class below:

In this section
| Topic | Description |
|---|---|
| Data class management | Create and configure data classes |
| Data object | Work with data objects — CRUD operations, IDataApi reference, FilterBuilder |
| Audit logging | Track and audit data changes |
| Data validation | Validate data before persistence |
| Computed attribute | Auto-computed and auto-increment fields |
| Attribute default value | Set default values using rules |
| Free-text search | Configure search indexing |
| Data diagram | Export data classes to Mermaid diagrams |
| Indexes | Optimize MongoDB queries |
| Geospatial | Geospatial queries and indexes |