Back to All Channels

Shared Plugin saving for all roles

Under Review

Plugins cannot save shared project data for users whose role may not edit workspace settings, even when those users have read/write access to the project. We ask for plugin storage that anyone who can edit a project can write, shared with everyone on that project/workspace.

What happens

A plugin component calls PluginWorkspaceSettings.set(key, value) to save a project's working data. For the workspace owner it succeeds. For a user with read/write access to the project it is refused with:

your role doesn't allow this action. [permission-denied]

Steps to reproduce:

  1. Sign in as a workspace member who is not an owner or administrator but can edit takeoffs in the project.
  2. Open any plugin component that saves with PluginWorkspaceSettings.set (ours: Plan Stitch, step 6 "Save stitch").
  3. The call throws permission-denied. PluginWorkspaceSettings.get works; only writes are refused.

The error names no permission, and the command reference does not say which role setting governs plugin workspace writes, so an administrator has nothing to grant.


Why it matters

Our plugins keep each project's working data in plugin storage so the whole team works from one copy:


Plugin: What it saves per project

Plan Stitch: Where each sheet sits on the stitched plan

3D Earthwork: Existing and design surfaces, georeference, area roles

Utility: Pipe run inputs, soil settings, clash results

Footing: Job settings and footing solids for the 3D view

The other stores do not fit shared work:

  • PluginUserSettings is per user: a teammate cannot see or continue the work. We now fall back to it so nothing is lost, and tell the user it is saved for them only.
  • PluginLocalSettings and PluginLocalDB stay in one browser.
  • Projects have no writable data field for plugins.

So today an estimator who stitches the plans cannot hand the job to a teammate unless an owner or administrator does the saving.


What we are asking for

In order of preference:

  1. A project-scoped plugin store, e.g. PluginProjectSettings with the same get / set / remove / keys as the other settings stores. It lives on the project, is shared by everyone on it, and anyone who can edit takeoffs in that project can write it.
  2. Or a grantable permission for PluginWorkspaceSettings writes, such as "Plugins: save shared data" in role settings. Name it in the command reference and in the error message, so an administrator knows what to turn on.
  3. Room for real data: values of several MB, or a per-project file store plugins can read and write. A survey surface (points and triangles) runs 2–5 MB as JSON.

Either of the first two fixes our case; the first also keeps one project's data from crowding the workspace record.

Hey Justin, thanks for the feature request! It seems like if we added "PluginProjectSettings", it would solve your issues. I'll pass this request along to the dev team.

You must be logged in to post replies. If you don't have an account you can signup here.