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
- Website: https://burdenoff.com
- Alpha App: https://alphaapp.burdenoff.com
- Production App: https://app.burdenoff.com
- Contact: [email protected]
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
- Sign up / Login
- Click "Create Workspace"
- Enter workspace details
- Choose subscription plan
- Invite team members
- Access products
Accessing Products
User → Login to Workspaces
↓
Select Workspace
↓
Choose Product
↓
JWT with workspace context
↓
Access Product
Managing Team
- Navigate to Team settings
- Click "Invite Members"
- Enter email addresses
- Assign roles
- 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