Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.wellapp.ai/llms.txt

Use this file to discover all available pages before exploring further.

A WorkspaceGroup is a named collection that groups multiple workspaces together, enabling cross-workspace access management and shared membership. Groups are created by a specific person (the creator) and can contain any number of workspace slots via the WorkspaceGroupWorkspace join entity, and any number of members via WorkspaceGroupMembership. The entity carries its own lifecycle (created_at, updated_at, soft-deleted via deleted_at) and is identified externally by a UUID while relying on an internal serial primary key for joins.
NamingValue
ObjectWorkspaceGroup
Resource type (JSON:API type)workspace_group
Collection / records rootโ€” (not a records root)
REST base/v1/workspace-groups
Entity classWorkspaceGroup
Internal object. Not currently exposed on the public REST API. The operations below describe the intended contract.

API operations

OperationMethod & pathStatus
ListGET /v1/workspace-groups๐ŸŸก Planned
RetrieveGET /v1/workspace-groups/{id}๐ŸŸก Planned
CreatePOST /v1/workspace-groups๐ŸŸก Planned
UpdatePATCH /v1/workspace-groups/{id}๐ŸŸก Planned
DeleteDELETE /v1/workspace-groups/{id}๐ŸŸก Planned

Data model

Attributes

FieldTypeRequiredConstraintsAllowed valuesDescription
workspace_group_idstring (UUID)โœ… Yesuniqueโ€”Public-facing stable identifier for the group. Generated server-side via gen_random_uuid(); never supplied by the caller. Unique constraint enforced at the database level.
namestring (varchar 255)โœ… YesNOT NULL, max length 255โ€”Human-readable label for the workspace group. Set at creation time. NOT NULL in the database; max 255 characters (MikroORM default varchar length).
created_at๐Ÿ”’ system โ€” Date (timestamptz)โœ… YesNOT NULL, set once on insertโ€”Timestamp of record creation. Set automatically by the MikroORM onCreate lifecycle hook; never supplied by the caller.
updated_at๐Ÿ”’ system โ€” Date (timestamptz)โšช Nonullableโ€”Timestamp of the last update. Set by MikroORM onCreate and onUpdate lifecycle hooks; null until the first update after creation.
deleted_at๐Ÿ”’ system โ€” Date (timestamptz) | nullโšช Nonullableโ€”Soft-delete timestamp. Null means the record is active. Set to the deletion timestamp when the group is removed; the row is never physically deleted. All active queries filter deleted_at IS NULL.

Relationships

NameTypeRequiredDescription
created_byto-one (ManyToOne)โœ… YesThe People record of the person who created this workspace group. Foreign key created_by_pk references core_api.peoples(pk). NOT NULL โ€” every group must have an identified creator.

System-computed

  • workspace_group_id โ€” generated server-side via gen_random_uuid() default and randomUUID() application-side default; unique constraint enforced in DB
  • created_at โ€” set automatically by MikroORM onCreate: () => new Date()
  • updated_at โ€” set automatically by MikroORM onCreate and onUpdate: () => new Date()
  • deleted_at โ€” managed by the soft-delete pattern; set by the service layer on logical deletion, never by the user directly

Example

{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "type": "workspace_group",
    "attributes": {
      "workspace_group_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "EMEA Finance Team",
      "created_at": "2026-05-28T08:15:00.000Z",
      "updated_at": "2026-05-28T08:15:00.000Z",
      "deleted_at": null
    },
    "relationships": {
      "created_by": {
        "data": { "id": "d7e8f9a0-b1c2-3456-def0-123456789abc", "type": "person" }
      }
    }
  }
}
Source: apps/api/src/database/entities/WorkspaceGroup.ts ยท domain: workspace ยท tier: Platform