Getting ResourceMeta
Every resource needs metadata so the UI knows how to render it. This information is provided by ResourceMeta, which describes the structure and behavior of a resource — its fields, labels, properties, relations, permissions, default ordering, and other details necessary for correct display. ResourceMeta is also used for validation, OData configuration, permission checks, and custom CRUD handlers.
On frontend
To get single ResourceMeta use fetchResourceMeta function:
const resourceMeta = await fetchResourceMeta("Student");
console.log(resourceMeta.resourceName); // Student
console.log(resourceMeta.id); // d4507481-8b33-46e7-9c2e-606daab170cc
console.log(resourceMeta.properties["name"].isDisplayable); // true
console.log(resourceMeta.properties["name"].required); // false
console.log(resourceMeta.display.pluralName); // Students
To get multiple ResourceMeta use fetchResourceMetas function:
const resourceMetas = await fetchResourceMetas(["Student", "Teacher"]);
console.log(resourceMetas[0].resourceName); // Student
console.log(resourceMetas[0].id); // d4507481-8b33-46e7-9c2e-606daab170cc
console.log(resourceMetas[0].properties["name"].isDisplayable); // true
console.log(resourceMetas[0].properties["name"].required); // false
console.log(resourceMetas[0].display.pluralName); // Students
console.log(resourceMetas[1].resourceName); // Teacher
console.log(resourceMetas[1].id); // 783cbb56-0ee2-4d78-b7f1-2e139c8738d3
console.log(resourceMetas[1].properties["name"].isDisplayable); // true
console.log(resourceMetas[1].properties["name"].required); // false
console.log(resourceMetas[1].display.pluralName); // Teachers
On backend
Use getResourceMeta to get runtime resource metadata:
const resourceMeta = await getResourceMeta("Student");
Customize your ResourceList
The ResourceList component can be customized through the ResourceListConfig interface. This allows you to adjust behavior, appearance, and add custom content.
ResourceListConfig Properties
filtersTableInBetweenContainer
Array of React components that will render between the filters and the table. Useful for inserting custom content in this specific location.
oDataConfig
ODataConfig allows you to configure sorting, filtering, selecting fields, and other options for your ResourceList, affecting how it fetches data from the API.
tableConfig
Configuration for the Table component inside the ResourceList.
Register resource list configs once at app startup (for example in app/layout.tsx):
import { setResourceListConfigs } from "your-app/config/resource-list-configs";
Call setResourceListConfigs during app initialization:
setResourceListConfigs();
Use ResourceList by resource name; the component will resolve its config from the global registry:
<ResourceList resourceName="Student" />
Customize EditResource
EditResource can be customized through the EditResourceConfig. It allows you to control the visibility of buttons, title, resource image, and also define custom fields or per-property configuration.
Register edit-resource configs once at app startup (for example in app/layout.tsx):
import { setEditResourceConfigs } from "your-app/config/edit-resource-configs";
Call setEditResourceConfigs during app initialization:
setEditResourceConfigs();
Use EditResource by resource name; the component will resolve its config from the global registry:
export function StudentEditPage() {
return <EditResource resourceName="Student" />;
}