Skip to content

Shadow Link: Role Sync Support - Self Hosted - #2592

Open
r-vasquez wants to merge 4 commits into
masterfrom
sl-role-sync
Open

Shadow Link: Role Sync Support - Self Hosted#2592
r-vasquez wants to merge 4 commits into
masterfrom
sl-role-sync

Conversation

@r-vasquez

Copy link
Copy Markdown
Contributor

Adds role sync support to the shadow link UI, and hides it on clusters that don't support it (< 26.2.0)

Changes

  • Create flow: new "Shadow roles" card to sync all roles or specific ones with include/exclude filters.
  • Details view: new "Role replication" section showing the configured role filters.
  • Edit flow: role filters can be changed on existing links (dataplane only, the controlplane API doesn't expose role sync yet).
  • Feature gate: role sync needs Redpanda 26.2.0+. The backend reports support through the existing endpoint compatibility check (same approach as schema registry sync). On older clusters the card is hidden and requests don't include role_sync_options at all. This matters because an untouched create form would otherwise send an include-all role filter.

Notes

  • Defaults mirror consumer groups: "All roles" selected, which sends a * include filter.
  • Sync interval and paused are not exposed in the UI and are preserved on edit.

Examples

Create & Edit
image

Details
image

The core admin API now exposes RoleSyncOptions on
shadow link configurations, but the create flow had
no way to choose which RBAC roles a link shadows.
Add a "Shadow roles" card above the consumer groups
section, mirroring its all/specify filter pattern.

An untouched form sends a single "*" include filter
so all roles sync by default, matching the consumer
groups behavior. Interval and paused are left unset
so the backend applies its defaults.

Filter tab labels were hardcoded to "topics"; they
now follow the resource type, and the role name
placeholder tracks the selected pattern tab.
Now the role filter section appears in the details
view of the Shadow Link.

Map roleNameFilters through the unified model from
the dataplane API only; the controlplane proto does
not expose role sync yet, so the section is hidden
when the data is unavailable instead of showing a
misleading "no filters" empty state.

Name filter labels now take a resource noun, so
role and consumer group rows no longer read
"Include specific topics".
Let users change which RBAC roles a shadow link
syncs from the shadowing tab, reusing the
create-flow roles card and the consumer groups
diffing pattern: a single
configurations.role_sync_options mask path is
emitted only when the mode or filters changed.

A link without role sync options hydrates to
specify mode with no filters, so saving an
untouched form never enables role syncing. The
controlplane proto does not carry role sync yet;
its update builder skips the category and the
card is hidden in embedded mode so edits cannot
be dropped silently.
Show the shadow roles card and send role sync
options only on clusters running 26.2.0 or newer,
reusing the endpoint compatibility check added
for schema registry sync. The request builders
skip role_sync_options too, since an untouched
create form defaults to an include-all filter.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

🚨 Registry drift detected

App: frontend · Scope: diff vs origin/master · Files: 29

Count
⚠️ Outdated registry components 1
🛠 Locally-modified components 0
❓ Unknown to registry 0
🎨 Off-token palette colours 0
🔢 Ad-hoc utility classes 0
Components needing attention
Status Component Uses Detail
⚠️ outdated tabs installed 2.4.0 → latest 2.4.1

Refresh command:

bunx shadcn@latest add @redpanda/tabs --overwrite

Generated by lookout audit-changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant