Skip to content

Dashboard shows Add button for Backups page for cluster-admin, leads to blank form #2165

Closed

Description

Description

The Backups page introduced in 1.0 is a read-only view of Backup.backups.cozystack.io resources — backups are created by the controller, not manually by users. Because of this, no CFOMapping was defined for the Backups resource.

However, the dashboard renders the Add button based on RBAC permissions. Regular tenant users don't have create permissions, so they don't see the button. But cluster-admin users do have these permissions, so the button appears for them.

When a cluster-admin clicks Add, the form hangs and displays a blank page because there is no CFOMapping to render the creation form.

Expected behavior

The Add button should not be shown on the Backups page, since backups are not meant to be created manually.

Steps to reproduce

  1. Log in to the dashboard as a user with cluster-admin privileges
  2. Navigate to the Backups page
  3. Click the Add button
  4. Observe the blank/hanging form

Activity

  1. added
    kind/bugCategorizes issue or PR as related to a bug
    on Mar 6, 2026
  2. added
    area/dashboardIssues or PRs related to the dashboard / UI
    priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release
    triage/acceptedIndicates an issue is ready to be actively worked on
    on Apr 27, 2026
  3. dosubot commented on Jul 27, 2026

    @dosubot

    Hi, Timofei Larkin (@lllamnyp). I'm Dosu, and I'm helping the cozystack team manage their backlog and am marking this issue as stale.

    Recap

    • You reported that the Backups page should be read-only because backups are created by the controller, not manually.
    • There is no CFOMapping for Backups, but cluster-admin users still see an Add button because of RBAC permissions.
    • Clicking Add opens a blank/hanging form, so the requested fix is to hide the Add button on the Backups page.
    • There hasn’t been any additional discussion or follow-up activity on the issue.

    Next Steps

    • If this is still relevant on the latest version of the cozystack repository, please comment here to keep the discussion open.
    • Otherwise, this issue will be automatically closed in 7 days.

    Thanks for your understanding and contribution.

  4. added
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale
    and removed on Aug 3, 2026
  5. androndo commented on Aug 3, 2026

    @androndo
    Contributor

    Fixed. Closing after verifying against main (04b742670).

    The console gates the button exactly as asked: packages/system/dashboard/images/console/apps/console/src/routes/BackupResourceListPage.tsx wraps the create <Link> in {resourceType !== "backups" && (, so Plans, Backup Jobs and Restore Jobs keep their create button and Backups — which is controller-produced and not user-creatable — does not.

    The mechanism behind the blank form is gone too, independently: the CFO-based dashboard this was filed against has been replaced by the in-tree React console, and CFOMapping survives on main only inside the platform migration that cleans it up (packages/core/platform/images/migrations/migrations/40). So there is no longer a "no CFOMapping, therefore empty form" path to hit.

    One residual nit, not worth keeping this open: the route backups/backups/create is still registered in ConsolePage.tsx and reachable by typing the URL, though nothing links to it. Whoever adds the per-application Backups tab from #2609 should decide whether to drop that orphaned route.

    Found during an audit of all open backup issues.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/dashboardIssues or PRs related to the dashboard / UIkind/bugCategorizes issue or PR as related to a buglifecycle/staleDenotes an issue or PR has remained open with no activity and has become stalepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions