Best for
- Identity
- Authz
- OMS
UiPath/skills/skills/uipath-admin/SKILL.md
UiPath Admin via `uip admin` — Identity Server (users, groups, robot accounts, external OAuth2 apps, secrets), Authorization (custom roles, role assignments, permission catalog, effective-access via check-access PDP), OMS (org read/update, tenant lifecycle, service provisioning, regions, async operation polling), IP Restriction (allowlist, enforcement switch, bypass rules, lockout safety), Audit via `uip admin audit` — the organization/tenant audit trail: event sources, paginated event queries,
Decision brief
Administrative operations on UiPath via uip admin — Identity Server, Authorization, OMS, IP Restriction, Audit. Per-area workflows, command references, and procedures are in the linked files below — this file is the entry contract.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/UiPath/skills --skill "skills/uipath-admin"Inspect the Agent Skill "uipath-admin" from https://github.com/UiPath/skills/blob/33e76a6b8f19e29d6af48adb9799d602c196c3cb/skills/uipath-admin/SKILL.md at commit 33e76a6b8f19e29d6af48adb9799d602c196c3cb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
One row per common goal. Per-area workflows are in the reference files.
Activate on both explicit audit requests and natural-language investigation intent — users rarely say "audit events" by name.
Manage identity users — list, create, invite, update, delete
Manage custom roles — CRUD on Authorization service role definitions (scope shapes: Organization, TenantGlobal, Tenant, Project)
Inspect / update the current organization — uip admin organizations (read + update only; no CLI create/delete)
Permission review
The documentation asks the agent to read local files, directories, or repositories.
**Scope vocab differs across verbs.** `roles create --scope`: `Organization|TenantGlobal|Tenant|Project`. `roles assignments create --scope`: those + `Folder|App`. `roles assignments list --scope`: excludes `TenantGlobal`. `check-access --sThe documentation asks the agent to create, modify, or delete local files.
**Scope vocab differs across verbs.** `roles create --scope`: `Organization|TenantGlobal|Tenant|Project`. `roles assignments create --scope`: those + `Folder|App`. `roles assignments list --scope`: excludes `TenantGlobal`. `check-access --sEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 149 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Administrative operations on UiPath via uip admin — Identity Server, Authorization, OMS, IP Restriction, Audit. Per-area workflows, command references, and procedures are in the linked files below — this file is the entry contract.
Organization, TenantGlobal, Tenant, Project)Organization, Tenant, TenantGlobal, Project, Folder, or App scopeuip admin organizations (read + update only; no CLI create/delete)services list, list-available, add, enable, disable, removetenants mutations return operationId; poll via organizations operation get <id> (the canonical poll endpoint)tenants createip-restriction my-ip; also the safety pre-flight before enabling enforcementActivate on both explicit audit requests and natural-language investigation intent — users rarely say "audit events" by name.
Surface boundary — this is
uip admin audit, notuip or audit-logs. Every org/tenant audit ask below — including bare "audit logs", "audit history", "export the audit trail", "login history", "who did what" — is served byuip admin audit <scope>. Do not fall back touip or audit-logs(Orchestrator-operational audit, a different schema; that's theuipath-platformskill), even when the user's wording is generic. When the user asks what audit events / sources are available or visible, answer by runninguip admin audit <scope> sources— discover live, never describe from memory or the docs.
uip admin audit commands; list sources / targets / types; query, filter, paginate, or export events; CSV or per-day-JSON dump of audit history for a window.--file-format csvScope routing (which phrasing →
orgvstenant, and why) lives in audit-workflow-guide.md → Audit scope disambiguation. Critical Rule 23 governs the stop-and-ask requirement when scope is ambiguous.
Activate on access/auth/identity troubleshooting — users report symptoms, not audit verbs.
Structured diagnose capability index with failure-mode lookup and diagnostic priority ladder: diagnose/CAPABILITY.md. Quick investigation playbooks: identity-troubleshoot-guide.md.
Each rule is the agent contract. Per-area detail is in the linked reference files.
uip or roles (uipath-platform skill). uip admin authorization does NOT own Orchestrator's role catalog. Conversely, all organization/tenant audit is owned HERE and served by uip admin audit <scope> (sources / events / export) — NEVER use uip or audit-logs for audit events, audit history, audit export, login history, compliance dumps, or "who did what/where" requests. uip or audit-logs is a different surface (Orchestrator-operational audit — Component,User,Action,Operation,Time columns, --export returns a CSV; the uipath-platform skill). If you reach for uip or audit-logs on any org/tenant audit ask, stop and switch to uip admin audit.uip login status --output json. If not logged in, stop and ask the user to run uip login — it opens an interactive browser flow, so never launch it yourself in an automated or non-interactive session (sessions authenticated via env vars are already logged in). Org id is resolved from the active session.--output json on every command. Parse programmatically; present conversationally.uip login.roles assignments create/delete, users delete, groups delete, groups members add/revoke, robot-accounts delete, external-apps delete, external-apps generate-secret — MUST first search the directory and echo Principal: <displayName> (<userName>) — <id> back before the mutation runs. Zero matches → stop and ask; never fall back to the current login user. Multiple matches → numbered list, wait for a digit. Procedure: role-assignment-management.md → Resolving Principal IDs.list before create to avoid duplicates (robot accounts, groups, external apps — users invite excepted).generate-secret — warn the user to save immediately.--app-scope or --user-scope is required (e.g., --app-scope "OR.Folders").users list per Rule 5, then groups members add/revoke.Custom roles can be created / updated / deleted. CLI also rejects authoring against service-managed and platform-level services. Service lists: role-management.md → Services That Manage Their Own Roles.roles create / roles update are PUT-style upserts. Body is assembled from inline flags + --file ./actions.json. Always roles get first before updating — omitted flags overwrite that field.--service infers scope (e.g., --service studio → Tenant; --service apps → Organization). Combine with --scope only to override. Never guess a serviceName — the valid values and the command that re-derives them: permission-catalog.md → --service serviceNames.roles list --service <svc> and roles assignments list --service <svc> accept every service. For effective access on a principal use check-access (PDP).roles create --scope: Organization|TenantGlobal|Tenant|Project. roles assignments create --scope: those + Folder|App. roles assignments list --scope: excludes TenantGlobal. check-access --scope: only Tenant|Folder.roles assignments create/delete MUST resolve the principal first per Rule 5 — --identity-id is a raw UUID the CLI does not name-check.roles assignments create MUST match the role's ownerServiceName to the scope-path service segment. CentralizedAccess → no service segment (/ or /tenant/<tid>); anything else → path must include lowercase(ownerServiceName). Display-name mapping (e.g., Reinfer → "IXP") + full procedure: role-assignment-management.md → Validate Role's Owning Service.tenants create/update/delete/enable/disable return operationId. Auto-poll organizations operation get <OP_ID> 3× at 5 s; on terminal status stop and report; still in-progress after 3 polls → numbered menu, never indefinite loop. organizations create and organizations delete are not exposed by the CLI — Portal / support flow only. Procedure: organization-management.md → Polling procedure.tenants delete is soft-only. No hard-delete flag; restoration is via support.<TENANT_ID> for destructive ops (tenants delete, tenants disable, tenants services remove).--region is required on tenants create — run organizations regions list first. Tenant service catalog is region-aware.services disable / remove may no-op despite Success on certain services. Always re-list after mutating. Gap list: tenants-commands.md → Concepts.org vs tenant scope before querying. If the prompt is vague AND no prior turn fixed the scope, stop and ask once (a single clarifying question — use AskUserQuestion when available) — never silently default to tenant or any single scope. If you genuinely cannot get an answer (non-interactive run) and must proceed, query both scopes and combine the results rather than guessing one — silently picking a single scope is the failure mode. Scope is a positional subgroup, NOT a flag: write uip admin audit org sources / uip admin audit tenant events — there is no --scope option (audit sources --scope organization is invalid). Routing table (user-phrasing → scope + why it lives where) and investigation playbooks: audit-workflow-guide.md → Audit scope disambiguation.audit <scope> events returns an object, not a bare array. Shape is {auditEvents, next, previous}. Do not index Data[0]; read Data.auditEvents[]. Cursor semantics are chronological: next = newer events, previous = older events. The default newest-backward walk follows previous.--limit paginates internally — never loop on --from-date / --to-date to "paginate". The server clamps maxCount to [10, 200] per request; when the user wants more than 200, the CLI fetches ceil(N/200) pages under the hood. Pass --limit 500 (or larger, up to the 10000 maximum) — do NOT re-implement pagination in the agent. --limit must be in [1, 10000]; a bigger value is rejected up front with Result: "ValidationError", so never pass an arbitrarily huge number to mean "everything" — for that, omit --limit or stay within the range.audit <scope> sources first — never invent source / target / type GUIDs. The catalog response gives the GUIDs you pass to events --source / --target / --type. This is also the answer to "what audit events / sources can I see?" — run audit <scope> sources and report the live catalog; do not answer conceptually from memory or the reference docs.audit <scope> events without --from-date and --to-date on a noisy tenant. Accepted formats: date-only (2026-04-01) or with time (2026-04-01T14:30:00Z). --to-date is inclusive of the exact instant — to capture a full final day, pass the start of the next day or T23:59:59.999Z. This next-day trick is for events only — export bounds are whole days (Rule 30). Resolve relative phrases ("yesterday", "last 7 days") against the actual current UTC date (e.g. date -u) — never guess dates — and echo the resolved window in your reply.
27b. "No matching event" is a complete answer — never name an actor the evidence does not support. An audit trail is evidence, so attributing an action to the wrong person is worse than returning nothing. If the targeted query comes back empty, say so plainly, state what you searched (scope, source/target/type, window), and offer a next step (widen the window, try the other scope, check the resource ever existed). Never promote an actor from an adjacent event — a different resource, a different event type, or a broad --search hit — into the answer, and do not keep loosening filters until something returns and then present that as the culprit. Only name an actor when the cited event matches both the resource and the verb asked about, quoting createdOn plus the identifying eventDetails field so the user can verify it. Detail: audit-workflow-guide.md → Step 5.--tenant-id is silently ignored on org-scoped audit commands. If you find yourself reaching for it on audit org events, switch to audit tenant instead.Audit.Read scope; tell the user to uip logout && uip login.
29b. On a 5xx from audit, DO retry — the envelope tells you so. ErrorCode: server_error / Retry: RetryLater (e.g. HTTP 503: no healthy upstream, HTTP 504) is a transient, not a bad request. Re-run the same query up to two more times with a few seconds of backoff before reporting failure — changing --limit or the window between attempts is not a fix and only obscures the cause. Retry immediately-and-once is usually not enough; wait between attempts. Never write or present an error envelope as if it were the result — if the user asked you to save the JSON, saving {"Result":"Failure",...} to that file is a failed retrieval, not a result. Report the failure explicitly instead.audit <scope> export writes into a base directory (--output-path): a uniquely-named folder of day-wise JSON files (default) or a single merged CSV. --from-date, --to-date, and --output-path are all required. Export dates are whole UTC days, inclusive on both ends (the server truncates times to the calendar day): --from-date 2026-01-01 --to-date 2026-01-31 exports all of January; a single day is --from-date X --to-date X with the same date. Do not apply the events next-day trick here — a next-day --to-date exports an extra full day. --output-path is a base directory (created if missing) — pass a directory only, never a filename or extension; the CLI creates a uniquely-named audit_<from>_<to>_<generated-at> output inside it (folder for json, .csv for csv), so repeated exports of the same window never collide. Do not hand-craft the per-export name. --file-format <json|csv> selects the shape: json (default) = a folder of <YYYY-MM-DD>.json files; csv = one merged CSV — pick csv for a flat spreadsheet/Excel-friendly dump, json for per-day files. If the user named a destination folder, pass it verbatim as --output-path — no confirmation needed; confirm first only when you had to pick a default (e.g. ./audit-exports) yourself. Then report the generated Path (and GeneratedAt) from the result.enforcement enable is lockout-sensitive — prompt + impact statement required. Run ip-restriction my-ip and verify the caller's IP is covered by an entry in ip-ranges list. Then prompt the user with the impact before flipping: "After enabling IP restriction, any caller (Portal, CLI, robot, external app) whose source IP is not in ip-ranges list will be blocked from this org. Misconfiguration locks you out and requires platform-side recovery. Proceed?" --confirm is required; ip-ranges delete while enforcement is on also requires --confirm. Procedure: enforcement-management.md.enforcement disable, or use the Portal recovery flow.type: "BuiltIn" groups cannot be deleted. Only custom groups.groups members add <GROUP_ID> --user-ids ..., NOT --group-id <GROUP_ID>. Same for all get, update, delete, create subcommands.events returns a bare array. It's {auditEvents, next, previous}.--from-date/--to-date to "paginate". Bump --limit and the CLI handles cursor pagination internally.tenant or org when the prompt is ambiguous. Ask once, then proceed.sources first.events with no time bound on a noisy tenant — default to a bounded window.--tenant-id to org-scoped audit commands — it's silently ignored.Audit.Read for audit). Tell the user to uip logout && uip login.
9a. Do NOT save or report an audit error envelope as data. A {"Result":"Failure"|"ValidationError", ...} payload is a failed call — retry a 5xx (Rule 29b), fix a ValidationError, and never leave it in a file the user asked you to fill with results.
9b. Do NOT name a culprit an audit query did not return. If the targeted search is empty, report "no matching event found" — never borrow an actor from an adjacent or broader-search event (Rule 27b).roles update with only the flag you want to change. Re-fetch first; the upsert body overwrites omitted fields (Rule 12).scopeType, ownerServiceName, tenant-binding (names not UUIDs). Detail: authorization-commands.md → Provenance contract.services list returns provisioned with status; services list-available is the catalog. Present them as separate sections.--to-date on audit export to "include the final day" — export bounds are already whole-day inclusive (Rule 30); the next-day trick is for events only and would export an extra day.One row per common goal. Per-area workflows are in the reference files.
| Goal | Entry command(s) |
|---|---|
| Invite a user → assign to group | user-management.md + group-management.md |
| Create a custom role | uip admin authorization roles create --scope <Organization|TenantGlobal|Tenant|Project> --name "<NAME>" --file ./actions.json --output json (actions.json = ["STUDIO.X.Y", ...]) |
| Grant permission(s) to a principal ("grant me X", "give alice Y, Z") | grant-permissions.md — intersection-and-menu flow |
| Assign a role to a principal | (1) Resolve principal per Rule 5. (2) roles get <ROLE_ID> → echo ownerServiceName + verify scope-path service segment matches (Rule 17). (3) roles assignments create --role-id <ROLE_ID> --identity-id <ID> --identity-type <User|Group|Robot|ExternalApplication> --output json |
| See what a principal can do | uip admin authorization check-access <USER_GUID_OR_EMAIL> --scope <Tenant|Folder> --output json (Rule 15) |
| Create a tenant | tenant-management.md — region + default-services resolution, file-body shape, operation polling (Rule 18) |
| Add a tenant service | tenants services list-available --region <R> → tenants services add --tenant-id <TID> --service <SVC> (verify post-state per Rule 22) |
| Look up my public IP ("what's my IP?", "what public IP does the platform see for me?") | ip-restriction my-ip --output json → return Data.ipAddress. Standalone — no enforcement context required |
| Enable IP allowlist enforcement | ip-restriction my-ip → verify covered by ip-ranges list → ip-restriction enforcement enable --confirm (Rule 31) |
| Query audit events / export | audit-workflow-guide.md — scope disambiguation + 4 investigation playbooks (who-did-X, login history, date-range dump, overview) |
Organization (org)
└── Partition (= org in most cases)
├── Users ← human identities
├── Groups ← role containers (BuiltIn + Custom)
├── Robot Accounts ← unattended automation identities
└── External Apps ← OAuth2 clients (Client ID + Secret)
| Concept | Purpose | Managed by |
|---|---|---|
| Robot account | Identity — who the robot is | Identity Server (uip admin) |
| Robot credentials | Per-robot Client ID + Secret for machine auth | Orchestrator (machine connection) |
| External app | OAuth2 client for API integrations, CI/CD | Identity Server (uip admin) |
Robot credentials are provisioned automatically by Orchestrator on machine connect — not by creating external apps.
What to surface after each verb. Per-area detail in the reference files; this is the contract.
| Area | Always surface |
|---|---|
| Identity mutations | Result + new resource id; for external-app create / generate-secret, highlight the secret + warn to save; offer a next step (assign to group, generate another secret, etc.). |
| Authz reads + mutations | Provenance: role name, scopeType, ownerServiceName (read directly from response — translate to display name per Rule 17, e.g., Reinfer→"IXP"), tenant binding (resolve UUID → name). check-access: label each row as direct or inherited from <Group name> by inspecting the nested roleAssignments[].securityPrincipalType. Full contract: authorization-commands.md → Provenance contract. |
| OMS reads | Separate provisioned (with status) from available catalog (no status). Lead with Organization: <ORG_NAME> (and tenant name + UUID + lifecycle status for tenant reads). |
| OMS mutations | Echo the resolved target before running (Anti-pattern 13). Async: auto-poll 3× at 5 s, then numbered menu (Rule 18). Sync services: re-list to verify post-state (Rule 22). |
| Audit queries | Disambiguate org vs tenant first (Rule 23). Discover via sources (Rule 26). Bound the window (Rule 27). Operation summary (count, scope, time window, filters, cursor state). Wait for the user's next-step choice; do not chain mutations. Investigation playbooks: audit-workflow-guide.md. |
| IP Restriction mutations | Before enforcement enable: state the impact, require explicit user confirmation (Rule 31). After: confirm caller's IP is still covered (re-run my-ip + ip-ranges list). Never use the internal name "APMS" in user-facing output. |
For per-area full checklists, follow the table's inline links: Identity → identity-commands.md; Authz → authorization-commands.md; Audit → audit-workflow-guide.md.
| I need to... | Read first |
|---|---|
| Identity CLI reference | references/identity-commands.md |
| Manage users (list / create / invite / update / delete) | references/user-management.md |
| Manage groups (CRUD + membership) | references/group-management.md |
| Manage robot accounts | references/robot-account-management.md |
| Manage external apps (OAuth2 + secrets + federated credentials) | references/external-app-management.md |
| Manage personal access tokens (PATs) | references/pat-management.md |
| Configure SMTP email settings | references/smtp-management.md |
| Authorization CLI reference | references/authorization/authorization-commands.md |
| Manage custom roles | references/authorization/role-management.md |
| Grant permission(s) to a principal — scope/service intersection flow | references/authorization/grant-permissions.md |
| Manage role assignments (incl. role-service vs scope-path validation, Rule 17) | references/authorization/role-assignment-management.md |
| List permission definitions | references/authorization/permission-catalog.md |
| Check effective access for a principal | references/authorization/check-access.md |
| Organizations CLI reference | references/organizations-commands.md |
| Tenants CLI reference | references/tenants-commands.md |
| Manage the organization (read + update, polling, regions, org services read-only) | references/organization-management.md |
| Manage tenants (CRUD, enable/disable, tenant services) | references/tenant-management.md |
| IP-restriction CLI reference | references/ip-restriction/ip-restriction-commands.md |
| Manage IP allowlist entries | references/ip-restriction/ip-range-management.md |
Toggle enforcement (+ my-ip safety check) | references/ip-restriction/enforcement-management.md |
| Manage bypass rules | references/ip-restriction/bypass-rule-management.md |
| Audit CLI reference | references/audit-commands.md |
| Audit investigation workflows (scope disambiguation, who-did-X, login history, date-range dump, overview) | references/audit-workflow-guide.md |
| Paginate audit events beyond 200 | references/audit-commands.md + Rule 25 |
| Troubleshoot access denied, login failures, role misconfig, IP lockout, PAT/app auth | references/identity-troubleshoot-guide.md |
| Diagnose capability index (structured) | references/diagnose/CAPABILITY.md |
| Failure mode lookup (12 named patterns) | references/diagnose/references/failure-modes.md |
| Diagnostic priority ladder (sequential triage) | references/diagnose/references/troubleshooting-guide.md |
Frequently asked questions
Administrative operations on UiPath via uip admin — Identity Server, Authorization, OMS, IP Restriction, Audit. Per-area workflows, command references, and procedures are in the linked files below — this file is the entry contract.
The source record exposes this install command: npx skills add https://github.com/UiPath/skills --skill "skills/uipath-admin". Inspect the command and pinned source before running it.
Static rules flagged read-files, write-files in the source; the page lists the matching lines and excerpts.
Alternatives
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).
narrative-io/narrative-skills-marketplace
Translate a fuzzy analytical question into a rigorous investigation plan. Interrogates the ask, grounds the plan in the available data dictionary, applies analytical best practices, and produces a structured brief of query specifications for a downstream query-writing skill. Plans, does not write SQL. Use when: "why did X drop", "is there a relationship between A and B", "who are our highest-value customers", "what's driving the change in Y", "investigate this trend", "design an analysis for", "
K-Dense-AI/scientific-agent-skills
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.
synthetic-sciences/openscience
Computational analysis of pharmacology wet-lab experiments. Western blot densitometry, xenograft tumor growth inhibition, pharmaceutical stability modeling (Arrhenius), radiolabeled antibody biodistribution, MIRD dosimetry, and adverse event grading. For drug databases use chembl-database or fda-database; for molecular docking use diffdock.