Skip to content

feat: personal canvas dashboards for Rill Cloud#9509

Draft
nishantmonu51 wants to merge 1 commit into
mainfrom
business_canvas
Draft

feat: personal canvas dashboards for Rill Cloud#9509
nishantmonu51 wants to merge 1 commit into
mainfrom
business_canvas

Conversation

@nishantmonu51
Copy link
Copy Markdown
Collaborator

Lets project members (including viewers) create owner-only canvas dashboards in Rill Cloud, stored as virtual files in the admin DB. Gated by the new personal_canvases feature flag and the new create_personal_canvases project permission.

Backend

  • New generic admin RPCs Create/Edit/Delete/Copy/Get/ListPersonalVirtualFile with a PersonalVirtualFileType enum (canvas in phase 1; extends to reports/alerts without new RPCs)
  • Per-type lookup table in admin/server/personal_virtual_files.go drives path layout, YAML validation, and required permission
  • FindVirtualFilesByPrefix for owner-scoped listing
  • Migration 0094 grants create_personal_canvases to roles with read_prod
  • builtInCanvasSecurityRule enforces owner-only access on admin-managed canvases (deny-by-default for non-owners)
  • New CanvasSpec.annotations field carries admin_owner_user_id and admin_managed through parse/reconcile
  • New runtime AI tool create_personal_canvas so the agent can build a canvas for the current user in Rill Developer

Frontend

  • VirtualFilePersistence extends FileArtifact, overriding the new putBlob / fetchBlob hooks to route through the admin RPCs
  • PersonalCanvasWorkspace reuses CanvasBuilder, CanvasEditor, and VisualCanvasEditing from web-common for parity with Rill Developer's visual editor (add widget, resize, inspector panel, code/visual toggle, save-as-default)
  • WorkspaceHeader gains a showBreadcrumbs prop so cloud hosts can hide the file-tree breadcrumbs that only make sense locally
  • New project home section lists the caller's personal canvases with a "create from blank or copy" dialog
  • "Done editing" flushes pending edits, invalidates the canvas resource cache, and returns to the preview

INSERT DESCRIPTION HERE

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

Lets project members (including viewers) create owner-only canvas
dashboards in Rill Cloud, stored as virtual files in the admin DB.
Gated by the new `personal_canvases` feature flag and the new
`create_personal_canvases` project permission.

Backend
- New generic admin RPCs `Create/Edit/Delete/Copy/Get/ListPersonalVirtualFile`
  with a `PersonalVirtualFileType` enum (canvas in phase 1; extends to
  reports/alerts without new RPCs)
- Per-type lookup table in `admin/server/personal_virtual_files.go`
  drives path layout, YAML validation, and required permission
- `FindVirtualFilesByPrefix` for owner-scoped listing
- Migration 0094 grants `create_personal_canvases` to roles with read_prod
- `builtInCanvasSecurityRule` enforces owner-only access on
  admin-managed canvases (deny-by-default for non-owners)
- New `CanvasSpec.annotations` field carries `admin_owner_user_id`
  and `admin_managed` through parse/reconcile
- New runtime AI tool `create_personal_canvas` so the agent can build
  a canvas for the current user in Rill Developer

Frontend
- `VirtualFilePersistence` extends `FileArtifact`, overriding the new
  `putBlob` / `fetchBlob` hooks to route through the admin RPCs
- `PersonalCanvasWorkspace` reuses `CanvasBuilder`, `CanvasEditor`,
  and `VisualCanvasEditing` from web-common for parity with Rill
  Developer's visual editor (add widget, resize, inspector panel,
  code/visual toggle, save-as-default)
- `WorkspaceHeader` gains a `showBreadcrumbs` prop so cloud hosts can
  hide the file-tree breadcrumbs that only make sense locally
- New project home section lists the caller's personal canvases with
  a "create from blank or copy" dialog
- "Done editing" flushes pending edits, invalidates the canvas
  resource cache, and returns to the preview

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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