M02

Accounts

Tenant and account boundaries with user assignment controls.

Multi-account management for organizations, subsidiaries, or entities with strict ownership boundaries, member invitation workflows, and account-level user filtering.

AccountsList.jsxtsx
import { useState } from 'react';
import { DataGridWithFilters, Avatar, Lookup, Sidebar } from '@cleen/cleen-components';
import { useAccountList } from '@/hooks/useAccountList';

export function AccountsList() {
  const [planFilter, setPlanFilter] = useState(null);
  const { rows, loading } = useAccountList({ planFilter });

  return (
    <Sidebar.Layout sidebar={<AccountFilters onPlanChange={setPlanFilter} />}>
      <DataGridWithFilters
        loading={loading}
        rows={rows}
        columns={[
          { key: 'logo',  label: '',        render: (r) => <Avatar src={r.logoUrl} name={r.name} /> },
          { key: 'name',  label: 'Account', sortable: true },
          { key: 'owner', label: 'Owner',   render: (r) => <Lookup readonly value={r.owner} /> },
          { key: 'plan',  label: 'Plan' },
          { key: 'mrr',   label: 'MRR',     align: 'right' },
        ]}
      />
    </Sidebar.Layout>
  );
}

Capabilities

  • Account profile save/update
  • Account detail retrieval
  • Account user add/remove/invite
  • Account user filters by role and integration
  • Plan save and subscription sync hooks

Benefits

  • Separates customer/company data scopes
  • Supports delegated administration
  • Scales enterprise onboarding

Flow of work

  1. 01Create or update account
  2. 02Invite or add users
  3. 03Assign roles and access
  4. 04Manage plan/subscription state
  5. 05Query account scoped data

Subfeatures

  • Account save
  • Account details
  • Account user filter
  • Account user add
  • Account user remove
  • Account user invite
  • Account plan save
  • Account subscription sync
Source surfaces (technical reference)

Internal code areas in the licensed Full-Stack codebase that back this module.

  • ApiAccount
  • ApiUtils account proc mappings
In the stack

Where it lives. What it exposes.

A quick visual of how Accounts participates across the CleenUI stack, alongside the named operations it adds to the API surface.

M02 · architecture
Frontend
React · TailwindCSS · 60+ components
Account dashboardMember inviteUser filterPlan selectorSubscription panel
API
C# Web API · production-ready · role-aware
Account CRUDUser add/removeUser invitePlan saveSubscription sync
Database
AzureSQL · 300+ tables · 700+ procedures
AccountsAccountUsersPlansSubscriptions
Async Services and Batch Jobs
WebJobs & Functions · queue-backed
Subscription sync jobAccount provisioning
All four layers ship together as the Full-Stack license. M02 blocks are highlighted.
API operations

Named operations on this surface

8
Try these in Postman
  • POSTAccount save/account/save
  • POSTAccount details/account/details
  • POSTAccount user filter/account/user-filter
  • POSTAccount user add/account/user-add
  • POSTAccount user remove/account/user-remove
  • POSTAccount user invite/account/user-invite
  • POSTAccount plan save/account/plan-save
  • POSTAccount subscription sync/account/subscription-sync

Each operation maps to an endpoint in the licensed C# Web API surface.