Uploaded image for project: 'RH Developer Hub Planning'
  1. RH Developer Hub Planning
  2. RHDHPLAN-843

RBAC Fine-Grained Visibility Control for Pages, Tabs, and Navigation Elements

Create Doc EPIC from R...Prepare for Z ReleasePrepare Test Plan (Y R...XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • RHDHPLAN-192Base RHDH frontend on the upstream new frontend system
    • M

      Feature Overview (aka. Goal Summary)

      Currently, the Red Hat Developer Hub (RHDH) Role-Based Access Control (RBAC) implementation focuses primarily on plugin-level access and API-level permissions. While this effectively secures the underlying data, it creates a fragmented user experience: users can often still see navigation links, sidebar items, and UI tabs even if they lack the permissions to view the content within them. This results in "empty states" or 403 errors that clutter the interface and confuse the user.

      The goal of this feature is to extend the RBAC framework to support UI element visibility. By integrating RBAC policies directly with the frontend layout engine, RHDH will dynamically hide or show pages, tabs, and navigation items based on the authenticated user's roles and permissions. This ensures a "clean" interface where users only see the tools and information relevant to their specific persona.

      Goals (aka. expected user outcomes)

      • Improved User Experience: Developers and Platform Engineers are not distracted by navigation items or UI tabs that lead to empty pages or "Access Denied" messages.
      • Reduced Cognitive Load: The interface dynamically adapts to the user's role, presenting a streamlined workspace focused only on authorized actions.
      • Enhanced Security Posture: While UI hiding is not a replacement for API security, it prevents the leakage of internal structure/tooling names to unauthorized users.
      • Administrative Flexibility: Platform Admins can define high-level UI visibility rules within the RBAC policy engine without needing to modify frontend code or configuration files for every change.

      Requirements (aka. Acceptance Criteria):

      • As a Platform Engineer, I want to define RBAC policies that target specific plugin-id or route-path visibility, so that I can control who sees which top-level navigation items.
      • As a Platform ** Engineer{}, I want to hide sensitive tabs (e.g., "Security Insights" or "Costs") within the Entity Information view for users who do not have the required permissions, so that I maintain a "need-to-know" UI.
      • As a Platform ** Engineer{}, I want the UI elements to react dynamically to policy changes without requiring a full portal rebuild or redeployment.
      • As a User{}, I want the RHDH sidebar to only display the plugins and shortcuts I am authorized to use, so that my workspace remains uncluttered.
      • As a User, if I attempt to manually navigate to a URL for a hidden page, I should be redirected to a standard "404 Not Found" or "Unauthorized" page rather than seeing a broken UI shell.

      Out of Scope (Optional)

      • Component-level Hiding: Hiding individual buttons or fields within a specific page (this should be handled by the individual plugin's internal logic).
      • Conditional Visibility based on Entity Metadata: Hiding tabs based on specific labels or annotations within a catalog-info.yaml (this is existing Backstage functionality; this ticket focuses on RBAC integration).

      Customer Considerations (Optional)

      • Regulated Environments: For customers in banking or government sectors, showing that a specific tool (e.g., Vulnerability Scanner) exists can sometimes be a compliance issue. UI-level hiding is a high-priority request for these personas.
      • Performance: The RBAC check for UI elements must be highly optimized to avoid "flicker" (where an item appears for a split second before being hidden) or significant delays in page load times.

      Documentation Considerations

      • Policy Syntax Guide: Clearly document how to write policies or use the RHDH RBAC UI to target UI elements specifically.
      • Migration Path: Provide instructions for existing customers on how to move from "open navigation" to "RBAC-restricted navigation."
      • Best Practices: Advise customers on the difference between hiding a UI element for UX purposes vs. securing an API for security purposes.

              dsantra12 Debsmita Santra
              jfargett@redhat.com Christophe Fargette
              RHDH Frontend Plugins & UI
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: