confluence-permission · git:20260901.5d17d6a · 2026-09-01 · sha256 7f2eafc89ba25ecc
confluence-permission git:20260901.5d17d6aA
Immutable. This exact content is served forever at /api/v1/blob/7f2eafc89ba25ecc.
--- name: confluence-permission description: Manage space and page permissions and restrictions. ALWAYS use when user wants to control access, set restrictions, or manage who can view/edit content. triggers: - permission - permissions - restrict - access - security - who can view - who can edit - lock page - restrict access origin: type: upstream upstream: repository: grandcamel/Confluence-Assistant-Skills path: skills/confluence-permission ref: 403eac8ad8a0812e6d41ed70cbc0fdf2ff4b7542 license: MIT trust: tier: reviewed reviewed_at: '2026-08-26' reviewed_by: ulises-jeremias reviewed_provenance: sha256:3eb4e643e0e7732f97730bc9e6fe1b218cf78f034c9c14c844369ef521269702 maintenance: status: active last_checked: '2026-08-26' distribution: mode: vendored redistribution_allowed: true attribution_file: LICENSE security: scripts: false shell: false network: true mcp: false hooks: false --- # Confluence Permission Skill Manage space and page permissions and restrictions. --- ## ⚠️ PRIMARY USE CASE **This skill controls who can access Confluence content.** Use this skill for: - Setting space-level permissions (who can view/edit a space) - Adding page restrictions (limit access to specific users/groups) - Auditing current permissions and restrictions **⚠️⚠️ WARNING**: Permission changes can lock users out of content. Always document current permissions before making changes. --- ## When to Use This Skill | Trigger | Example | |---------|---------| | View permissions | "Who can access DOCS space?", "Show page restrictions" | | Add permissions | "Give engineering-team read access to DOCS" | | Remove permissions | "Remove John's access to page 12345" | | Restrict pages | "Lock this page to admins only" | | Audit access | "List all permissions for TEAMSPACE" | --- ## When NOT to Use This Skill | Operation | Use Instead | |-----------|-------------| | Create/edit pages | `confluence-page` | | Search for content | `confluence-search` | | Manage space settings | `confluence-space` | | View who's watching | `confluence-watch` | --- ## Risk Levels | Operation | Risk | Notes | |-----------|------|-------| | Get permissions | - | Read-only | | Add permission | ⚠️ | Grants access, can be removed | | Remove permission | ⚠️⚠️ | **Can lock users out** | | Add page restriction | ⚠️⚠️ | **Can hide content from users** | | Remove all restrictions | ⚠️ | Opens page to all space members | --- ## Overview This skill provides comprehensive permission management for Confluence: - **Space Permissions**: Control who can access and administer entire spaces - **Page Restrictions**: Limit read/edit access to specific pages Note: Due to API limitations, this skill uses a hybrid approach: - v2 API for reading space permissions - v1 API for modifying space permissions and managing page restrictions ## CLI Commands ### confluence-as permission space get Retrieve the list of permissions assigned to a space. **Usage:** ```bash confluence-as permission space get SPACE_KEY confluence-as permission space get DOCS --output json ``` **Output:** Lists all users and groups with their assigned operations (read, write, administer, etc.) **Note:** Use `--output json` to see permission IDs, which are required for removing specific permissions with `confluence-as permission space remove --permission-id`. ### confluence-as permission space add Grant a permission to a user or group for a space. **Usage:** ```bash confluence-as permission space add SPACE_KEY --user ACCOUNT_ID --operation read confluence-as permission space add DOCS --group confluence-users --operation create confluence-as permission space add TEST --user 557058:12345678-abcd-1234-efgh-123456789abc --operation administer confluence-as permission space add DOCS --group editors --operation create --target page ``` **Options:** - `--user` - User account ID (plain ID, no prefix) - `--group` - Group name - `--operation` - Permission operation (required) - `--target` - Target type (default: `space`) **Valid Operations:** - `read` - View content - `create` - Create content - `delete` - Delete content - `administer` - Manage space - `archive` - Archive content - `restrict_content` - Set content restrictions - `export` - Export content **Valid Targets:** - `space` - Space-level permission (default) - `page` - Page-level permission - `blogpost` - Blog post permission - `comment` - Comment permission - `attachment` - Attachment permission ### confluence-as permission space remove Revoke a permission from a user or group for a space. **Usage:** ```bash # Method 1: Remove by permission ID (preferred) confluence-as permission space remove SPACE_KEY --permission-id 12345 confluence-as permission space remove DOCS -p 67890 # Method 2: Remove by user/group + operation (finds and removes matching permissions) confluence-as permission space remove SPACE_KEY --user ACCOUNT_ID --operation read confluence-as permission space remove DOCS --group confluence-users --operation create ``` **Options:** - `--permission-id`, `-p` - Permission ID to remove (primary method) - `--user` - User account ID (requires `--operation`) - `--group` - Group name (requires `--operation`) - `--operation` - Operation to match (REQUIRED when using `--user` or `--group`) **Note:** Use `confluence-as permission space get` to find permission IDs. ### confluence-as permission page get List restrictions on a page (who can read/edit). **Usage:** ```bash confluence-as permission page get PAGE_ID confluence-as permission page get 123456 --output json ``` **Output:** Shows read and update restrictions with users and groups ### confluence-as permission page add Add a restriction to limit page access. **Usage:** ```bash confluence-as permission page add PAGE_ID --operation read --user ACCOUNT_ID confluence-as permission page add 123456 --operation update --group confluence-users confluence-as permission page add 123456 --operation read --user 557058:12345678-abcd-1234-efgh-123456789abc ``` **Options:** - `--user` - User account ID (plain ID, no prefix) - `--group` - Group name - `--operation` - Restriction type (required): `read` or `update` **Restriction Types:** - `read` - Who can view the page - `update` - Who can edit the page ### confluence-as permission page remove Remove a restriction from a page. **Usage:** ```bash confluence-as permission page remove PAGE_ID --operation read --user ACCOUNT_ID confluence-as permission page remove 123456 --operation update --group confluence-users confluence-as permission page remove 123456 --operation read --all ``` **Options:** - `--user` - User account ID to remove from restriction - `--group` - Group name to remove from restriction - `--operation` - Restriction type (required): `read` or `update` - `--all` - Remove all restrictions of this type Use `--all` to remove all restrictions of a type (makes page accessible to all space members). ## Examples ### Restrict a confidential page ```bash # Get current restrictions confluence-as permission page get 123456 # Add read restriction to specific users (use account IDs) confluence-as permission page add 123456 --operation read --user 557058:john-account-id confluence-as permission page add 123456 --operation read --user 557058:jane-account-id # Add edit restriction to admins group confluence-as permission page add 123456 --operation update --group confluence-administrators ``` ### Grant space access to a team ```bash # Add read permission for the team confluence-as permission space add TEAMSPACE --group engineering-team --operation read # Add create permission for contributors (to create pages) confluence-as permission space add TEAMSPACE --group engineering-leads --operation create --target page # Verify permissions confluence-as permission space get TEAMSPACE ``` ### Remove all restrictions from a page ```bash # Remove all read restrictions (make viewable to all space members) confluence-as permission page remove 123456 --operation read --all # Remove all update restrictions (make editable to all space members) confluence-as permission page remove 123456 --operation update --all ``` ## Important Notes ### API Limitations - Space permission management via API may be restricted by Confluence administrators - Inherited page restrictions are not shown in API responses (CONFCLOUD-71108) - Admin keys cannot bypass restrictions when using the API ### Permission Hierarchy - Space permissions apply to all content in the space - Page restrictions override space permissions (more restrictive) - Removing all page restrictions makes it follow space permissions ### Best Practices - Always verify changes with `get` commands - Use groups instead of individual users when possible - Document permission changes in page history or space description - Test with a non-admin account to verify restrictions work --- ## Common Pitfalls ### 1. Locking Yourself Out - **Problem**: Removing your own access to a page/space - **Solution**: Always ensure at least one admin retains access before changes ### 2. Inherited Restrictions Not Visible - **Problem**: Page appears accessible but users can't view it - **Solution**: Check parent page restrictions (API doesn't show inherited) ### 3. User vs Account ID - **Problem**: `--user` not finding the person - **Solution**: Use the plain account ID (e.g., `557058:12345678-abcd-1234-efgh-123456789abc`), no prefix needed ### 4. Group Name Mismatch - **Problem**: Group not found when adding permissions - **Solution**: Group names are case-sensitive, verify exact name in Confluence admin ### 5. Space Admin Override - **Problem**: Page restrictions being bypassed - **Solution**: Space admins can always access content - this is by design ### 6. API Restrictions - **Problem**: Permission changes fail silently - **Solution**: Some permission operations require Confluence admin privileges --- ## Error Handling | Error | Cause | Resolution | |-------|-------|------------| | **403 Forbidden** | Insufficient privileges to modify permissions | Request space admin access | | **404 Not Found** | User, group, or resource doesn't exist | Verify user email, group name, page ID | | **400 Bad Request** | Invalid operation or subject type | Check operation name, use correct subject type | | **409 Conflict** | Permission already exists or conflicts | Check current permissions first | ### Recovery from Permission Errors **Locked out of page:** ```bash # Space admin can remove restrictions via UI or API confluence-as permission page remove PAGE_ID --operation read --all confluence-as permission page remove PAGE_ID --operation update --all ``` **Accidentally removed space access:** ```bash # Confluence admin can restore via Confluence Admin > Space Permissions # Or re-add the permission: confluence-as permission space add SPACE_KEY --group GROUP_NAME --operation read ``` **Audit trail:** - Space permission changes are logged in Confluence audit log - Page restriction changes appear in page history