Added
Composite Workspace Support
about 1 month ago
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_oneSecurity 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
- Ensure you have admin access to the source workspaces you want to combine
- Create a new workspace with the
compositeOffield specifying source workspace IDs - Build your semantic model using
$ref()to reference tables from each source - Define relationships between tables from different sources
- Start querying across your data domains