Added

Composite Workspace Support

Query across multiple data domains in a single conversation by creating composite workspaces that combine semantic models from different source workspaces. This enables cross-functional analytics—like joining sales data with marketing campaigns—without duplicating data or maintaining separate models.

What's New

  • Multi-Source Semantic Models: Build a workspace that references tables from multiple source workspaces, each with their own data connections
  • Namespaced Table References: Use $ref(workspace.table) syntax to explicitly reference tables across workspace boundaries while maintaining clear data lineage
  • Automatic Secondary Roles: Composite queries automatically activate the necessary Snowflake secondary roles to access data across workspace boundaries securely
  • Merged System Prompts: The AI receives context from all source workspaces, understanding the business semantics of each domain

Use Cases

  • Cross-Functional Analytics: "Compare marketing spend to sales revenue by region"
  • Executive Dashboards: Combine finance, sales, and operations data in one workspace
  • Data Mesh Patterns: Each team owns their workspace; composite workspaces enable organization-wide queries

API Changes

Create Composite Workspace

When creating a workspace, specify source workspaces:

{
  "name": "Executive Analytics",
  "compositeOf": ["sales_workspace_id", "marketing_workspace_id", "finance_workspace_id"]
}

System Prompts

GET /api/v1/accounts/{accountId}/workspaces/{workspaceId}/system-prompts

For composite workspaces, returns merged prompts from all source workspaces with namespace prefixes.

SQL Execution

SQL queries in composite workspaces automatically enable secondary roles. No client-side changes needed.

Semantic Model Configuration

Reference tables from source workspaces using the $ref() syntax:

tables:
  - name: orders
    description: Sales orders from the sales team's workspace
    ref: $ref(sales_workspace.orders)

  - name: campaigns
    description: Marketing campaigns with spend data
    ref: $ref(marketing_workspace.campaigns)

  - name: budgets
    description: Departmental budget allocations
    ref: $ref(finance_workspace.department_budgets)

relationships:
  - from: orders.campaign_id
    to: campaigns.id
    type: many_to_one

Security Model

  • Users must have access to all source workspaces to query a composite workspace
  • Each source workspace's row-level security policies are enforced
  • Audit logs track which source workspaces were accessed in each query

Getting Started

  1. Ensure you have admin access to the source workspaces you want to combine
  2. Create a new workspace with the compositeOf field specifying source workspace IDs
  3. Build your semantic model using $ref() to reference tables from each source
  4. Define relationships between tables from different sources
  5. Start querying across your data domains