GovernRBACManaging Members

Managing Members

This guide covers the full lifecycle of workspace members in SignalSmith — from inviting new members and assigning roles, to modifying access and removing members. For organization-level member management, see Organizations.

Member Lifecycle

Invitation Sent → Invitation Accepted → Active Member → (Optional) Role Change → (Optional) Removed

Inviting Members

Via the UI

  1. Navigate to Settings > Members
  2. Click Invite Member
  3. Enter the member’s email address
  4. Select a role:
    • Owner — Full access including workspace management
    • Admin — Full access except workspace deletion
    • Member — Operational read/write access
  5. Click Send Invitation

The invitee receives an email with a link to accept the invitation. They must create a SignalSmith account (or sign in with an existing one) to accept.

Via the API

curl -X POST https://your-workspace.signalsmith.dev/api/v1/members/invite \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "analyst@mycompany.com",
    "role": "member"
  }'

Response:

{
  "id": "inv_abc123",
  "email": "analyst@mycompany.com",
  "role": "member",
  "status": "pending",
  "expires_at": "2025-01-22T10:00:00Z",
  "created_at": "2025-01-15T10:00:00Z"
}

Bulk Invitations

To invite multiple members at once:

curl -X POST https://your-workspace.signalsmith.dev/api/v1/members/invite/bulk \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "invitations": [
      { "email": "analyst1@mycompany.com", "role": "member" },
      { "email": "analyst2@mycompany.com", "role": "member" },
      { "email": "lead@mycompany.com", "role": "admin" }
    ]
  }'

Who Can Invite

  • Owners can invite members with any role (Owner, Admin, or Member)
  • Admins can invite Members and Admins, but cannot invite Owners
  • Members cannot invite other members

Managing Invitations

Pending invitations are visible in Settings > Members > Invitations.

Invitation Status

StatusDescription
PendingInvitation sent, not yet accepted
AcceptedMember accepted and is now active
ExpiredInvitation expired (default: 7 days)
CanceledInvitation was revoked before acceptance

Resending an Invitation

If an invitation was not received or has expired:

  1. Navigate to Settings > Members > Invitations
  2. Find the pending or expired invitation
  3. Click Resend

This generates a new invitation link and resets the expiration timer.

Canceling an Invitation

To revoke a pending invitation:

  1. Navigate to Settings > Members > Invitations
  2. Find the pending invitation
  3. Click Cancel

The invitation link will no longer work. The invitee will see an “Invitation expired” message if they try to use it.

Viewing Members

The member list shows all active workspace members:

ColumnDescription
NameMember’s display name
EmailMember’s email address
RoleCurrent workspace role (Owner, Admin, Member)
GroupsNumber of groups the member belongs to
Last ActiveWhen the member last performed an action
JoinedWhen the member accepted the invitation

Filtering and Searching

  • Search by name or email
  • Filter by role — Show only Owners, Admins, or Members
  • Filter by group — Show only members of a specific group
  • Sort by name, role, last active, or join date

Changing a Member’s Role

Via the UI

  1. Navigate to Settings > Members
  2. Find the member in the list
  3. Click the role dropdown next to their name
  4. Select the new role
  5. Confirm the change

Via the API

curl -X PUT https://your-workspace.signalsmith.dev/api/v1/members/{member_id} \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "admin"
  }'

Role Change Rules

Current RoleCan Be Changed ToChanged By
MemberAdmin, OwnerOwner, Admin
AdminMember, OwnerOwner
OwnerAdmin, MemberOwner (only if there is another Owner)

Safeguards:

  • There must always be at least one Owner. Demoting the last Owner is not allowed.
  • Role changes take effect immediately.
  • All role changes are logged in the workspace audit trail.

Removing Members

Via the UI

  1. Navigate to Settings > Members
  2. Find the member in the list
  3. Click the menu icon (or Remove button)
  4. Confirm the removal

Via the API

curl -X DELETE https://your-workspace.signalsmith.dev/api/v1/members/{member_id} \
  -H "Authorization: Bearer $API_TOKEN"

What Happens When a Member Is Removed

  • The member immediately loses access to the workspace
  • Their active sessions are invalidated
  • Resources they created (models, audiences, syncs) remain in the workspace and continue to function
  • Their group memberships are removed
  • API keys they created are not automatically revoked — revoke them separately if needed

Who Can Remove Members

  • Owners can remove any member (including other Owners, as long as at least one Owner remains)
  • Admins can remove Members and other Admins, but cannot remove Owners
  • Members cannot remove other members

Viewing Member Activity

For each member, you can view their recent activity:

  1. Navigate to Settings > Members
  2. Click on a member’s name
  3. View the Activity tab

The activity log shows:

FieldDescription
ActionWhat the member did (created, updated, deleted, viewed)
ResourceWhich resource was affected (model, sync, audience, etc.)
TimestampWhen the action occurred
DetailsAdditional context (e.g., field changes, configuration updates)

Organization-Level Member Management

If your workspace belongs to an organization, members can also be managed at the organization level. Organization-level management provides:

  • Centralized invitations — Invite a member to the organization and grant access to multiple workspaces in a single step
  • Cross-workspace visibility — See a member’s activity across all workspaces from a single view
  • Bulk access changes — Add or remove workspace access for a member across multiple workspaces at once

To manage members at the organization level:

  1. Navigate to Organization > Members
  2. Use the same invite, modify, and remove workflows described above, but with cross-workspace scope

See Organizations for details.

API Reference

# List all members
GET /api/v1/members
 
# Get a single member
GET /api/v1/members/{id}
 
# Invite a member
POST /api/v1/members/invite
 
# Bulk invite members
POST /api/v1/members/invite/bulk
 
# Update a member's role
PUT /api/v1/members/{id}
 
# Remove a member
DELETE /api/v1/members/{id}
 
# List pending invitations
GET /api/v1/members/invitations
 
# Resend an invitation
POST /api/v1/members/invitations/{id}/resend
 
# Cancel an invitation
DELETE /api/v1/members/invitations/{id}

Best Practices

  • Use the least privileged role — Start with the Member role and promote as needed. It’s easier to add permissions than to discover someone had too much access.
  • Audit member access quarterly — Review who has access and whether their roles are still appropriate as team composition changes.
  • Remove departed team members promptly — When someone leaves the team, remove their workspace access immediately to maintain security.
  • Use groups instead of individual management — For data access control, assign access filters to groups rather than tracking individual members. This scales better and is easier to audit.
  • Document role assignments — Keep a record of why specific members have elevated roles (Admin, Owner) for compliance and audit purposes.

Next Steps