Skip to main content

Workspaces Platform

Complete guide to the Burdenoff Workspaces platform.

Overview

Workspaces is the central hub for all Burdenoff products, providing:

  • Unified authentication
  • Tenant management
  • Product access control
  • Billing and subscriptions
  • User management

URLs

Architecture

Repository Structure

workspaces/
├── workspaces-frontend/ # React frontend
├── workspaces-backend/ # Backend API
├── workspaces-state/ # Database & stateful services
├── workspaces-docs/ # Documentation
├── workspaces-website/ # Marketing site
├── workspaces-community/ # Community features
├── workspaces-sre/ # SRE tools
├── workspaces-ai-agent/ # AI assistant
├── workspaces-mcp/ # MCP server
├── workspaces-meta/ # Branding
├── workspaces-sdk-node/ # Node SDK
├── workspaces-sdk-python/ # Python SDK
├── workspaces-content/ # Content
├── workspaces-cli/ # CLI tool
├── workspaces-cloudops/ # Infrastructure
├── workspaces-browser-extension/
├── workspaces-code-extension/ # VSCode extension
└── workspaces-specs/ # Specifications

Features

1. Authentication

  • Email/password login
  • Social login (Google, GitHub)
  • Multi-factor authentication
  • Single sign-on (SSO)

2. Workspace Management

  • Create/manage workspaces
  • Invite team members
  • Role-based permissions
  • Resource organization

3. Product Access

  • Access to all 31+ products
  • Unified navigation
  • Single billing
  • Shared user profile

4. Billing

  • Subscription management
  • Usage tracking
  • Invoice generation
  • Payment processing

5. Settings

  • Profile management
  • Team settings
  • Integration configuration
  • Notification preferences

User Workflows

Creating a Workspace

  1. Sign up / Login
  2. Click "Create Workspace"
  3. Enter workspace details
  4. Choose subscription plan
  5. Invite team members
  6. Access products

Accessing Products

User → Login to Workspaces

Select Workspace

Choose Product

JWT with workspace context

Access Product

Managing Team

  1. Navigate to Team settings
  2. Click "Invite Members"
  3. Enter email addresses
  4. Assign roles
  5. Send invitations

API Endpoints

Authentication

POST /auth/login
POST /auth/register
POST /auth/logout
POST /auth/refresh
POST /auth/forgot-password
POST /auth/reset-password

Workspaces

GET    /workspaces
POST /workspaces
GET /workspaces/:id
PATCH /workspaces/:id
DELETE /workspaces/:id

Members

GET    /workspaces/:id/members
POST /workspaces/:id/members
DELETE /workspaces/:id/members/:userId
PATCH /workspaces/:id/members/:userId/role

Products

GET /products
GET /products/:id
GET /workspaces/:id/products
POST /workspaces/:id/products/:productId/activate

Database Schema

Workspaces

CREATE TABLE workspaces (
id UUID PRIMARY KEY,
tenant_id UUID REFERENCES tenants(id),
name TEXT NOT NULL,
slug TEXT UNIQUE NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);

Workspace Members

CREATE TABLE workspace_members (
id UUID PRIMARY KEY,
workspace_id UUID REFERENCES workspaces(id),
user_id UUID REFERENCES users(id),
role TEXT NOT NULL,
joined_at TIMESTAMPTZ DEFAULT NOW(),
UNIQUE(workspace_id, user_id)
);

Product Access

CREATE TABLE workspace_products (
id UUID PRIMARY KEY,
workspace_id UUID REFERENCES workspaces(id),
product_id UUID REFERENCES products(id),
status TEXT NOT NULL DEFAULT 'active',
activated_at TIMESTAMPTZ DEFAULT NOW(),
UNIQUE(workspace_id, product_id)
);

Integration with Products

Product Registration

# In product backend
async def validate_workspace_access(
workspace_id: str,
product_id: str
):
response = await workspaces_api.check_access(
workspace_id=workspace_id,
product_id=product_id
)
return response.has_access

JWT Token Structure

{
"sub": "user-id",
"tenant_id": "tenant-id",
"workspace_id": "workspace-id",
"email": "[email protected]",
"roles": ["owner"],
"products": ["product-1", "product-2"],
"exp": 1234567890
}

Development

Local Setup

cd workspaces/workspaces-backend
npm install
npm run dev

cd ../workspaces-frontend
npm install
npm run dev

Environment Variables

# Backend
DATABASE_URL=postgresql://...
JWT_SECRET=...
REDIS_URL=...

# Frontend
VITE_API_URL=http://localhost:4000
VITE_AUTH_DOMAIN=...

Deployment

Alpha Environment

# Deployed to alphaapp.burdenoff.com
git push origin alpha
# CI/CD automatically deploys

Production Environment

# Deployed to app.burdenoff.com
git push origin main
# Manual approval required

Monitoring

Key Metrics

  • Active workspaces
  • Daily active users
  • Product usage
  • API response times
  • Error rates

Alerts

  • High error rate
  • Slow API responses
  • Failed authentication
  • Database issues

Security

Data Protection

  • Encryption at rest
  • TLS in transit
  • Password hashing (Argon2)
  • Session management

Access Control

  • RBAC for workspaces
  • API key management
  • Rate limiting
  • Audit logging

Support

Documentation

  • User guides in workspaces-docs
  • API reference
  • Video tutorials
  • FAQ

Community

  • Community forum
  • Discord server
  • GitHub discussions
  • Support tickets

Next Steps