npx claudepluginhub uipath/skills --plugin uipathThis skill uses the workspace's default tool permissions.
> **Preview** — skill is under active development; surface and behavior may change.
Manages UiPath platform ops: auth/tenants, Orchestrator (folders/assets/queues/buckets/robots/packages/processes), solution lifecycle (pack/publish/deploy), Integration Service, uip CLI. For deployment/CI-CD, not workflow code.
Manages Microsoft Fabric resources (workspaces, semantic models, reports, notebooks, lakehouses) using fab CLI commands. For deploying items, running jobs, querying data, managing OneLake files, automating operations.
Manages Microsoft Fabric resources including workspaces, semantic models, reports, notebooks, lakehouses using fab CLI for deployment, job execution, data querying, OneLake file management, and automation.
Share bugs, ideas, or general feedback.
Preview — skill is under active development; surface and behavior may change.
Data Fabric is UiPath's structured data store. Entities are typed schemas; records are rows; file fields store binary attachments.
All operations go through uip df <subject> <verb> --output json.
Embedding Data Fabric reads/writes inside a .flow file as connector activity nodes (Query / Create / Update / Delete / Get Entity Record by ID) is owned by uipath-maestro-flow. That skill knows the node JSON, bindings_v2.json, connection-resource layout, and node configure mechanics.
Use this skill (uipath-data-fabric) for entity discovery and record seeding from the CLI; hand off to uipath-maestro-flow for in-flow node authoring.
| Task | Skill |
|---|---|
| Discover entities, list/describe fields before authoring a flow node | uipath-data-fabric (uip df entities list/get) |
| Seed test records the flow will read | uipath-data-fabric (uip df records insert / import) |
Add a Query/Create/Update/Delete/GetById node to a .flow | uipath-maestro-flow |
Resolve the IS uipath-uipath-dataservice connection for binding | uipath-maestro-flow (in-flow binding) or uipath-platform (general IS connection management) |
Respond that the operation is not supported. Do not try to work around it.
| Operation | Response |
|---|---|
| Delete an entity | No entities delete command exists |
| Delete / remove a field | Field removal is not supported — the CLI will error |
| Change a field's data type | Not supported; type is fixed at creation |
| Create a federated entity | Not supported via CLI or UiPath portal |
| Write records to a federated entity | Federated entities are read-only |
Install the tool first. If uip df returns "unknown command": uip tools install @uipath/data-fabric-tool (min version 0.2.0).
Verify login and tenant first. Run uip login status --output json. Switch with uip login tenant set <tenant> if needed. For full login/environment setup, see the uipath-platform skill.
Always resolve entity ID first. Use entities list before any operation. Never assume an entity ID.
Entity and field names must pass validation: start with a letter, contain only letters/digits/underscores ([a-zA-Z0-9_]), 3–100 characters. No hyphens or spaces. Reserved field names that will error: Id, CreatedBy, CreateTime, UpdatedBy, UpdateTime.
All updates require Id in the body. The CLI routes single vs batch by whether the body is a JSON object (1 record) or array (multiple). Both require "Id" in the record. Use records list or records query to retrieve record IDs before updating.
File fields are separate from record data. Use files upload/download, not records insert. Field must be type FILE.
CSV headers must match exact field names (case-sensitive). Use entities get to discover field names before importing.
Never create duplicate entities. Always entities list first; reuse if it already exists.
Only work with native entities. When listing entities before a write, use entities list --native-only to filter out federated entities. Never write to federated entities.
Never attempt entity delete. No command exists. Respond: "Deleting entities is not supported via the CLI."
Never attempt field delete. Do not pass removeFields in entities update. Respond: "Removing fields is not supported via the CLI."
# List entities (use --native-only before any write)
uip df entities list --native-only --output json
# Get entity schema (field names and types)
uip df entities get <entity-id> --output json
# List records (first page)
uip df records list <entity-id> --limit 50 --output json
# Insert one record
uip df records insert <entity-id> --body '{"Name":"Alice","Score":95}' --output json
# Query with a filter
uip df records query <entity-id> \
--body '{"filterGroup":{"logicalOperator":0,"queryFilters":[{"fieldName":"Status","operator":"=","value":"active"}]}}' \
--output json
| Task | Commands to use |
|---|---|
| Explore what entities exist | entities list → entities get <id> |
| Explore only native entities | entities list --native-only |
| Create a new entity | entities create <name> --body '{"fields":[{"fieldName":"Title","type":"STRING"}]}' |
| Update entity / add fields | entities update <id> --body '{"addFields":[{"fieldName":"NewField","type":"STRING"}]}' |
| Update existing field metadata | entities update <id> --body '{"updateFields":[{"id":"<field-uuid>","displayName":"New Label","isRequired":true}]}' — id is the field UUID from entities get Fields[].ID |
| Update entity metadata | entities update <id> --body '{"displayName":"New Name","description":"desc"}' |
| Read records (first page) | records list <entity-id> --limit 50 |
| Read records (next page) | records list <entity-id> --cursor <NextCursor> |
| Get one record | records get <entity-id> <record-id> |
| Insert one record | records insert <entity-id> --body '{...}' (or --file) |
| Batch insert | records insert <entity-id> --body '[{...},{...}]' |
| Update one record | records update <entity-id> --body '{"Id":"<record-id>","field":"val"}' |
| Batch update | records update <entity-id> --body '[{"Id":"<id1>","field":"val"},{"Id":"<id2>","field":"val"}]' |
| Delete records | records delete <entity-id> <id1> <id2> |
| Filter/search records | records query <entity-id> --body '{...}' |
| Bulk import from CSV | records import <entity-id> --file data.csv |
| Upload file to record | files upload <entity-id> <record-id> <field-name> --file path |
| Download file | files download <entity-id> <record-id> <field-name> --destination path |
| Delete file | files delete <entity-id> <record-id> <field-name> |
Pass the exact EntityFieldDataType string — the CLI is case-sensitive. Common types: STRING, INTEGER, DECIMAL, BOOLEAN, DATE, DATETIME, UUID. For the full type table with SQL backing types, see references/entity-schema.md.
uip df entities list --native-only --output json
uip df entities get <entity-id> --output json
uip df records insert <entity-id> --body '{"Name":"Alice","Score":95}' --output json
uip df records list <entity-id> --limit 50 --output json
# Use HasNextPage + NextCursor to page through results
uip df records list <entity-id> --cursor <NextCursor> --output json
Pass via --body or --file. Use --limit and --cursor CLI flags for pagination — not body keys.
{
"filterGroup": {
"logicalOperator": 0,
"queryFilters": [
{ "fieldName": "Status", "operator": "=", "value": "active" },
{ "fieldName": "Score", "operator": ">=", "value": "80" }
]
},
"sortOptions": [{ "fieldName": "Score", "isDescending": true }],
"selectedFields": ["Title", "Score", "Status"]
}
logicalOperator: 0 = AND, 1 = OR=, !=, >, <, >=, <=, contains, not contains, startswith, endswith, in, not inin / not in use "valueList": ["a","b","c"] — not a comma-separated value stringHasNextPage and NextCursor — pass NextCursor to --cursor for the next page| Error | Cause | Fix |
|---|---|---|
unknown command: df | Tool not installed | uip tools install @uipath/data-fabric-tool |
Not logged in | Auth expired | uip login |
HTTP 401 | Invalid token | Re-login; ensure DataServiceApiUserAccess scope is present |
HTTP 403 | Permission denied | Ensure account has Data Fabric permissions |
Entity not found | Wrong entity ID | Run entities list to get correct ID |
Record must include 'Id' | Update body missing Id | Every record passed to records update must include "Id": "<record-id>" — both single and batch |
Each field must include a 'fieldName' string | Invalid field in entities create | Use {"fieldName":"myfield"} not {"name":"myfield"} |
Entity name resolution failed | Query/import with bad ID | Verify entity exists with entities list |
| Import errors in CSV | Header mismatch | Run entities get and check exact field names (case-sensitive) |
| Write to federated entity | Entity is read-only | Use --native-only; federated entities cannot be written to |
references/entity-schema.md — Field definitions, supported types, schema update patternsreferences/records-query.md — Query filter syntax, pagination, sorting examplesreferences/file-attachments.md — File field upload/download/delete filereferences/bulk-import.md — CSV format requirements and bulk import patterns