ワンクリックで
drax-crud-endpoints
Documentation of the capabilities and endpoints provided by the Drax CRUD system for reuse in tasks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Documentation of the capabilities and endpoints provided by the Drax CRUD system for reuse in tasks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use this skill when working with the Drax Vue CRUD composable useCrud, its Pinia store useCrudStore, or CRUD UI components that depend on them. It explains the public API, state, filters, pagination, navigation, import/export, validation errors, and provider integration patterns in packages/crud/crud-vue/src/composables/UseCrud.ts and stores/UseCrudStore.ts.
Explain and apply the Drax media backend module for file management. Use when a project needs to upload, download, delete, register, query, or delegate file handling to @drax/media-back, especially MediaService, FileService, FileServiceFactory, MediaRoutes, FileRoutes, MediaPermissions, or FilePermissions.
Usa esta skill cuando necesites personalizar o extender de forma centralizada los botones reutilizables de @drax/crud-vue, especialmente iconos, variant, rounded y color de los componentes en packages/crud/crud-vue/src/components/buttons.
Explica como funciona y como usar BuildContextTool en Drax AI para construir tools CRUD con contexto de usuario/tenant, filtros automaticos, setters de ownership, asserts de lectura/escritura y permisos All/ViewAll/UpdateAll/DeleteAll. Usar cuando el usuario pida documentacion, ejemplos o implementaciones de BuildContextTool, BuilderTool con contexto, tools AI para entidades, fromPromptContext, tenantFilter, userFilter, tenantSetter, userSetter, tenantAssert o userAssert.
Explica como usar AiProviderFactory e IAIProvider en Drax para ejecutar prompts completos de forma agnostica al proveedor, incluyendo systemPrompt, userInput, userContent, userImages, history, memory, knowledgeBase, tools, toolMaxIterations, jsonSchema, zodSchema, model y metadatos de operacion. Usar cuando el usuario pida ejemplos, documentacion o implementaciones basadas en AiProviderFactory, IAIProvider, tools de AI, AIGenericController, AICrudController o AiTestController.
Guia para crear o modificar entidades CRUD backend en Drax usando AbstractService, AbstractFastifyController, filtros IDraxFieldFilter, repositorios, schemas, permissions, factories y routes. Usar cuando el usuario pida generar CRUDs, agregar endpoints, acciones, filtros, imports, exports, groupBy, hooks, service methods o controllers backend; priorizar siempre los metodos existentes de AbstractService y AbstractFastifyController antes de crear metodos nuevos.
| name | drax-crud-endpoints |
| description | Documentation of the capabilities and endpoints provided by the Drax CRUD system for reuse in tasks. |
This skill describes the out-of-the-box endpoints and features provided by the Drax CRUD system. When working on tasks that involve an existing entity (e.g., building a dashboard, custom view, or report), YOU MUST REUSE these existing endpoints instead of creating new ones whenever possible.
Every entity in the system that extends AbstractFastifyController (Backend) and AbstractCrudRestProvider (Frontend) automatically inherits a standard set of powerful API endpoints.
Base URL Pattern: /api/<entity-plural> (e.g., /api/countries, /api/users)
Use this for: Creating charts, stats, dashboards, or grouping data by specific fields (dates, categories).
GET /group-byprovider.groupBy({ fields, filters, dateFormat })fields (required): Comma-separated list of fields to group by.
Date fields.Reference fields (will automatically populate the reference).dateFormat (optional): Granularity for date fields (year, month, day, hour, minute, second). Default: day.filters (optional): Standard filter format (see below).// Group users by creation month
const stats = await UserProvider.instance.groupBy({
fields: ['createdAt'],
dateFormat: 'month'
});
// Result: [{ createdAt: '2023-01-01...', count: 10 }, ...]
Use this for: Fetching lists of items with filtering, sorting, and limiting. Use this when you don't need pagination metadata.
GET /findprovider.find({ limit, orderBy, order, search, filters })limit (optional): Max number of items.orderBy (optional): Field to sort by.order (optional): asc or desc.search (optional): Text search string targeting configured search fields.filters (optional): Pipe-separated filters (see Syntax).?filters=field;operator;value|field2;eq;val2Use this for: displaying paginated tables (DataTables).
GET /provider.paginate({ page, limit, orderBy, order, search, filters }){ items: T[], total: number, page: number, limit: number }Use this for: Autocomplete inputs or quick search.
GET /searchprovider.search(searchText)search (required): The text to search for._searchFields.Use this for: Getting a single item matching specific criteria.
GET /find-oneprovider.findOne({ search, filters })Use this for: Downloading data as CSV or JSON.
GET /exportprovider.export({ format: 'CSV' | 'JSON', ... }){ url: string, fileName: string }Standard REST operations for item management.
GET /:id -> provider.findById(id)POST / -> provider.create(data)PUT /:id -> provider.update(id, data)DELETE /:id -> provider.delete(id)The system uses a standardized string format for filtering in query parameters.
Format: field;operator;value
Multiple Filters: Join with | (e.g., status;eq;active|age;gt;18)
| Operator | Description | Example |
|---|---|---|
eq | Equals | status;eq;active |
ne | Not equals | type;ne;guest |
gt | Greater than | score;gt;10 |
lt | Less than | price;lt;100 |
gte | Greater/Equal | age;gte;18 |
lte | Less/Equal | qty;lte;5 |
in | In list | role;in;admin,user |
nin | Not in list | tag;nin;archive,deleted |
regex | Regex match | name;regex;^John |
like | Partial match | title;like;project |
When implementing custom UI (like a Dashboard):
import CountryProvider from "../../providers/CountryProvider";
// In a Vue component script
const data = await CountryProvider.instance.find({ limit: 5, orderBy: 'createdAt', order: 'desc' });
axios or fetch calls to these endpoints. Use the Provider.