Docs

Repositories

Context Reference - Repositories Access database tables through repositories. See Repository Methods for complete details. Accessing Repositories // Access repository by table name const productsRepo = $ctx.$repos.products; const usersRepo = $ctx.$repos.enfyra_user; // Access mai

Context Reference - Repositories

Access database tables through repositories. See Repository Methods for complete details.

Accessing Repositories

// Access repository by table name
const productsRepo = $ctx.$repos.products;
const usersRepo = $ctx.$repos.enfyra_user;

// Access main table repository
const mainRepo = $ctx.$repos.main;

// Field permissions: main + explicit secure namespace
// - `$repos.main` — main route table, field permissions enforced
// - `$repos.secure.<tableName>` — same enforcement for any table name
// - `$repos.<tableName>` — same data access without field-permission enforcement (use `secure` when rules must apply)

// Check if repository exists
if ($ctx.$repos.products) {
  const result = await $ctx.$repos.products.find({});
}

Repository Methods

Each repository provides record methods and a separate aggregate() method for computed results:

// Find records
const result = await $ctx.$repos.products.find({
  filter: { category: { _eq: 'electronics' } },
  fields: 'id,name,price',
  limit: 10,
  sort: '-createdAt'
});

// Create record
const createResult = await $ctx.$repos.products.create({
  data: {
    name: 'New Product',
    price: 99.99
  }
});

// Update record
const updateResult = await $ctx.$repos.products.update({
  id: 123,
  data: { price: 89.99 }
});

// Delete record
const deleteResult = await $ctx.$repos.products.delete({
  id: 123
});

// Compute a filtered summary without loading raw records
const summaryResult = await $ctx.$repos.products.aggregate({
  filter: { isActive: { _eq: true } },
  measures: { products: { count: 'id' } }
});

Important: Record methods return { data: [...], meta: {...} }. aggregate() returns computed rows under data and does not return meta.aggregate.

See Repository Methods Guide for complete documentation.

Next Steps