Skip to content

Instance user management and image zoom#240

Open
danciaclara wants to merge 3 commits intomasterfrom
God-mode-intance-management
Open

Instance user management and image zoom#240
danciaclara wants to merge 3 commits intomasterfrom
God-mode-intance-management

Conversation

@danciaclara
Copy link
Collaborator

@danciaclara danciaclara commented Mar 10, 2026

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Screenshots and Media (if applicable)

Test Scenarios

References

Summary by CodeRabbit

  • New Features

    • Instance user management docs and navigation entry added.
    • Image zoom / lightbox behaviour enabled across documentation.
  • Documentation

    • New guide for managing instance users (viewing, inviting, access control).
    • Many docs updated to use hero-sized image variants for improved visuals.
  • Style

    • Enhanced hero image styling with responsive variants and dark-mode tweaks.
    • Mobile-friendly image layouts introduced.

@vercel
Copy link

vercel bot commented Mar 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
developer-docs Ready Ready Preview, Comment Mar 12, 2026 9:08am

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 2026

📝 Walkthrough

Walkthrough

This PR adds medium-zoom lightbox support with route-aware initialization, extensive hero image styling, updates many documentation image links to use #hero anchors, adds a new "Manage users" doc page, and introduces the medium-zoom dependency.

Changes

Cohort / File(s) Summary
VitePress config & theme
docs/.vitepress/config.mts, docs/.vitepress/theme/index.ts
Added "Manage users" nav entry; introduced setup() on the Theme to initialize and reinitialize medium-zoom, watch route changes, and handle hash/tab activation lifecycle.
Styling
docs/.vitepress/theme/style.css
Added extensive hero image styles (variants: hero, hero-tl/tr/bl/br), mobile image containers, dark-mode adjustments, zoom cursor, and medium-zoom overlay/image z-index rules.
Image reference updates (self-hosting docs)
docs/self-hosting/govern/advanced-search.md, docs/self-hosting/govern/instance-admin.md, docs/self-hosting/govern/integrations/github.md, docs/self-hosting/govern/integrations/gitlab.md, docs/self-hosting/govern/integrations/slack.md, docs/self-hosting/govern/ldap.md, docs/self-hosting/govern/oidc-sso.md, docs/self-hosting/govern/saml-sso.md, docs/self-hosting/manage/..., docs/self-hosting/methods/airgapped-requirements.md, docs/self-hosting/plane-architecture.md, docs/self-hosting/telemetry.md
Updated numerous image URLs to append #hero fragment for consistent hero-image targets; instance-admin.md reorganized to add Email, Authentication, and User management content.
New docs page
docs/self-hosting/manage/manage-instance-users.md
Added new page describing viewing users, inviting instance admins, managing access, and user statuses with images and warnings.
Dependencies
package.json
Added medium-zoom dependency ("medium-zoom": "^1.1.0").

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Browser
    participant Router
    participant Theme as VitePress Theme
    participant Zoom as medium-zoom
    participant DOM as Document

    User->>Browser: navigate / click link
    Browser->>Router: route change
    Router->>Theme: onAfterRouteChanged
    Theme->>Theme: if not mounted -> mount tasks
    Theme->>Zoom: initialize zoom on images
    Zoom->>DOM: attach listeners / overlay elements

    alt subsequent route change
        Router->>Theme: route change
        Theme->>Theme: watch triggers
        Theme->>Zoom: reinitialize/refresh zoom on new images
        Theme->>DOM: delay hash/tab handling until tabs render
    end

    User->>Browser: click image or change hash
    Browser->>Zoom: open lightbox / hash triggers
    Zoom->>DOM: show overlay and zoomed image
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 I nibbled docs, found images bright,
Pushed a little zoom to make them right,
Anchors with #hero and styles so fair,
Hop—click—zoom! A rabbit's celebratory stare. 📸✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the two main changes in the pull request: adding instance user management documentation and implementing image zoom functionality.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch God-mode-intance-management

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
docs/.vitepress/theme/index.ts (1)

1-175: ⚠️ Potential issue | 🟡 Minor

Prettier formatting must be fixed.

The CI pipeline reports formatting issues. Run prettier --write on this file before merging.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/.vitepress/theme/index.ts` around lines 1 - 175, Prettier is flagging
formatting issues in this module; run prettier --write on the file and commit
the resulting changes so the CI passes. Focus on reformatting the exported theme
object and surrounding helpers (e.g., DefaultTheme import and export block,
functions updateLayout, handleTabHash, setupTabHashUpdates,
updateHashOnTabClick, and initZoom/onMounted/watch usage) so spacing, trailing
commas, and indentation match the project's Prettier config, then stage and push
the formatted file.
docs/self-hosting/govern/instance-admin.md (2)

1-143: ⚠️ Potential issue | 🟡 Minor

Prettier formatting must be fixed.

The CI pipeline reports formatting issues. Run prettier --write on this file before merging.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/govern/instance-admin.md` around lines 1 - 143, The file
"Instance admin and God mode" has CI-prettier formatting errors; run Prettier to
fix them by executing prettier --write on the document, then stage and commit
the updated file; specifically ensure the frontmatter, headings (e.g., "Instance
admin and God mode"), markdown lists, admonition blocks (::: info / ::: tip /
::: details), and image links (e.g.,
/images/instance-admin/god-mode-general.webp#hero) are properly formatted by
Prettier so the pipeline passes.

45-108: ⚠️ Potential issue | 🟡 Minor

Images missing alt text for accessibility.

Several images lack alternate text, which impacts accessibility for screen reader users and is flagged by markdownlint. Add descriptive alt text to each image.

📝 Proposed fixes
-![](/images/instance-admin/god-mode-general.webp#hero)
+![General settings page in God Mode](/images/instance-admin/god-mode-general.webp#hero)
-![](/images/instance-admin/god-mode-email.webp#hero)
+![Email configuration in God Mode](/images/instance-admin/god-mode-email.webp#hero)
-![](/images/instance-admin/god-mode-authentication.webp#hero)
+![Authentication settings in God Mode](/images/instance-admin/god-mode-authentication.webp#hero)
-![](/images/instance-admin/god-mode-workspaces.webp#hero)
+![Workspaces management in God Mode](/images/instance-admin/god-mode-workspaces.webp#hero)
-![](/images/instance-admin/god-mode-images.webp#hero)
+![Image library configuration in God Mode](/images/instance-admin/god-mode-images.webp#hero)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/govern/instance-admin.md` around lines 45 - 108, The images
in this markdown (the img markdown lines under the "Email", "Authentication",
"Workspaces", "User management", and "Images in Plane" sections) are missing alt
text; update each image markdown (e.g. lines like
![](/images/instance-admin/god-mode-general.webp#hero)) to include concise,
descriptive alt text matching the section (for example "God Mode overview",
"Email settings", "Authentication settings", "Workspaces management", "User
management panel", "Image settings") and ensure alt text describes the image
purpose (avoid purely decorative wording) so screen readers and markdownlint
pass.
docs/.vitepress/theme/style.css (1)

1-860: ⚠️ Potential issue | 🟡 Minor

Prettier formatting must be fixed.

The CI pipeline reports formatting issues. Run prettier --write on this file before merging.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/.vitepress/theme/style.css` around lines 1 - 860, The file has Prettier
formatting errors; run Prettier to fix style inconsistencies (e.g., the top
`@import` lines like `@import` "tailwindcss/theme" layer(theme); and selectors such
as .api-endpoint-badge, .card-link, and .medium-zoom-image--opened) by running
prettier --write on this CSS (or via your editor/CI pre-commit hook) and commit
the reformatted docs/.vitepress/theme/style.css so the CI formatting check
passes.
🧹 Nitpick comments (3)
docs/.vitepress/theme/style.css (1)

672-800: Hero image styles lack dark mode support.

The hero image container backgrounds use hardcoded light colors (#f1f3f3, #eaebeb) without corresponding .dark variants. This may cause poor contrast or visual inconsistency in dark mode.

♻️ Proposed dark mode additions

Add after the light mode hero styles:

/* Dark mode hero image styles */
.dark .vp-doc p:has(> img[src$="#hero"]),
.dark article p:has(> img[src$="#hero"]),
.dark .vp-doc p:has(> img[src$="#hero-tl"]),
.dark article p:has(> img[src$="#hero-tl"]),
.dark .vp-doc p:has(> img[src$="#hero-tr"]),
.dark article p:has(> img[src$="#hero-tr"]),
.dark .vp-doc p:has(> img[src$="#hero-bl"]),
.dark article p:has(> img[src$="#hero-bl"]),
.dark .vp-doc p:has(> img[src$="#hero-br"]),
.dark article p:has(> img[src$="#hero-br"]) {
  background: `#1f1f1f`;
}

.dark .vp-doc img[src$="#hero"],
.dark article img[src$="#hero"],
.dark .vp-doc img[src$="#hero-tl"],
.dark article img[src$="#hero-tl"],
.dark .vp-doc img[src$="#hero-tr"],
.dark article img[src$="#hero-tr"],
.dark .vp-doc img[src$="#hero-bl"],
.dark article img[src$="#hero-bl"],
.dark .vp-doc img[src$="#hero-br"],
.dark article img[src$="#hero-br"] {
  border-color: `#2a2a2a`;
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/.vitepress/theme/style.css` around lines 672 - 800, Hero image styles
use hardcoded light colors causing poor dark-mode contrast; add corresponding
.dark variants for the hero selectors (e.g. .vp-doc p:has(> img[src$="#hero"]),
article p:has(> img[src$="#hero"]), and the `#hero-tl/`#hero-tr/#hero-bl/#hero-br
variants) to set a dark background (e.g. `#1f1f1f`) and update the image
border-color for dark mode (e.g. `#2a2a2a`) so the hero container and image
borders display correctly in .dark theme.
docs/.vitepress/config.mts (1)

141-155: URL fragments in Open Graph images may be ignored.

The #hero fragment appended to og:image and twitter:image URLs will likely be stripped by social platforms when fetching the preview image. URL fragments are client-side only and not sent to servers.

If the fragment is intended for internal documentation styling purposes, consider removing it from the meta tags since it has no effect on social previews.

♻️ Proposed fix
-      ["meta", { property: "og:image", content: "https://media.docs.plane.so/logo/og-docs.webp#hero" }],
+      ["meta", { property: "og:image", content: "https://media.docs.plane.so/logo/og-docs.webp" }],
-      ["meta", { name: "twitter:image", content: "https://media.docs.plane.so/logo/og-docs.webp#hero" }],
+      ["meta", { name: "twitter:image", content: "https://media.docs.plane.so/logo/og-docs.webp" }],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/.vitepress/config.mts` around lines 141 - 155, Remove the URL fragment
"#hero" from the Open Graph and Twitter image meta entries so the image URLs are
server-visible; update the ["meta", { property: "og:image", content:
"https://media.docs.plane.so/logo/og-docs.webp#hero" }] entry and the ["meta", {
name: "twitter:image", content:
"https://media.docs.plane.so/logo/og-docs.webp#hero" }] entry to use
"https://media.docs.plane.so/logo/og-docs.webp" (verify the image is reachable
at that URL and update any related references if necessary).
docs/.vitepress/theme/index.ts (1)

135-161: Missing cleanup for hashchange event listener.

The hashchange listener added in onMounted is never removed. While this may not cause issues in production (single page load), it could lead to duplicate listeners during HMR in development.

♻️ Proposed fix using onUnmounted
+import { onMounted, onUnmounted, watch, nextTick, h } from "vue";
-import { onMounted, watch, nextTick, h } from "vue";

Then in setup():

+    const handleHashChange = () => {
+      nextTick(handleTabHash);
+    };
+
     onMounted(() => {
       initZoom();

       // Delay tab hash handling to ensure tabs are rendered
       setTimeout(() => {
         handleTabHash();
         setupTabHashUpdates();
       }, 100);

       // Listen for hash changes
-      window.addEventListener("hashchange", () => {
-        nextTick(handleTabHash);
-      });
+      window.addEventListener("hashchange", handleHashChange);
     });
+
+    onUnmounted(() => {
+      window.removeEventListener("hashchange", handleHashChange);
+      zoom?.detach();
+    });
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/.vitepress/theme/index.ts` around lines 135 - 161, The hashchange
listener added inside setup()’s onMounted is never removed; add an onUnmounted
callback that removes the same window "hashchange" listener (the one that calls
nextTick(handleTabHash)) and also detach the mediumZoom instance
(zoom?.detach()) and cancel any pending timers created for tab hash handling;
locate setup(), onMounted, nextTick(handleTabHash), handleTabHash,
setupTabHashUpdates, and the zoom variable to implement the cleanup so
HMR/development doesn't accumulate duplicate listeners.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/self-hosting/govern/advanced-search.md`:
- Line 267: Replace the misspelled alt text "OpenSeach" with "OpenSearch" in the
image markdown reference (the string `![OpenSeach
flow](/images/open-search/opensearch-flow.webp#hero)`), updating the alt text to
`![OpenSearch flow]...` so the image alt is correct wherever that markdown
appears.

In `@docs/self-hosting/manage/manage-instance-users.md`:
- Around line 1-4: The frontmatter block is missing the required keywords field;
update the YAML frontmatter at the top of the document (the --- block containing
title and description) to include a keywords field (e.g., keywords: ["user
management","instance users","admins","God Mode"]) so the frontmatter contains
title, description, and keywords; ensure the keywords value is an array or
comma-separated string per project convention.
- Around line 1-61: Run Prettier on this Markdown file to fix CI formatting
errors: run `prettier --write` against the document that contains the
frontmatter (title/description) and headings like "Manage instance users" and
"Invite an instance admin"; ensure the YAML frontmatter remains valid, headings
and list indentations are normalized, and image/link alt/title syntax (e.g.,
User management image and invite-instance-admin image) is formatted consistently
before committing.

In `@docs/self-hosting/manage/upgrade-plane.md`:
- Line 23: The image in upgrade-plane.md currently references an external URL
("https://media.docs.plane.so/product/check-version.webp#hero#center") and uses
an unusual double-fragment "#hero#center"; move the file into the
docs/.vitepress/public/images/ directory, update the markdown image reference to
the absolute local path (/images/check-version.webp) and remove or normalize the
fragment to the intended pattern (e.g., "#hero" or "#center") so it matches
other images in this document and the project's image path guideline.

---

Outside diff comments:
In `@docs/.vitepress/theme/index.ts`:
- Around line 1-175: Prettier is flagging formatting issues in this module; run
prettier --write on the file and commit the resulting changes so the CI passes.
Focus on reformatting the exported theme object and surrounding helpers (e.g.,
DefaultTheme import and export block, functions updateLayout, handleTabHash,
setupTabHashUpdates, updateHashOnTabClick, and initZoom/onMounted/watch usage)
so spacing, trailing commas, and indentation match the project's Prettier
config, then stage and push the formatted file.

In `@docs/.vitepress/theme/style.css`:
- Around line 1-860: The file has Prettier formatting errors; run Prettier to
fix style inconsistencies (e.g., the top `@import` lines like `@import`
"tailwindcss/theme" layer(theme); and selectors such as .api-endpoint-badge,
.card-link, and .medium-zoom-image--opened) by running prettier --write on this
CSS (or via your editor/CI pre-commit hook) and commit the reformatted
docs/.vitepress/theme/style.css so the CI formatting check passes.

In `@docs/self-hosting/govern/instance-admin.md`:
- Around line 1-143: The file "Instance admin and God mode" has CI-prettier
formatting errors; run Prettier to fix them by executing prettier --write on the
document, then stage and commit the updated file; specifically ensure the
frontmatter, headings (e.g., "Instance admin and God mode"), markdown lists,
admonition blocks (::: info / ::: tip / ::: details), and image links (e.g.,
/images/instance-admin/god-mode-general.webp#hero) are properly formatted by
Prettier so the pipeline passes.
- Around line 45-108: The images in this markdown (the img markdown lines under
the "Email", "Authentication", "Workspaces", "User management", and "Images in
Plane" sections) are missing alt text; update each image markdown (e.g. lines
like ![](/images/instance-admin/god-mode-general.webp#hero)) to include concise,
descriptive alt text matching the section (for example "God Mode overview",
"Email settings", "Authentication settings", "Workspaces management", "User
management panel", "Image settings") and ensure alt text describes the image
purpose (avoid purely decorative wording) so screen readers and markdownlint
pass.

---

Nitpick comments:
In `@docs/.vitepress/config.mts`:
- Around line 141-155: Remove the URL fragment "#hero" from the Open Graph and
Twitter image meta entries so the image URLs are server-visible; update the
["meta", { property: "og:image", content:
"https://media.docs.plane.so/logo/og-docs.webp#hero" }] entry and the ["meta", {
name: "twitter:image", content:
"https://media.docs.plane.so/logo/og-docs.webp#hero" }] entry to use
"https://media.docs.plane.so/logo/og-docs.webp" (verify the image is reachable
at that URL and update any related references if necessary).

In `@docs/.vitepress/theme/index.ts`:
- Around line 135-161: The hashchange listener added inside setup()’s onMounted
is never removed; add an onUnmounted callback that removes the same window
"hashchange" listener (the one that calls nextTick(handleTabHash)) and also
detach the mediumZoom instance (zoom?.detach()) and cancel any pending timers
created for tab hash handling; locate setup(), onMounted,
nextTick(handleTabHash), handleTabHash, setupTabHashUpdates, and the zoom
variable to implement the cleanup so HMR/development doesn't accumulate
duplicate listeners.

In `@docs/.vitepress/theme/style.css`:
- Around line 672-800: Hero image styles use hardcoded light colors causing poor
dark-mode contrast; add corresponding .dark variants for the hero selectors
(e.g. .vp-doc p:has(> img[src$="#hero"]), article p:has(> img[src$="#hero"]),
and the `#hero-tl/`#hero-tr/#hero-bl/#hero-br variants) to set a dark background
(e.g. `#1f1f1f`) and update the image border-color for dark mode (e.g. `#2a2a2a`) so
the hero container and image borders display correctly in .dark theme.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f9997ad7-d6a4-47f7-b4e5-7a7c0b5a6096

📥 Commits

Reviewing files that changed from the base of the PR and between 224c2c0 and a8aa690.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (28)
  • docs/.vitepress/config.mts
  • docs/.vitepress/theme/index.ts
  • docs/.vitepress/theme/style.css
  • docs/public/images/instance-admin/god-mode-authentication.webp
  • docs/public/images/instance-admin/god-mode-email.webp
  • docs/public/images/instance-admin/god-mode-general.webp
  • docs/public/images/instance-admin/god-mode-workspaces.webp
  • docs/public/images/instance-admin/invite-instance-admin.webp
  • docs/public/images/instance-admin/user-actions.webp
  • docs/public/images/instance-admin/user-management.webp
  • docs/self-hosting/govern/advanced-search.md
  • docs/self-hosting/govern/instance-admin.md
  • docs/self-hosting/govern/integrations/github.md
  • docs/self-hosting/govern/integrations/gitlab.md
  • docs/self-hosting/govern/integrations/slack.md
  • docs/self-hosting/govern/ldap.md
  • docs/self-hosting/govern/oidc-sso.md
  • docs/self-hosting/govern/saml-sso.md
  • docs/self-hosting/manage/manage-instance-users.md
  • docs/self-hosting/manage/manage-licenses/activate-airgapped-enterprise.md
  • docs/self-hosting/manage/manage-licenses/activate-airgapped.md
  • docs/self-hosting/manage/manage-licenses/activate-enterprise.md
  • docs/self-hosting/manage/upgrade-plane.md
  • docs/self-hosting/manage/view-logs.md
  • docs/self-hosting/methods/airgapped-requirements.md
  • docs/self-hosting/plane-architecture.md
  • docs/self-hosting/telemetry.md
  • package.json

### The complete flow

![OpenSeach flow](/images/open-search/opensearch-flow.webp)
![OpenSeach flow](/images/open-search/opensearch-flow.webp#hero)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Typo in image alt text: "OpenSeach" should be "OpenSearch".

📝 Proposed fix
-![OpenSeach flow](/images/open-search/opensearch-flow.webp#hero)
+![OpenSearch flow](/images/open-search/opensearch-flow.webp#hero)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
![OpenSeach flow](/images/open-search/opensearch-flow.webp#hero)
![OpenSearch flow](/images/open-search/opensearch-flow.webp#hero)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/govern/advanced-search.md` at line 267, Replace the
misspelled alt text "OpenSeach" with "OpenSearch" in the image markdown
reference (the string `![OpenSeach
flow](/images/open-search/opensearch-flow.webp#hero)`), updating the alt text to
`![OpenSearch flow]...` so the image alt is correct wherever that markdown
appears.

Comment on lines +1 to +4
---
title: User management
description: Manage instance users, invite instance admins, and control access to God Mode.
---
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Missing keywords field in frontmatter.

As per coding guidelines, every markdown page requires frontmatter with title, description, and keywords fields.

📝 Proposed fix
 ---
 title: User management
 description: Manage instance users, invite instance admins, and control access to God Mode.
+keywords: plane user management, instance admin, god mode, enterprise, self-hosting admin
 ---

As per coding guidelines: "Every markdown page requires frontmatter with title, description, and keywords fields"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
title: User management
description: Manage instance users, invite instance admins, and control access to God Mode.
---
---
title: User management
description: Manage instance users, invite instance admins, and control access to God Mode.
keywords: plane user management, instance admin, god mode, enterprise, self-hosting admin
---
🧰 Tools
🪛 GitHub Actions: CI

[warning] 1-1: Prettier formatting issues found. Run 'prettier --write' to fix this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/manage/manage-instance-users.md` around lines 1 - 4, The
frontmatter block is missing the required keywords field; update the YAML
frontmatter at the top of the document (the --- block containing title and
description) to include a keywords field (e.g., keywords: ["user
management","instance users","admins","God Mode"]) so the frontmatter contains
title, description, and keywords; ensure the keywords value is an array or
comma-separated string per project convention.

Comment on lines +1 to +61
---
title: User management
description: Manage instance users, invite instance admins, and control access to God Mode.
---

# Manage instance users <Badge type="warning" text="Enterprise" />

User management lets instance admins view all users across the instance and manage their access. This is separate from workspace-level member management.

## View users

Go to **God Mode → User Management** to see all users in the instance.

![User management](/images/instance-admin/user-management.webp#hero)

The table displays:

| Column | Description |
|--------|-------------|
| Full Name | User's full name |
| Display Name | User's display name |
| Email | User's email address |
| Account Type | User or Instance Admin |
| Status | Active or Suspended |
| Joining Date | When the user joined |

Use the search bar to find specific users.

## Invite an instance admin

Instance admins have access to God Mode but are not automatically added to any workspace.

1. Click **Invite members**.
2. Enter the user's email and password.
3. Optionally enable:
- **Generate random password** — auto-create a password
- **Prompt user to change password after onboarding** — require password reset on first login
4. Click **Invite**.

![Invite instance admin](/images/instance-admin/invite-instance-admin.webp#hero)

:::warning
No invitation email is sent. You must share the credentials with the user manually.
:::

## Manage user access

Click **…** next to any user to:

- **Grant admin access** — promote a user to Instance Admin.
- **Remove admin access** — downgrade an Instance Admin to a regular user (loses God Mode access).
- **Remove** — remove the user from the instance entirely.

![User actions](/images/instance-admin/user-actions.webp#hero)

## User status

| Status | Description |
|--------|-------------|
| Active | User can access the instance |
| Suspended | User account exists but cannot access the instance | No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Prettier formatting must be fixed.

The CI pipeline reports formatting issues. Run prettier --write on this file before merging.

🧰 Tools
🪛 GitHub Actions: CI

[warning] 1-1: Prettier formatting issues found. Run 'prettier --write' to fix this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/manage/manage-instance-users.md` around lines 1 - 61, Run
Prettier on this Markdown file to fix CI formatting errors: run `prettier
--write` against the document that contains the frontmatter (title/description)
and headings like "Manage instance users" and "Invite an instance admin"; ensure
the YAML frontmatter remains valid, headings and list indentations are
normalized, and image/link alt/title syntax (e.g., User management image and
invite-instance-admin image) is formatted consistently before committing.

You can quickly check your Plane version by clicking the **?** icon on the sidebar.

![Check version number](https://media.docs.plane.so/product/check-version.webp#center)
![Check version number](https://media.docs.plane.so/product/check-version.webp#hero#center)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Inconsistent image path: external URL instead of local /images/... path.

This image uses an external URL (https://media.docs.plane.so/...) while the coding guidelines specify storing images in docs/.vitepress/public/images/ and referencing them with absolute /images/... paths. Other images in this file (e.g., line 89) follow the local path convention.

Consider moving this image to the local images directory for consistency.

Additionally, the #hero#center double-fragment is unusual—verify this is the intended pattern for combining hero styling with centering.

As per coding guidelines: "Store images in docs/.vitepress/public/images/ and reference them with absolute paths using /images/... notation"

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/manage/upgrade-plane.md` at line 23, The image in
upgrade-plane.md currently references an external URL
("https://media.docs.plane.so/product/check-version.webp#hero#center") and uses
an unusual double-fragment "#hero#center"; move the file into the
docs/.vitepress/public/images/ directory, update the markdown image reference to
the absolute local path (/images/check-version.webp) and remove or normalize the
fragment to the intended pattern (e.g., "#hero" or "#center") so it matches
other images in this document and the project's image path guideline.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/self-hosting/govern/instance-admin.md (1)

1-150: ⚠️ Potential issue | 🔴 Critical

Fix Prettier formatting issues before merge.

The CI pipeline detected Prettier formatting violations in this file. Per coding guidelines, all markdown files must pass Prettier checks with the project's configuration (120-character line width, 2-space indent, etc.).

Run the following command to fix formatting:

prettier --write docs/self-hosting/govern/instance-admin.md
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/govern/instance-admin.md` around lines 1 - 150, The file
"Instance admin and God mode" (frontmatter title) has Prettier formatting
violations; run the project's Prettier with the repo config (e.g., prettier
--write docs/self-hosting/govern/instance-admin.md) or via your editor/IDE to
reformat to the 120-char line width and 2-space indent, then stage and commit
the updated docs/self-hosting/govern/instance-admin.md so CI passes.
🧹 Nitpick comments (1)
docs/self-hosting/govern/instance-admin.md (1)

98-98: Consider using "Revoke" for clarity.

For admin access control, "revoke" is more precise than "remove" when referring to removing permissions rather than deleting the user entirely.

✍️ Suggested refinement
-- Grant or remove admin access for existing users
+- Grant or revoke admin access for existing users
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/govern/instance-admin.md` at line 98, Change the heading
text "Grant or remove admin access for existing users" to use "revoke" for
clarity—update the phrase to "Grant or revoke admin access for existing users"
wherever that exact sentence appears (e.g., the heading string "Grant or remove
admin access for existing users") so it clearly denotes permission removal
rather than user deletion.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@docs/self-hosting/govern/instance-admin.md`:
- Around line 1-150: The file "Instance admin and God mode" (frontmatter title)
has Prettier formatting violations; run the project's Prettier with the repo
config (e.g., prettier --write docs/self-hosting/govern/instance-admin.md) or
via your editor/IDE to reformat to the 120-char line width and 2-space indent,
then stage and commit the updated docs/self-hosting/govern/instance-admin.md so
CI passes.

---

Nitpick comments:
In `@docs/self-hosting/govern/instance-admin.md`:
- Line 98: Change the heading text "Grant or remove admin access for existing
users" to use "revoke" for clarity—update the phrase to "Grant or revoke admin
access for existing users" wherever that exact sentence appears (e.g., the
heading string "Grant or remove admin access for existing users") so it clearly
denotes permission removal rather than user deletion.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6a6c959a-af90-4e95-900b-af58ba7f638f

📥 Commits

Reviewing files that changed from the base of the PR and between a8aa690 and 004d820.

📒 Files selected for processing (3)
  • docs/public/images/instance-admin/user-management.webp
  • docs/self-hosting/govern/instance-admin.md
  • docs/self-hosting/manage/manage-instance-users.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/self-hosting/manage/manage-instance-users.md

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