Skip to content

Feature: Isolate workflows in multiuser mode#8944

Open
lstein wants to merge 8 commits intoinvoke-ai:mainfrom
lstein:lstein/feature/workflow-isolation-in-multiuser-mode
Open

Feature: Isolate workflows in multiuser mode#8944
lstein wants to merge 8 commits intoinvoke-ai:mainfrom
lstein:lstein/feature/workflow-isolation-in-multiuser-mode

Conversation

@lstein
Copy link
Collaborator

@lstein lstein commented Mar 6, 2026

Summary

This PR polishes off multiuser support in two ways:

  • It isolates each user's workflows from the others'. Each user has their own workflow library that is only accessible to them. However, any workflow can be designated Shared, in which case it is readable by all users but only writable by the owner.
  • The splash screens that the user sees at startup time have been customized such that non-admin users are not prompted to install models. Instead they are referred to the first administrator to install models and make other global settings.

In addition, this PR corrects a bug that allowed any user to run "sync models" and remove orphaned models. Only the administrator is allowed to do this.

Related Issues / Discussions

QA Instructions

Workflow Isolation

  1. Run InvokeAI in multiuser mode multiuser: true and create two users: user1 and user2. If the user interface for managing users isn't yet merged in, use the invoke-useradd CLI.
  2. Log in as user1 and create two workflows: user1 workflow shared and user1 workflow private
  3. When you save the shared workflow, check the "shared workflow" box. Leave it unchecked for the private workflow.
  4. Go to the workflow library. Confirm that you see both workflows in the "Your Workflows" section, and that "user1 workflow shared" bears the green "SHARED" emblem.
  5. Now check the "Shared Workflows" section, and confirm that you see the shared workflow only.
  6. Log out and log back in as user2
  7. Open the workflow library and confirm that "user1 workflow shared" is present in the Shared Workflows section and that "Your Workflows" is empty.
  8. Open "user 1 workflow shared" and confirm that you can edit it, but can't save it (you can "Save As" however).

Splash Screens

I don't think this really needs to be tested, but if you wish to do so, you should start with a fresh root directory that has no models.

  1. Create the admin user and a non-admin user.
  2. Log in as the admin user and confirm that the splash screen that says "start by installing models" is still there, and that when you try to select a model you see a similar message.
  3. Log out and log in as the non-admin user. Now check the splash message. Instead of asking you to install a model, it instructs you to contact the administrator to install models. To avoid ambiguity, it gives the administrator's email address used at registration time.
  4. There will be similar messages when you try to select a model, or when you go to the upscaling tab and necessary models are missing.

Sync Models button

Confirm that as a non-admin user, the Models page does not show the "Sync Models" button, and that this button reappears when logged in as an administrator.

Merge Plan

Simple merge.

Checklist

  • The PR has a short but descriptive title, suitable for a changelog
  • Tests added / updated (if applicable)
  • ❗Changes to a redux slice have a corresponding migration
  • Documentation added / updated (if applicable)
  • Updated What's New copy (if doing a release after this PR)

Copilot AI and others added 4 commits March 5, 2026 20:09
* Add per-user workflow isolation: migration 28, service updates, router ownership checks, is_public endpoint, schema regeneration, frontend UI

Co-authored-by: lstein <111189+lstein@users.noreply.github.com>

* feat: add shared workflow checkbox to Details panel, auto-tag, gate edit/delete, fix tests

Co-authored-by: lstein <111189+lstein@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
…mode (#116)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
@github-actions github-actions bot added api python PRs that change python files services PRs that change app services frontend PRs that change frontend files python-tests PRs that change python tests labels Mar 6, 2026
… mode (#120)

* Disable Save when editing another user's shared workflow in multiuser mode

Co-authored-by: lstein <111189+lstein@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api frontend PRs that change frontend files python PRs that change python files python-tests PRs that change python tests services PRs that change app services v6.13.x

Projects

Status: 6.13.x

Development

Successfully merging this pull request may close these issues.

3 participants