Skip to main content
The entities module lets you work with your app’s data. Each entity type in your app has methods for creating, reading, updating, and deleting records. You access entity methods through your entity name: base44.entities.YourEntityName.methodName(). For example, if you have a Task entity, you use base44.entities.Task.list() to get a list of tasks.

Permissions

Data access is controlled by the client’s authentication mode and your app’s permission rules. You can configure the permissions for each entity in your app’s security settings. Learn more about changing data permissions.
  • Anonymous users: Can only access entities marked as public.
  • Authenticated users: Can access entities and records they have permission to view or modify based on your app’s configured access rules.
  • Service role: Can access all entities and records available to the app’s admin.
In backend code, you can use the service role to access data with admin permissions.

Create records

Use create() to add new records to an entity:
const newTask = await base44.entities.Task.create({
  title: "Complete documentation",
  status: "pending",
  dueDate: "2024-12-31",
});

Read records

Retrieve data using get() for a single record, list() for all records, or filter() for records matching specific criteria. Use get() with a record ID to retrieve a specific record:
const task = await base44.entities.Task.get(taskId);
Use list() to retrieve all records. The method supports sorting, pagination, and field selection:
const tasks = await base44.entities.Task.list();
Use filter() to find records that match specific criteria:
const pendingTasks = await base44.entities.Task.filter({
  status: "pending",
});

Update records

Use update() to modify an existing record:
await base44.entities.Task.update(taskId, {
  status: "completed",
});

Delete records

Use delete() to remove a record:
await base44.entities.Task.delete(taskId);

Service role data access

By default, data access is scoped to the current user’s permissions. With service role authentication, you can access data with admin-level permissions. This means you can access data that the admin role in your app has access to. Use base44.asServiceRole.entities to access data with admin permissions:
// User-level access (limited to current user's permissions)
const myTasks = await base44.entities.Task.list();

// Service role access (admin-level permissions)
const allTasks = await base44.asServiceRole.entities.Task.list();

User entity

Every Base44 app includes a built-in User entity that stores user account information. This entity has special security rules:
  • Regular users can only read and update their own user record
  • With service role authentication, you can read, update, and delete any user
  • You cannot create users through the entities module - use the auth module instead
const allUsers = await base44.asServiceRole.entities.User.list();

See more