WorkspacesService
Manage workspaces, members, and data models.
Methods
| Method | Description |
|---|---|
create(data) | Create a workspace |
update(id, data) | Update a workspace |
delete(id) | Delete a workspace |
getMembers(id) | List workspace members |
removeMember(workspaceId, userId) | Remove a member |
updateMemberRole(workspaceId, userId, role) | Change member role |
invite(data) | Invite a user |
acceptInvitation(token) | Accept an invitation |
getFeatureFlags(id) | Get feature flags |
getDataModel(id) | Get data model |
createDataModelField(id, data) | Create data model field |
updateDataModelField(id, fieldId, data) | Update data model field |
deleteDataModelField(id, fieldId) | Delete data model field |
reorderDataModelFields(id, fieldIds) | Reorder fields |
validateDataModel(id, data) | Validate custom fields |
getDataModelDefaults(id) | Get default field values |
create()
Create a new workspace.
typescript
const workspace = await client.workspaces.create({
name: 'My Coffee Shop',
slug: 'my_coffee_shop'
});Member Management
typescript
// List members
const members = await client.workspaces.getMembers('workspace-uuid');
// Invite a new member
await client.workspaces.invite({
workspace_id: 'workspace-uuid',
email: '[email protected]',
role: 'member'
});
// Change member role
await client.workspaces.updateMemberRole(
'workspace-uuid',
'user-uuid',
'admin'
);
// Remove member
await client.workspaces.removeMember('workspace-uuid', 'user-uuid');Data Model Management
typescript
// Get current data model
const dataModel = await client.workspaces.getDataModel('workspace-uuid');
// Create a number field
await client.workspaces.createDataModelField('workspace-uuid', {
field_name: 'points',
field_label: 'Points Balance',
field_type: 'number',
default_value: '0',
is_required: true
});
// Create an enum field
await client.workspaces.createDataModelField('workspace-uuid', {
field_name: 'tier',
field_label: 'Membership Tier',
field_type: 'string',
default_value: 'Bronze',
allowed_values: ['Bronze', 'Silver', 'Gold', 'Platinum'],
is_required: true
});
// Create a multiselect field
await client.workspaces.createDataModelField('workspace-uuid', {
field_name: 'interests',
field_label: 'Interests',
field_type: 'multiselect',
allowed_values: ['sports', 'music', 'food', 'travel']
});
// Validate custom fields
const validation = await client.workspaces.validateDataModel('workspace-uuid', {
custom_fields: {
points: 1500,
tier: 'Gold',
interests: ['sports', 'music']
}
});
if (!validation.valid) {
console.log('Errors:', validation.errors);
}
// Get default values
const defaults = await client.workspaces.getDataModelDefaults('workspace-uuid');