with one click
umbraco-user-group
Backoffice user group management (permission sets)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Backoffice user group management (permission sets)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Use csv-update to batch-modify a property across multiple documents.
Search for a data type, inspect it, and update its configuration.
Walk the content tree to find a document, update a property, and publish.
Search for documents matching a query and publish them.
Call an authenticated raw Umbraco Management API endpoint
Persistent authentication helpers
| name | umbraco-user-group |
| description | Backoffice user group management (permission sets) |
| metadata | {"version":"0.4.8","requires":{"bins":["umbraco"],"skills":["umbraco-shared"]}} |
PREREQUISITE: Read
../umbraco-shared/SKILL.mdfor auth, global flags, and security rules.
umbraco user-group <command> [flags]
| Command | Description |
|---|---|
user-group get <id> | Get a user group by ID |
user-group list | List user groups (paginated; --skip/--take/--all, --filter for substring search) |
umbraco user-group get <id>
| Flag | Type | Default | Description |
|---|---|---|---|
--fields | string | — | Limit response fields (comma-separated top-level keys) |
umbraco user-group list
| Flag | Type | Default | Description |
|---|---|---|---|
--all | bool | false | Walk every page until exhausted (auto-paginates with --take as the page size, default 500; combine with --skip to start partway through). Bounded by an internal 100k-item ceiling. |
--fields | string | — | Limit response fields (comma-separated top-level keys) |
--filter | string | — | Substring filter against group names |
--first-n | int | 0 | Return only the first N items from item collections |
--ids-only | bool | false | Return only item IDs for item collections |
--params | string | — | Query parameters as JSON |
--skip | int | -1 | Skip count (passes through as ?skip=N; lets you walk past the server page size on large children/root collections) |
--summarize | bool | false | Return only id/name/alias fields for item collections |
--take | int | -1 | Take count (passes through as ?take=N; combine with --skip to page) |
Safety: Always use
--dry-runfirst. Remove the flag only after verifying the dry-run output.
| Command | Description |
|---|---|
user-group add-users <group-id> --ids <id,...> | Add users to a user group |
user-group create | Create a user group |
user-group delete <id> | Permanently delete a user group |
user-group remove-users <group-id> --ids <id,...> | Remove users from a user group |
user-group update <id> | Update a user group |
umbraco user-group add-users <group-id> --ids <id,...>
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Print the planned request without executing |
--ids | string | — | Comma-separated user GUIDs (required) |
Safe pattern:
# 1. Dry run first
umbraco user-group add-users <group-id> --ids <id,...> --dry-run
# 2. Execute
umbraco user-group add-users <group-id> --ids <id,...>
umbraco user-group create
POST /user-group. The model is permission-heavy; start from --print-template or 'user-group get' an existing group. sections use the umb-prefixed aliases (Umb.Section.Content, ...); permissions use single-letter verb codes matching the backoffice.
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Print the planned request without executing |
--json | string | — | Create payload as JSON |
--print-template | bool | false | Print an annotated JSON skeleton; substitute placeholders before passing to --json |
Safe pattern:
# 1. Dry run first
umbraco user-group create --dry-run
# 2. Execute
umbraco user-group create
umbraco user-group delete <id>
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Print the planned request without executing |
--force | bool | false | Confirm permanent deletion |
Safe pattern:
# 1. Dry run first
umbraco user-group delete <id> --dry-run
# 2. Execute
umbraco user-group delete <id> --force
umbraco user-group remove-users <group-id> --ids <id,...>
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Print the planned request without executing |
--ids | string | — | Comma-separated user GUIDs (required) |
Safe pattern:
# 1. Dry run first
umbraco user-group remove-users <group-id> --ids <id,...> --dry-run
# 2. Execute
umbraco user-group remove-users <group-id> --ids <id,...>
umbraco user-group update <id>
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Print the planned request without executing |
--json | string | — | Full replacement payload as JSON (fields not mentioned are reset by the server) |
--merge-json | string | — | Partial JSON deep-merged into the current resource before update (fields not mentioned are preserved) |
Safe pattern:
# 1. Dry run first
umbraco user-group update <id> --dry-run
# 2. Execute
umbraco user-group update <id>
# Browse subcommands
umbraco user-group --help
# Inspect a specific endpoint schema
umbraco schema user-group.<method>