docs: document RBAC space roles and correct noun/verb defaults - #47
Conversation
Add Space Roles and Space Role Assignments to the capabilities table (both opt-in). Add a new RBAC section explaining --use-rbac mode, the either/or relationship with granular permissions, and a troubleshooting note for the 404 error when RBAC endpoints are unavailable. Correct the noun/verb defaults section: the values shown in the C1 config form are suggested values only and do not determine the runtime defaults. When no nouns/verbs are explicitly configured, the connector syncs all available nouns and verbs.
| - **Granular space permissions** (default): Syncs individual noun-verb permission pairs (for example, `read-space`, `administer-space`) per space. This is the default behavior. | ||
| - **RBAC space roles**: Syncs Confluence's built-in space roles and their assignments instead of granular permissions. Enable this mode by setting the `--use-rbac` flag (or `BATON_USE_RBAC=true`). | ||
|
|
||
| The connector uses one mode or the other — not both. When RBAC mode is enabled, granular space permissions are not synced, and the Space Roles and Space Role Assignments resource types become active. |
There was a problem hiding this comment.
🟡 Suggestion: The two resource types aren't gated the same way. spaceRoleBuilder is registered unconditionally (pkg/connector/connector.go:165) and its List runs regardless of useRbac (pkg/connector/space_roles.go:24-31) — Space Roles are gated only by the OptInRequired annotation (pkg/connector/helpers.go:25-30), not by --use-rbac. Only Space Role Assignments are --use-rbac-gated, via the ChildResourceType annotation added in spaces.go:224-228. Consider saying both types require C1-side opt-in and that --use-rbac is what enables role assignment sync and disables granular permissions.
| The Confluence connector supports two modes for syncing space access: | ||
|
|
||
| - **Granular space permissions** (default): Syncs individual noun-verb permission pairs (for example, `read-space`, `administer-space`) per space. This is the default behavior. | ||
| - **RBAC space roles**: Syncs Confluence's built-in space roles and their assignments instead of granular permissions. Enable this mode by setting the `--use-rbac` flag (or `BATON_USE_RBAC=true`). |
There was a problem hiding this comment.
🟡 Suggestion: "built-in space roles" understates the scope — GetSpaceRoles returns custom roles too (see the comment at pkg/connector/space_role_assignments.go:39: "4 defaults + 10 custom"). Suggest "built-in and custom space roles".
| # Optional: include to use RBAC space roles instead of granular permissions | ||
| # BATON_USE_RBAC: true |
There was a problem hiding this comment.
🟡 Suggestion: The comment reads "Optional: include to use RBAC..." but the key itself is commented out, unlike the other optional entries above (BATON_PROVISIONING, BATON_SKIP_PERSONAL_SPACES), which are live. Copy-pasting this block silently leaves RBAC off. Suggest matching the surrounding style.
| # Optional: include to use RBAC space roles instead of granular permissions | |
| # BATON_USE_RBAC: true | |
| # Optional: include to use RBAC space roles instead of granular permissions | |
| BATON_USE_RBAC: true |
Connector PR Review: docs: document RBAC space roles and correct noun/verb defaultsBlocking Issues: 0 | Suggestions: 3 | Threads Resolved: 0 Review SummaryDocs-only change to Security IssuesNone found. Correctness IssuesNone found. Suggestions
Prompt for AI agents |
Summary
--use-rbacmode: what it does, the either/or relationship with granular permissions, and a troubleshooting warning for the 404 error when RBAC endpoints are unavailable on the Confluence instanceBATON_USE_RBACto the self-hosted Kubernetes secrets exampleFixes: CXP-872
Automated PR Notice
This PR was automatically created by c1-dev-bot as a potential documentation update.
This documentation requires: