ComponentsAdmin & TeamTeam Management

Admin & Team

Team Management

Admin/team operations UI for deployed apps. Manage memberships, invite existing app users, update roles, remove non-owner members, and bootstrap the first team setup from one internal screen. In Builder preview it stays non-destructive and shows placeholder behavior.

OperationsList, invite, edit, remove

One live admin screen for member listing, invite flow, role changes, owner protection, and setup bootstrap.

AccessPermission-aware runtime UI

Backend remains the source of truth while the UI hides manage actions when currentUserPermissions?.canManageTeam is false.

TierFree

Uses appId, secureApiCall, team hooks, and backend team endpoints in deployed runtime.

What it does

Four things worth knowing

Preview mode stays safe

When isPreview is true the component shows placeholder messaging only. No live mutations run in Builder preview.

Live mode uses backend team APIs

With appId and secureApiCall present, the screen supports full CRUD through /team, /team/users, and /team/init endpoints.

Permission-aware management actions

The UI checks currentUserPermissions?.canManageTeam and hides invite, edit, and remove actions when the current runtime user cannot manage team members.

Cached loading feels faster

useTeamList, useAppUsers, and useTeamInit use per-appId in-memory caching with stale-while-refresh behavior for faster perceived loading.

Builder setup

Find it, drop it, publish

Where to find itAdd it to your admin screen

  1. Component picker → Admin & TeamTeam Management.
  2. Place it on a protected owner/manager screen.
  3. Use registry key team-management for builder placement.

Before you publishFour things to check

  1. Keep navigation admin/team-only even though backend permissions also protect actions.
  2. Configure header label and theme props in the property editor.
  3. Ensure runtime passes appId, secureApiCall, and optionally currentUserPermissions.
  4. Publish so deployed runtime can use live team hooks, invite user loading, and bootstrap flow.
Category: Admin & TeamComponent: BuilderTeamManagementRegistry key: team-managementTier: Free
Props & setup

What you can configure

CategoryPropTypeDefaultDescription
AccesscurrentUserPermissionsobjectinjectedRuntime permission object. canManageTeam controls whether invite, edit, and remove actions are shown.
ModeisPreviewbooleanruntimePreview mode shows non-destructive placeholder UI. Live mode enables backend sync.
DataappIdstringfrom runtimeApp identifier for all team endpoints.
DatasecureApiCallfunctioninjectedRequired backend API caller used by useTeamList, useAppUsers, and useTeamInit.
BehavioruseBackendDatabooleantrueHidden editor prop. Team data is expected from backend APIs in deployed runtime.
LabelsheaderTitlestring”Team Management”Main header title shown at the top of the component.
RuntimecustomWidth, customHeightnumberinjectedBuilder/runtime sizing props. Not usually edited manually.
Toggles & colours

Feature flags and styling

ControlPropTypeDefaultPurpose
ThemebackgroundColorcolor#F9FAFBOverall background color for the screen.
ThemecardBackgroundColorcolor#FFFFFFCard background color for list rows and surfaces.
ThemeprimaryColorcolor#3B82F6Primary action color for add, confirm, and active controls.
ThemedangerColorcolor#EF4444Danger color for destructive actions like member removal.
TexttitleColorcolor#1A1A1AMain title and emphasis text color.
TextsubtitleColorcolor#6B7280Secondary helper text and metadata color.
BordersborderColorcolor#E5E7EBDivider and card border color.
LayoutborderRadiusnumber12Corner radius for cards and modals.
TypographytitleFontSizenumber15Font size for member titles and section headings.
TypographysubtitleFontSizenumber13Font size for secondary metadata text.
TypographyfontFamilystringUrbanist-SemiBoldPrimary font family used across list rows, dialogs, and headers.
Tips

Common mistakes to avoid

Keep team routes protected in navigation

Backend permissions still decide access, but protected owner/manager navigation keeps the runtime experience cleaner and safer.

Use role presets consistently

When changing roles, keep preset permission mappings aligned with app/app/types/team.ts so UI labels and backend expectations stay in sync.

Refresh team state after mutations

After add, update, remove, or init flows, make sure the team hooks refresh cached data so the visible list stays current without stale members.

Sync deployment bundles after source changes

If your deployment flow mirrors source snapshots, run cd app and node collectSourceFiles.js so bundled source files stay up to date.