Data Properties
A Data Property represents a data field in your model. Most properties belong directly to an Entity (such as a product’s price or a user’s email).
Additionally, when you create a relationship tagged with an M:N semantic module (such as OrganizationMembers), the platform automatically provisions standard Relationship Edge Properties (such as member role or status).
When configuring properties in the Domain Modeler:
- Entity Properties: You create and configure properties directly on an entity, specifying their base data type, validations, and semantic tags.
- Relationship Edge Properties: Edge properties are provisioned automatically by semantic modules. In the UI, you toggle which edge properties to enable for your API and customize settings like display names or allowed enum values, while core attributes (like data types) are managed by the system.
Base Data Types
Section titled “Base Data Types”Every property must have a primitive data type selected. The Serverless Engine maps these types to optimized PostgreSQL database types:
| Data Modeler Type | PostgreSQL Data Type | Description |
|---|---|---|
| String | VARCHAR(255) / TEXT | Alphanumeric text. Used for names, descriptions, and codes. Can also define file semantics. |
| Number | INTEGER / NUMERIC | Whole numbers or floating-point decimals. |
| Boolean | BOOLEAN | True or False values. |
| Date | DATE | A calendar date (year, month, day). |
| Time | TIME | A time of day (hour, minute, second). |
| DateTime | TIMESTAMP WITH TIME ZONE | A specific timestamp with timezone support. |
| Binary | JSONB (metadata) | File storage metadata. Must define ImageURL or FileURL semantics to be supported. |
File and Media Properties
Section titled “File and Media Properties”To handle file uploads, attachments, or images in your Data Domain, you can configure properties using either of these types:
- Binary Type: A dedicated property type for files. Important: Any property configured as
Binarymust have either theFileURLorImageURLsemantic module attached, or the platform will throw a validation error. Binary properties do not support format options. - String Type: Can also be used to store file attachments by applying the
FileURLorImageURLsemantic modules on top of it.
At the database level, both options store a structured JSON metadata block representing the uploaded file in a cloud storage bucket. When queried through the API, clients receive a secure temporary signed download link (rather than raw bytes).
Refer to the File Uploads Guide for a complete overview of the upload lifecycle and configurations.
Property Attributes
Section titled “Property Attributes”In the Domain Modeler UI, a property’s basic behavior and indexing can be configured by toggling the following checkbox attributes:
- Required: If checked, the property cannot be null. API requests must provide a value on creation.
- Multiple: If checked, the property represents an array or list of values instead of a single value.
- Primary Key: If checked, this property acts as the primary key for the entity.
- Unique: If checked, a database-level unique index is created on this column to prevent duplicate values (e.g., usernames).
- Indexed: If checked, a standard B-Tree database index is generated to optimize query lookups on this field.
- Search Indexed: If checked, a specialized full-text search index (e.g., GIN or
pg_trgmin PostgreSQL) is created, allowing clients to query this field using search actions. - Read Only: If checked, clients cannot modify this property; it is excluded from update payloads (meaning it is immutable after creation). Depending on configuration, it may still allow input during record creation. Note that certain semantic modules automatically enforce read-only or immutable behaviors:
- Create-Only: Semantics like
CreatedByandCreatedTimestampare set on creation (either by the client or the system) and become immutable afterwards. - System-Managed: Semantics like
UpdatedByandUpdatedTimestampare automatically managed by the Serverless Engine on writes and updates, and cannot be manually overridden by client requests.
- Create-Only: Semantics like
- Write Only: If checked, clients can write this property but it will never be returned in read responses (ideal for passwords).
- Deprecated: If checked, flags the field as deprecated in generated API specifications.
Schema Constraints
Section titled “Schema Constraints”You can define standard validations and formats in the property’s settings panel:
- Minimum / Maximum (
minimum/maximum): Numeric inputs to define bounds for numbers, dates, times, or datetimes. - Exclusive Minimum / Maximum (
exclusiveMinimum/exclusiveMaximum): Checkboxes that make the corresponding minimum or maximum bounds exclusive (e.g.,value > minimuminstead ofvalue >= minimum). - Multiple Of (
multipleOf): Restricts values to multiples of a specified number (e.g., entering2allows only even numbers). - Enum (
enum): A list input to restrict allowed property values to a specific set of strings. - Default Value (
defaultValue): Input to specify a value that auto-populates when the property is omitted during record creation.
- Pattern (
pattern): Text input to enforce a regular expression match on string properties (e.g., ZIP code regex).
Web Format Bindings
Section titled “Web Format Bindings”To translate the data model schema into external API formats (RAML and OpenAPI), configure the Web Bindings section on the property settings panel:
- Format (
format): A dropdown to specify precision formats. Currently, format constraints only support numerical types (such asfloat,double,int32, orint64), though support for more data formats may be added in the future. - Exposed Name (
name): Text input to override the property name exposed in the generated web schema. - Accepted File Types (
fileTypes): Input to specify a list of accepted file MIME types (only valid for file/image properties). - Hidden (
hidden): A checkbox to hide the property from the generated OpenAPI specification.
Numeric Precision Formats Reference
Section titled “Numeric Precision Formats Reference”When choosing a Format for a Number property in the Web Bindings panel, use this reference:
- Whole Numbers (Integers):
int32(Standard Integer): For counting values up to 2 billion (e.g., user age, quantity in stock, total page views).int64(Large Integer): For numbers that can exceed 2 billion (e.g., millisecond timestamps, global transaction IDs).
- Decimals (Floating-point):
float(Standard Precision): For decimals where minor rounding is acceptable (e.g., temperature72.5°F, weight150.4 lbs, percentages15.5%).double(Double Precision): For high-precision decimals where rounding errors cause major issues (e.g., GPS coordinates37.774929, -122.419416, exact money/split-payment calculations).
Semantic Modules (Data Semantics)
Section titled “Semantic Modules (Data Semantics)”Rather than writing custom code to validate, encrypt, or process standard fields, you can attach Semantic Modules to your properties.
When you apply a semantic module, the platform automatically intercepts read/write requests at the runtime layer to apply logic:
Password: Automatically salts and hashes the value on write, and completely hides the field from all API reads to prevent credential leaks.Email: Enforces strict RFC-compliant email syntax checking on the API gateway and normalizes inputs to lowercase.CreatedTimestamp/UpdatedTimestamp: Auto-populates dates and times when records are created or edited without client input.