Skip to main content
You’re viewing developer documentation
This documentation is for developers working with the Base44 developer platform. For information about managing your app data using the app editor, see Managing app data.
Entities are defined using a JSON Schema that describes the data structure and validation rules.

Basic schema structure

Entity schemas are defined in JSON files in your project’s entities directory. By default, this is base44/entities/, but you can customize the path in your project configuration. The filename determines the entity name. For example, Task.json creates a Task entity. Here’s an entity schema template:

Built-in fields

Every entity record automatically includes the following fields. Don’t define fields with these names in your schema. Internal fields aren’t returned in API responses but can be referenced in security rules.

Schema fields

string
String identifier for the entity.
string
required
Must be "object".
string
User-friendly display name.
string
Description of what the entity represents.
object
required
Object containing your field definitions. Each field has a type and optional validation rules.

Field types

Entities support various field types to define different kinds of data you can store: string, integer, number, boolean, array, and object. Each field inside properties requires a type. Based on the type, you can add validation options.

String fields

String fields support these options:
  • minLength / maxLength: Control minimum and maximum character count.
  • pattern: Regular expression for custom validation.
  • format: Predefined formats. Supported values:
    • "date"
    • "date-time"
    • "time"
    • "email"
    • "uri"
    • "hostname"
    • "ipv4"
    • "ipv6"
    • "uuid"
  • enum: Restrict to specific allowed values. Define as an array: ["value1", "value2", "value3"].
  • default: Default value if none provided.

Integer fields

Integer fields support these options:
  • minimum / maximum: Set inclusive lower/upper bounds.
  • default: Default value if none provided.

Number fields

Number fields support these options:
  • minimum / maximum: Set inclusive lower/upper bounds.
  • default: Default value if none provided.

Boolean fields

Boolean fields support these options:
  • default: Default value if none provided.

Array fields

Array fields support these options:
  • items: Define the type/schema for array elements.
  • default: Default array value if none provided.

Object fields

Object fields support these options:
  • properties: Define the fields within the object.
  • required: List of required property names.

Required fields

Specify which fields must be provided:

Complete example

Here’s a complete entity schema:

Deploying entities

After defining your entity schema, deploy it to Base44 using entities push. Entities are also deployed automatically when you run the deploy command to deploy your entire project. Once deployed, you can interact with your entities using the SDK’s entities module. The entity name in your schema must match exactly how you access it in the SDK, including capitalization. For example, if your schema has "name": "Task", you must access it as base44.entities.Task.list(). Deployed entity schemas can be viewed in the dashboard in the Data section.

See also

  • User Schema: Special built-in entity for user authentication
  • Security: Configure row-level security rules for entities
  • Project Structure: How entity schemas fit into your project