Skip to main content
8Space uses Supabase PostgREST and RPC functions to manage projects, tenants, and memberships.

Types

packages/app/src/domain/types.ts

List Tenants

Query tenants for the current user.
packages/app/src/domain/repositories/supabase.ts

Query Parameters

string
required
Filter by user UUID using eq.<uuid>
string
PostgREST select clause. Use embedded resources with !inner for joins.

Response

TenantRole
User’s role in the tenant (owner, admin, member)
object
Embedded tenant object

Create Tenant with Owner

Create a new tenant and assign the current user as owner using RPC.
packages/app/src/domain/repositories/supabase.ts

Request Body

string
required
Tenant name
string | null
Preferred URL slug (auto-generated if null)

Response

Returns the created tenant row with the current user as owner.

List Projects

Query projects for the current user within a tenant.
packages/app/src/domain/repositories/supabase.ts

Query Parameters

string
required
User UUID filter: eq.<uuid>
string
Project UUID filter: eq.<uuid>
string
PostgREST select clause with embedded resources

Response

ProjectRole
User’s role in the project
object
Embedded project object

Create Project with Defaults

Create a new project with default workflow columns using RPC.
packages/app/src/domain/repositories/supabase.ts

Request Body

string
required
Tenant slug identifier
string
required
Project name
string | null
Project description

Response

Returns the created project UUID as a string.

Get Project Members

List all members of a project with their profiles.
packages/app/src/domain/repositories/supabase.ts

Query Parameters

string
required
Filter by project UUID: eq.<uuid>
string
Include embedded profile data

Response

Returns array of project member objects.
string
Project UUID
string
User UUID
ProjectRole
Member role in project
object
User profile data

Update Project Settings

Update project name and description.
packages/app/src/domain/repositories/supabase.ts

Query Parameters

string
required
Project UUID filter: eq.<uuid>

Request Body

string
Updated project name
string | null
Updated project description

Response

Returns array with updated project row(s).

Get Current Project Role

Query the current user’s role in a project using RPC.
packages/app/src/domain/repositories/supabase.ts

Request Body

string
required
Project UUID

Response

Returns the user’s role as a string: owner, editor, or viewer.

React Hook Usage

packages/app/src/hooks/use-project-data.ts