diff --git a/docs/pages/_meta.js b/docs/pages/_meta.js index 827521c00be77..d7fcce98ed3b1 100644 --- a/docs/pages/_meta.js +++ b/docs/pages/_meta.js @@ -21,14 +21,19 @@ module.exports = { // toc: false, // }, // }, - docs: { - // type: "page", - title: "[Demo] MDX Components", - display: "hidden", + // docs: { + // // type: "page", + // title: "[Demo] MDX Components", + // display: "hidden", + // }, + + cube: { + type: "page", + title: "Cube", }, product: { type: "page", - title: "Documentation", + title: "Cube Core", }, }; diff --git a/docs/pages/cube/_meta.js b/docs/pages/cube/_meta.js new file mode 100644 index 0000000000000..7ffb6cb71dd28 --- /dev/null +++ b/docs/pages/cube/_meta.js @@ -0,0 +1,8 @@ +module.exports = { + introduction: "Introduction", + workbooks: "Workbooks", + administration: "Administration", + embed: "Embed & API", + workspace: "Workspace", + changelog: "Product Updates", +}; diff --git a/docs/pages/cube/administration/_meta.js b/docs/pages/cube/administration/_meta.js new file mode 100644 index 0000000000000..6f3ef766ed6c2 --- /dev/null +++ b/docs/pages/cube/administration/_meta.js @@ -0,0 +1,8 @@ +module.exports = { + ai: "AI", + "user-attributes": "User Attributes", + "roles-and-permissions": "Roles & Permissions", + "spaces-agents-models": "Spaces, Agents, Models", + "agent-rules": "Agent Rules", + "memory-isolation": "Agent Memories", +}; diff --git a/docs/pages/cube/administration/agent-rules.mdx b/docs/pages/cube/administration/agent-rules.mdx new file mode 100644 index 0000000000000..617e5ca880252 --- /dev/null +++ b/docs/pages/cube/administration/agent-rules.mdx @@ -0,0 +1,158 @@ +# Agent Rules + +_Understanding Agent Rules configuration and behavior in Cube._ + +Agent Rules in Cube provide a powerful way to customize and control how AI agents behave within specific spaces. Rules act as contextual instructions that guide agents' responses and analysis, ensuring consistent behavior aligned with your business logic and domain expertise. + +## Rule Types + +### Always Rules + +**Always Rules** are automatically applied to every agent interaction within the space, regardless of the specific query or context. + +**Use Cases:** +- Fundamental business definitions and context +- Consistent calculation methods +- Default analysis approaches +- Domain-specific terminology + +**Example Always Rules:** +``` +Sales efficiency is deal size divided by sales cycle length +``` + +``` +When analyzing customer data, always consider seasonality patterns from our retail business +``` + +``` +Revenue should be calculated using our standard GAAP accounting principles +``` + +### Agent Requested Rules + +**Agent Requested** rules are conditionally applied when the agent determines they are relevant to the current query or analysis. The agent intelligently selects which rules to use based on the context. + +**Use Cases:** +- Specialized analysis techniques +- Context-specific guidance +- Advanced calculation methods +- Scenario-specific instructions + +**Example Agent Requested Rules:** +``` +If you asked to analyze sales efficiency start with correlation to WSE +``` + +``` +For customer segmentation analysis, use RFM methodology (Recency, Frequency, Monetary) +``` + +``` +When analyzing marketing performance, compare against industry benchmarks where available +``` + +## Best Practices + +### Rule Hierarchy and Organization + +- **Start with Always rules** for fundamental business context +- **Use Agent Requested rules** for specialized scenarios +- **Keep rules specific and actionable** rather than vague +- **Test rules** with actual queries to ensure they work as expected + +### Writing Effective Rules + +✅ **Good Rule Examples:** +- "Customer churn rate should be calculated as customers lost / total customers at start of period" +- "When analyzing quarterly performance, always compare against same quarter previous year" +- "For financial analysis, use our fiscal year starting in October" + +❌ **Poor Rule Examples:** +- "Be helpful" (too vague) +- "Always be accurate" (redundant) +- "Consider all factors" (too broad) + +### Domain-Specific Rules + +**E-commerce Example:** +``` +Always Rule: "Customer lifetime value equals average order value × purchase frequency × customer lifespan" +Agent Requested: "For cart abandonment analysis, segment by device type and traffic source" +``` + +**SaaS Example:** +``` +Always Rule: "MRR growth rate should exclude one-time charges and setup fees" +Agent Requested: "When analyzing churn, differentiate between voluntary and involuntary churn" +``` + +### Contextual Guidance + +Rules should provide context that agents might not inherently understand about your business: + +``` +Always Rule: "Our peak season is Q4, with 40% of annual revenue typically occurring in December" +Agent Requested: "For inventory analysis, consider our 6-week lead time for international suppliers" +``` + +## Rule Conflicts and Resolution + +### How Cube Handles Conflicting Rules + +Based on the rule configuration system, when multiple rules could apply to the same query, the conflict resolution strategy would likely include: + +1. **Rule type hierarchy** (specific behavior needs verification) +2. **Rule specificity** - more specific rules typically override general ones +3. **Rule order** - the system may consider rule creation order or explicit priority +4. **Agent decision-making** for complementary vs conflicting guidance + +### Example Conflict Scenarios + +**Scenario 1: Direct Contradiction** +``` +Rule A (Always): "Revenue recognition follows monthly billing cycles" +Rule B (Always): "Revenue should be recognized quarterly" + +Resolution: The agent will flag this conflict and may ask for clarification +``` + +**Scenario 2: Complementary Rules** +``` +Rule A (Always): "Sales efficiency is deal size divided by sales cycle length" +Rule B (Agent Requested): "When analyzing sales efficiency, include pipeline velocity metrics" + +Resolution: Both rules work together - B provides additional context to A +``` + +**Scenario 3: Specificity Override** +``` +Rule A (Always): "Use standard deviation for all variance calculations" +Rule B (Agent Requested): "For customer behavior analysis, use median absolute deviation instead of standard deviation" + +Resolution: Rule B takes precedence for customer behavior queries due to higher specificity +``` + +### Best Practices for Avoiding Conflicts + +1. **Review existing rules** before adding new ones +2. **Use specific triggers** in Agent Requested rules +3. **Test rule combinations** with sample queries +4. **Document rule intentions** clearly +5. **Regular rule audits** to identify and resolve conflicts + +## Current Limitations + +### Current State: Space-Level Rules Only, Always Rules Only + +- Rules are currently configured at the **Space level** +- All agents within a space inherit the same set of rules +- Individual agent customization is not yet available + +## Getting Started + +1. **Assess Your Use Case**: Identify the key business context and calculations your agents need to understand +2. **Start Simple**: Begin with 2-3 Always rules covering your most important business definitions +3. **Add Specificity**: Implement Agent Requested rules for specialized scenarios +4. **Test and Iterate**: Use real queries to validate rule effectiveness +5. **Scale Gradually**: Add more rules based on actual usage patterns and feedback diff --git a/docs/pages/cube/administration/ai.mdx b/docs/pages/cube/administration/ai.mdx new file mode 100644 index 0000000000000..926bb6eacec71 --- /dev/null +++ b/docs/pages/cube/administration/ai.mdx @@ -0,0 +1,16 @@ +# AI + +_AI features and administration in Cube._ + +## Chats History + +Admins can access users chat history through Admin → Chats History. It's possible to search specific chats by the first message content or chat UUID. + + \ No newline at end of file diff --git a/docs/pages/cube/administration/memory-isolation.mdx b/docs/pages/cube/administration/memory-isolation.mdx new file mode 100644 index 0000000000000..55955fa26fa9e --- /dev/null +++ b/docs/pages/cube/administration/memory-isolation.mdx @@ -0,0 +1,47 @@ +# Agent Memories + +_Learn how Cube enforces memory isolation across tenants, spaces, and users._ + +Memory in Cube allows Agents to learn from and recall past interactions, user preferences, and contextual information. When users interact with Agents, relevant information is stored as memories that can be retrieved in future conversations, enabling more personalized and context-aware responses. Memories help Agents understand user preferences, remember previous decisions, and provide continuity across sessions. + +Memories are scoped and enforced at the Tenant/Space boundary. Cube applies both application-layer and (optionally) infrastructure-layer isolation so one customer's end users cannot see another customer's memories. + +## How It Works + +### Space-Scoped Memories + +Cube memories are stored at the Space level. Agents only learn from and retrieve memories within the current Space, ensuring no cross-Space exposure by design. + +### Tenant-Aware Security Context + +Every request carries a tenant-bound security context (JWT). Cube maps that context to an app/tenant ID and uses it across caching, orchestration, and query flows. This is the backbone of multi-tenancy isolation. + +### RBAC and Policy Guardrails + +Role-based access policies gate what entities and content are visible within a tenant. These same guardrails apply to what agents can read and write as memories. + +### Data Model and API Isolation + +Even when using the SQL API or custom views, hidden members and non-public entities remain inaccessible. Multitenancy configuration ensures queries and artifacts resolve only within the current tenant's scope. + +### Optional Infrastructure Isolation + +Many customers run in shared multi-tenant regions, but dedicated infrastructure and BYOC (Bring Your Own Cloud) variants are available. These provide stronger blast-radius isolation at the cluster, storage, and key-management levels. + +## Practical Implications + +- **Tenant Separation**: An end user in Customer A can only create and retrieve memories in Customer A's Spaces +- **Cross-Tenant Protection**: Memories are not retrievable by Customer B's users or agents, because requests from B carry a different security context and resolve to different Space and tenant IDs +- **Intra-Tenant Controls**: Even within a customer, RBAC and policies can further restrict which users or agents can contribute to or benefit from memories + +## Technical Implementation + +Cube ensures memory isolation through multiple layers of security controls: + +1. **Tenant Isolation**: Every request is scoped to a specific tenant via JWT and middleware +2. **User Isolation**: Additional user-level filtering for user-mode memories +3. **Automatic Filtering**: Database queries are automatically filtered by tenant using decorators +4. **Vector Store Security**: All vector searches include tenant and user filters +5. **Container Isolation**: Each tenant gets its own dependency injection container +6. **JWT Security**: All security context comes from cryptographically signed JWT tokens +7. **Memory Mode Controls**: Configurable memory isolation levels (user/space/disabled) diff --git a/docs/pages/cube/administration/roles-and-permissions.mdx b/docs/pages/cube/administration/roles-and-permissions.mdx new file mode 100644 index 0000000000000..b99df401b9679 --- /dev/null +++ b/docs/pages/cube/administration/roles-and-permissions.mdx @@ -0,0 +1,56 @@ +# Roles & Permissions + +_Understanding user roles and access control in Cube._ + +Cube implements a role-based access control system with three main user roles: Admin, Developer, and User. Each role has specific permissions and access levels designed to support different responsibilities within the platform. + +## Deployment Structure + +- Database connections are managed through Semantic Model Deployments +- Multiple Semantic Model Deployments can exist under one account +- Roles can be either global (across all deployments) or deployment-specific +- Admin role is always global + +## Role Permissions + +### Admin Role + +- Has highest level of privileges +- Can manage semantic models +- Can manage other users +- Has access to admin section +- Full query capabilities + +### Developer Role + +- Can create and edit semantic models +- Can execute SQL queries against data sources +- Can create and edit workbooks +- Can create and edit data apps +- No access to admin settings + +### User Role + +- Can query semantic models +- Can create and edit workbooks +- Can create and edit data apps +- Can execute Semantic SQL queries +- Cannot make changes to semantic models +- Cannot query source data directly + +## Future Implementation + +A Viewer role is planned for future implementation with the following capabilities: + +- Use Analytics Chat with ability to query Semantic Views and existing reports +- View (read-only) access to shared data apps + +## Agent Permissions + +Agents are connected to Semantic Model Deployments and inherit the permission level of the user they are operating under. + +## Typical Usage Scenarios + +- Users: Typically data consumers and analysts +- Developers: Usually data stewards and data engineers +- Admin: Typically assigned to data engineers managing the entire Cube instance \ No newline at end of file diff --git a/docs/pages/cube/administration/spaces-agents-models.mdx b/docs/pages/cube/administration/spaces-agents-models.mdx new file mode 100644 index 0000000000000..f18e02bd84874 --- /dev/null +++ b/docs/pages/cube/administration/spaces-agents-models.mdx @@ -0,0 +1,99 @@ +# Spaces, Agents, Models + +_Understanding the core concepts of Spaces, Agents, and Models in Cube._ + +Cube is an agentic analytics platform that combines AI agents with semantic data modeling to create intelligent, automated analytics experiences. This guide explains the three fundamental concepts that form the foundation of Cube: **Spaces**, **Agents**, and **Models**. + +## Core Concepts + +### 1. **Spaces** (Agent Spaces) + +**Agent Spaces** are isolated environments where AI agents operate and share context, rules, and [memories](/cube/administration/memory-isolation). Think of them as "workspaces" or "projects" that contain everything an agent needs to work effectively. + +#### Key Characteristics: + +- **Isolation**: Each space is completely isolated from others +- **Shared Context**: Agents within a space share rules, memories, and configurations +- **Ownership**: Spaces can be owned by users or shared across teams +- **Configuration**: Each space has its own settings and behavior rules + +#### What Lives in a Space: + +- **Agent Rules**: Instructions that guide how agents behave +- **Memories**: Shared knowledge and past interactions +- **Certified Queries**: Pre-approved, trusted queries +- **Context**: Business logic and domain expertise + +#### Example Use Cases: + +- **Sales Analytics Space**: Contains sales-specific rules, KPIs, and historical analysis +- **Marketing Space**: Focused on campaign performance, customer segmentation +- **Finance Space**: Revenue analysis, budgeting, and financial reporting + +### 2. **Agents** (AI Agents) + +**Agents** are AI-powered assistants that can understand natural language, execute complex tasks, and interact with your data models. They're the "workers" that operate within spaces to help users achieve their analytics goals. + +#### Key Characteristics: + +- **Intelligent**: Can understand context and make decisions +- **Tool-Enabled**: Have access to various tools for data manipulation +- **Memory-Aware**: Can learn from past interactions +- **Specialized**: Can be configured for specific tasks or domains + +#### Agent Capabilities: + +- **Data Analysis**: Query and analyze data using natural language +- **Model Building**: Create and modify semantic models +- **Report Generation**: Build charts, dashboards, and reports +- **Code Generation**: Write and modify Cube model files +- **Workflow Automation**: Execute multi-step analytical processes + +#### Memory Modes: + +- **User Mode**: Memories are isolated per user +- **Space Mode**: Memories are shared within the space +- **Disabled**: No memory is stored + +### 3. **Models** (LLM Models) + +**LLM Models** (Large Language Models) are the AI engines that power the agents in Cube. They provide the natural language understanding, reasoning, and generation capabilities that make agents intelligent and conversational. + +## How They Work Together + +### The Cube Workflow: + +1. **Setup**: Create a space and configure [agent rules](/cube/administration/agent-rules) +2. **Deploy**: Connect your data source and build semantic models +3. **Configure**: Select appropriate LLM models for your agents +4. **Interact**: Users and agents query data using natural language +5. **Learn**: Agents build memories and improve over time +6. **Automate**: Agents can execute complex workflows independently + +### Example Interaction: + +``` +User: "Show me sales performance by region for Q4" + +Agent: +1. Understands the request (sales, region, Q4) +2. Queries the semantic model for relevant data +3. Applies business rules from the space +4. Generates a chart or report +5. Stores the interaction in memory for future reference +``` + +### Space-Agent-Model Relationship: + +``` +Space (Sales Analytics) +├── Rules: "Revenue = quantity × price" +├── Memories: Past Q4 analyses +├── Agents: +│ ├── Sales Analyst Agent (Claude 3.5 Sonnet v2) +│ └── Report Builder Agent (GPT-4o) +└── LLM Models: + ├── Claude 3.5 Sonnet v2 (Analytical reasoning) + ├── Claude 3.7 Sonnet Thinking (Complex analysis) + └── GPT-4o (Code generation) +``` diff --git a/docs/pages/cube/administration/user-attributes.mdx b/docs/pages/cube/administration/user-attributes.mdx new file mode 100644 index 0000000000000..06e8f55a8d1b8 --- /dev/null +++ b/docs/pages/cube/administration/user-attributes.mdx @@ -0,0 +1,65 @@ +# User Attributes + +_Secure data access with user attributes for filtering based on individual permissions._ + +User attributes allow you to implement row-level security by filtering data based on user-specific values. This documentation explains how to set up and use user attributes for access control. + +## Creating User Attributes + +1. Go to Admin → Attributes +2. Click to create a new attribute +3. Configure the attribute: + - Set a name + - Choose the type + - Optionally set a default value + - Optionally set a display name + +## Setting User Attribute Values + +User attributes can be set on a per-user basis: + +1. Go to the user's page +2. Locate the attributes section +3. Set the desired attribute value (e.g., setting city to "Los Angeles") + +## Implementing Row-Level Access Policy + +To filter data based on user attributes, implement an access policy in your views: + +```yaml +views: + - name: orders_view + access_policy: + - role: "*" # Applies to all roles + row_level: + filters: + - member: customers_city + operator: equals + values: ["{ securityContext.cubeCloud.userAttributes.city }"] +``` + +## Security Context + +The user attributes are available in the security context object: + +```yaml +{ + "securityContext": { + "cubeCloud": { + "userAttributes": { + "email": "user@example.com", + "customers_city": "Los Angeles" + } + "roles": {} + } + } +} +``` + +## Effect on Queries + +When the access policy is implemented, queries will automatically be filtered based on the user's attributes. This ensures users can only access data that matches their attribute values. + + +The path to access user attributes (securityContext.cubeCloud.userAttributes) will be simplified in future updates to allow direct access through user attributes. + \ No newline at end of file diff --git a/docs/pages/cube/changelog.mdx b/docs/pages/cube/changelog.mdx new file mode 100644 index 0000000000000..481aa333dcf16 --- /dev/null +++ b/docs/pages/cube/changelog.mdx @@ -0,0 +1,173 @@ +# Product Updates + +_New updates and improvements._ + +## August 25, 2025 + +### Pivot Tables + +Added pivot table functionality for creating multi-dimensional data summaries. Users can click "Pivot" on dimensions in the data sidebar or column header to pivot by that dimension. + +### TODO lists for AI Agents + +AI agents now include todo list tools for task management and workflow planning. TODO lists helps agents tackle more complicated tasks, e.g. building multiple data models or reports. + +### User Impersonation for Admins + +Administrators can now impersonate users. It is helpful for testing access policies and troubleshoot issues. + +### Visualizations Improvements +- **Updated color palette**: Refreshed visualization color schemes for better clarity and aesthetics +- **Vega spec improvements**: Better conversion from Vega specifications to chart configurations to enable AI agents to customize more chart elements, e.g. data labels. + +## August 18, 2025 + +### New Chart Type: KPI + +We've expanded our visualization capabilities with the addition of KPI charts, perfect for displaying key metrics and performance indicators in your dashboards and reports. + +### Favorite Workbooks + +You can now mark workbooks as favorites for quick access to your most important analytics. This makes it easier to organize and navigate through your growing collection of workbooks. + +### Various Improvements + +- **Embed session improvements**: Enhanced session exchange for embedded analytics +- **Performance optimizations**: Fixed workbook tracking to reduce unnecessary API calls + +## August 11, 2025 + +### Data Modeling + +We're bringing Cube Cloud features into the new interface, unifying the data modeling experience in a single modern workspace. + +- **Pre-aggregations management**: View and manage pre-aggregations directly from the modeling page, bringing this essential performance optimization tool from Cube Cloud into the new interface +- **Query history**: Access your complete query history directly in the Cube interface, making debugging and analysis seamless without switching between tools + +### User Groups + +Enhanced collaboration features with improved user and group management capabilities: +- **User groups management**: Create and manage user groups for easier access control and collaboration +- **Workbook activity tracking**: Timestamps now show when users last viewed workbooks and dashboards +- **Group editing improvements**: Fixed and enhanced the group editing interface for smoother administration + +### Home Page & Navigation + +The home page now includes a search bar, making it easier to quickly find workbooks, data models, and other resources across your workspace. + +### Various Improvements & Fixes + +- **Streaming improvements**: More graceful error handling during streaming operations with automatic retries +- **Workbook navigation**: Fixed the "go back" behavior for better navigation flow +- **Chat interface**: Restored the new chat button and improved chat functionality +- **Embed endpoint**: Fixed issues with the embed endpoint for better integration capabilities + +## August 4, 2025 + +### Various Improvements & Fixes + +Multiple enhancements have been made to improve the overall experience: + +- **GPT-5 support**: Added support for the latest GPT-5 language model for more powerful analytics assistance +- **Streaming Chat API**: Improved chat functionality with session and access token mechanics for real-time responses +- **Save to new workbook**: Easily create new workboks from analytics chat +- **Workbook sharing visibility**: New "shared with" column shows which team members have access to each workbook +- **Deployment settings access**: Deployment configuration is now directly accessible from the modeling page +- **Data model formatting**: Use formats directly from your data models for consistent visualizations +- **File operations**: Improved consistency by always using project root for file handling +- **Member title display**: Fixed display issues with team member titles + +## July 28, 2025 + +### New Home Page Experience + +We've redesigned the Cube home page to provide a better starting point for your analytics journey. The new interface offers improved navigation and faster access to your most important workbooks and data assets. + +### View-only Dashboard Sharing + +You can now share workbook's dashboard with read-only access, allowing you to collaborate and distribute insights without allowing recipients to make edits. This is perfect for sharing analytical findings with stakeholders or providing data access to team members who need to view but not modify your work. + +### AI Chat Improvements + +Chat functionality has been significantly improved with several new capabilities: +- **Rolling chat history summarization**: Long conversations are now automatically summarized to maintain context while improving performance +- **Chat renaming**: You can now rename your chat sessions for better organization +- **Agent selection improvements**: Enhanced interface for selecting and working with different AI agents + +### Workbook Improvements + +Managing your workbooks is now more intuitive with these new features: +- **Drag and drop tab ordering**: Reorder report tabs within workbooks by simply dragging them to new positions +- **Improved validation**: Better error messages and validation for workbook filters +- **Search functionality in Data Pane**: Quickly find specific data assets, dimensions, or measures with the new search feature +- **Date grain selection**: Pick specific date granularities directly in the Data Pane for time-based analysis +- **Relative date filters**: Create dynamic date filters using relative expressions like "last 30 days" or "current quarter" +- **Chart fixes**: Resolved various visualization issues for more reliable chart rendering +- **SQL generation**: Fixed issues with time dimension queries and filter suggestions + +## July 21, 2025 + +### Analytics Chat Embed + +You can now embed the AI-powered analytics chat directly into your applications! This allows you to provide users with a guided, semantic-layer-aware data assistant anywhere in your product or portal. + +Learn more in the [Chat Embed docs](/cube/embed/embed/chat). + +### Query Data Sources in Workbook + +You can now query your data sources directly in workbooks. Our AI agent researches your data source, helps you build queries, and refines results in real-time. +This capability is particularly useful for prototyping queries and conducting analysis with AI assistance before converting them formal data models. + +Learn more in the [Source SQL docs](/cube/workbooks/source-sql). + + +### Various Improvements + +Multiple enhancements have been made to improve the user experience: +- **Display titles option**: You can now choose to display titles on your visualizations and components +- **Enhanced filtering**: Equals and not equals filters now include an "(All)" option for easier bulk selections, plus improved multi-select filter components +- **Better error handling**: Overloaded system errors now provide clearer, user-friendly messages +- **Improved network resilience**: Enhanced connection handling for BYOC deployments and API access fixes +- **UI refinements**: Various layout fixes, better workbook handling, and improved chart functionality + +## July 14, 2025 + +### Dashboards + +The biggest addition this week! You can now create interactive dashboards that combine multiple visualizations, filters, and content into comprehensive data applications. Build rich, multi-widget dashboards directly within Cube to tell complete data stories. + +Key features include: +- **AI-powered creation**: Dashboards can be created and edited by AI agents +- **Multi-widget layouts**: Combine charts, tables, filters, and text in flexible grid layouts +- **Interactive filters**: Add dashboard-level filters that affect all connected visualizations +- **Text widgets**: Include markdown-formatted text, titles, and explanations +- **Responsive design**: Dashboards automatically adapt to different screen sizes + + +Learn more in the [Dashboards docs](/cube/workbooks/dashboards). + +### Chart Templates + +Chart Pane now has quick templates for common visualizations including bar charts, line charts, scatterplots, pie charts, donut charts, and boxplots. These templates make it faster to create charts with the right data fields automatically mapped. + +Learn more in the [Chart Templates docs](/cube/workbooks/charts/chart-templates). + +### Table Charts + +Introducing table charts as a new visualization type! You can now create data tables directly within workbooks and add them to dashboards. Table charts provide a clean, structured way to display your data alongside other visualizations. + +Learn more in the [Table Chart docs](/cube/workbooks/charts/table-chart). + +### Folders in Data Pane + +Organize your data assets better with folder support in the Data Pane. You can now group related semantic views, dimensions, and measures into folders for easier navigation and better organization. + +### Chats History for Admins + +Admins now can access users chat history in Admin → Chats History. It's possible to search specific chats by the first message content or chat UUID. + +Learn more in the [AI docs](/cube/administration/ai). + +### Various Filtering Improvements in Workbooks + +Several enhancements to filtering capabilities have been made. \ No newline at end of file diff --git a/docs/pages/cube/embed/_meta.js b/docs/pages/cube/embed/_meta.js new file mode 100644 index 0000000000000..cf11024f3692b --- /dev/null +++ b/docs/pages/cube/embed/_meta.js @@ -0,0 +1,6 @@ +module.exports = { + "api-keys": "API Keys", + embed: "Embed", + api: "API", + "mcp-server": "MCP Server", +}; diff --git a/docs/pages/cube/embed/api-keys.mdx b/docs/pages/cube/embed/api-keys.mdx new file mode 100644 index 0000000000000..e3c1e063601ad --- /dev/null +++ b/docs/pages/cube/embed/api-keys.mdx @@ -0,0 +1,16 @@ +# API Keys + +_API keys management and administration in Cube._ + +## API Keys Management + +Admins can manage API keys through Admin → API Keys. Create and revoke API keys for your Cube organization. + + \ No newline at end of file diff --git a/docs/pages/cube/embed/api/_meta.js b/docs/pages/cube/embed/api/_meta.js new file mode 100644 index 0000000000000..8435cc4a2698f --- /dev/null +++ b/docs/pages/cube/embed/api/_meta.js @@ -0,0 +1,3 @@ +module.exports = { + chat: "Chat", +}; diff --git a/docs/pages/cube/embed/api/chat.mdx b/docs/pages/cube/embed/api/chat.mdx new file mode 100644 index 0000000000000..0fb24eabb1084 --- /dev/null +++ b/docs/pages/cube/embed/api/chat.mdx @@ -0,0 +1,710 @@ +# Chat API + +_Real-time streaming API for AI agent chat interactions._ + +Stream real-time conversations with AI agents for analytics and data exploration. + +## Endpoint + +``` +https://ai-engineer.cubecloud.dev/api/v1/public/{tenantName}/agents/{agentId}/chat/stream-chat-state +``` + + +## Overview + +The Chat API enables real-time streaming conversations with Cube's AI agents. This endpoint allows applications to integrate AI-powered analytics conversations directly into their user interfaces. + +## Authentication + +Use the session-based authentication flow: + +1. **Generate a session** using your [API key](/cube/embed/api-keys). This endpoint will automatically create (insert) or update the external user based on the `externalId` provided: + + +Accounts are limited to 10,000 external users. To increase this limit, please contact support. + + +```javascript +const session = await fetch('https://your-tenant.cubecloud.dev/api/v1/embed/generate-session', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Api-Key ${API_KEY}', + }, + body: JSON.stringify({ + externalId: 'user@example.com', + userAttributes: [ // optional + { + name: 'city', + value: 'San Francisco' + } + ] + }), +}); + +const { sessionId } = await session.json(); +``` + +2. **Exchange session ID for a token**: + +```javascript +const tokenResponse = await fetch('https://your-tenant.cubecloud.dev/api/v1/embed/session/token', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Api-Key ${API_KEY}', + }, + body: JSON.stringify({ sessionId }), +}); + +const { token } = await tokenResponse.json(); +``` + +### User Attributes + +User attributes allow you to pass contextual information about the user to the AI agent. This enables personalized responses and automatic data filtering based on user permissions through row-level security policies. + + +User attributes must first be configured in your Cube admin panel before they can be used. See the [User Attributes Administration Guide](/cube/administration/user-attributes) for setup instructions. + + +**Supported Fields:** +- `externalId` (required): Unique identifier for the user +- `email` (optional): User's email address +- `userAttributes` (optional): Array of key-value pairs containing user metadata + +**User Attribute Structure:** +```javascript +{ + name: 'string', // Must match an attribute name configured in admin panel + value: 'string' // Attribute value (e.g., 'San Francisco', 'Engineering') +} +``` + +**How User Attributes Work:** +1. **Row-Level Security**: Automatically filter data based on user attributes through access policies +2. **Personalized Responses**: AI agent can tailor responses based on user context +3. **Access Control**: Restrict data access to only what the user should see + +**Example Use Cases:** +- Filter sales data by user's assigned territory +- Show only customers from user's city +- Limit financial data based on user's department +- Personalize dashboards by user role + +The attributes passed during session generation become available in the security context as `securityContext.cubeCloud.userAttributes.{attributeName}` for use in access policies. + +## Endpoint Reference + +**POST** `/api/v1/public/{tenantName}/agents/{agentId}/chat/stream-chat-state` + +**Base URL:** `https://ai-engineer.cubecloud.dev` + +### Path Parameters + +- **`tenantName`** (string, required): The tenant identifier (e.g., "acme"). It is in your account URL, e.g. https://acme.cubecloud.dev +- **`agentId`** (string, required): The AI agent identifier (e.g., "1"). You can find it in Admin → Agents → Click on Agent row in the table. + +### Request Body + +- **`chatId`** (string, required): Unique identifier for the chat session. We recommend generating a UUID for this. +- **`input`** (string): User message or query to send to the AI agent, e.g. "What is our revenue last month?" + +## Response Format + + +The API returns streaming JSON responses. Each line contains a separate JSON object representing a chat message or state update. + + +### Response Fields + +- **`id`** (string): Unique message identifier +- **`role`** (string): Message sender: `"user"` or `"assistant"` +- **`content`** (string): Message content (streamed incrementally for assistant messages) +- **`thinking`** (string): Agent's internal reasoning process (visible in development mode) +- **`toolCall`** (object): Information about tool calls made by the agent during processing + - **`name`** (string): Name of the tool being called + - **`input`** (string): JSON string containing the input parameters for the tool + - **`result`** (string): JSON string containing the tool's response (only present when tool call is complete) +- **`isDelta`** (boolean): Whether this is an incremental content update +- **`isInProcess`** (boolean): Whether the message is still being generated +- **`sort`** (number): Message ordering sequence number +- **`state`** (object): Current streaming state information + + + +### Response Examples + +The API returns a series of JSON objects, each on a separate line. Here's what a typical conversation looks like: + +**Initial State Message:** +```json +{ + "id": "__cutoff__", + "role": "assistant", + "state": { + "isStreaming": false + }, + "sort": 0 +} +``` + +**User Message Echo:** +```json +{ + "id": "1732512345678-message", + "role": "user", + "content": "Show me revenue trends for the last 6 months", + "isDelta": false, + "sort": 1 +} +``` + +**Assistant Response Start:** +```json +{ + "id": "cdfe1a84-08d7-40b9-8b1c-e7e3a698647e", + "role": "assistant", + "content": "", + "thinking": "", + "graphPath": ["cube_data_analyst_agent"], + "isStructuredResponse": false, + "isInProcess": true, + "isDelta": true, + "sort": 2 +} +``` + +**Thinking Process:** +```json +{ + "id": "cdfe1a84-08d7-40b9-8b1c-e7e3a698647e", + "role": "assistant", + "content": "", + "thinking": "The user wants to see revenue trends for the last 6 months. I need to query the revenue data and create a visualization.", + "graphPath": ["cube_data_analyst_agent"], + "isStructuredResponse": false, + "isInProcess": true, + "isDelta": true, + "sort": 3 +} +``` + +**Content Streaming:** +```json +{ + "id": "cdfe1a84-08d7-40b9-8b1c-e7e3a698647e", + "role": "assistant", + "content": "I'll help you analyze revenue trends for the last 6 months. Let me query the data and create a visualization.", + "thinking": "", + "graphPath": ["cube_data_analyst_agent"], + "isStructuredResponse": false, + "isInProcess": true, + "isDelta": true, + "sort": 4 +} +``` + +**Tool Call Initiated:** +```json +{ + "id": "4849adb2-b55d-4afe-946b-fc117bcadaf5", + "role": "assistant", + "toolCall": { + "name": "cubeMeta", + "input": "{\"searchQuery\":\"revenue trends\"}" + }, + "isInProcess": true, + "graphPath": ["cube_data_analyst_agent", "tools"], + "isStructuredResponse": false, + "isDelta": false, + "sort": 5 +} +``` + +**Tool Call Result:** +```json +{ + "id": "4849adb2-b55d-4afe-946b-fc117bcadaf5", + "role": "assistant", + "toolCall": { + "name": "cubeMeta", + "input": "{\"searchQuery\":\"revenue trends\"}", + "result": "{\"cubes\":[{\"name\":\"Revenue\",\"measures\":[\"Revenue.totalRevenue\",\"Revenue.monthlyGrowth\"]}]}" + }, + "isInProcess": false, + "graphPath": ["cube_data_analyst_agent", "tools"], + "isStructuredResponse": false, + "isDelta": false, + "sort": 6 +} +``` + +**SQL Query Tool Call:** +```json +{ + "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", + "role": "assistant", + "toolCall": { + "name": "cubeSqlApi", + "input": "{\"query\":\"SELECT Revenue.totalRevenue, Revenue.month FROM Revenue WHERE Revenue.dateRange BETWEEN '2024-01-01' AND '2024-06-30' ORDER BY Revenue.month\"}" + }, + "isInProcess": true, + "graphPath": ["cube_data_analyst_agent", "tools"], + "isStructuredResponse": false, + "isDelta": false, + "sort": 7 +} +``` + +**SQL Query Result:** +```json +{ + "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", + "role": "assistant", + "toolCall": { + "name": "cubeSqlApi", + "input": "{\"query\":\"SELECT Revenue.totalRevenue, Revenue.month FROM Revenue WHERE Revenue.dateRange BETWEEN '2024-01-01' AND '2024-06-30' ORDER BY Revenue.month\"}", + "result": "{\"data\":[{\"Revenue.totalRevenue\":1800000,\"Revenue.month\":\"2024-01\"},{\"Revenue.totalRevenue\":1950000,\"Revenue.month\":\"2024-02\"},{\"Revenue.totalRevenue\":2300000,\"Revenue.month\":\"2024-03\"},{\"Revenue.totalRevenue\":2100000,\"Revenue.month\":\"2024-04\"},{\"Revenue.totalRevenue\":2250000,\"Revenue.month\":\"2024-05\"},{\"Revenue.totalRevenue\":2400000,\"Revenue.month\":\"2024-06\"}],\"annotation\":{\"measures\":{\"Revenue.totalRevenue\":{\"title\":\"Total Revenue\",\"type\":\"number\"}},\"dimensions\":{\"Revenue.month\":{\"title\":\"Month\",\"type\":\"time\"}}}}" + }, + "isInProcess": false, + "graphPath": ["cube_data_analyst_agent", "tools"], + "isStructuredResponse": false, + "isDelta": false, + "sort": 8 +} +``` + +**Final Complete Message:** +```json +{ + "id": "cdfe1a84-08d7-40b9-8b1c-e7e3a698647e", + "role": "assistant", + "content": "I'll help you analyze revenue trends for the last 6 months. Let me query the data and create a visualization.\n\nBased on your revenue data, here are the key trends:\n\n📈 **Overall Growth**: 15% increase over the 6-month period\n💰 **Peak Month**: March 2024 with $2.3M revenue\n📊 **Steady Growth**: Consistent month-over-month growth of 2-3%\n\nWould you like me to break this down by product category or region?", + "thinking": "", + "graphPath": ["cube_data_analyst_agent"], + "isStructuredResponse": false, + "isInProcess": false, + "isDelta": false, + "sort": 9 +} +``` + +**Final State Update:** +```json +{ + "id": "__state__", + "role": "assistant", + "state": { + "messages": [{ + "lc": 1, + "type": "constructor", + "id": ["langchain_core", "messages", "HumanMessage"], + "kwargs": { + "content": "Show me revenue trends for the last 6 months" + } + }] + }, + "isDelta": false, + "sort": 10 +} +``` + +### Tool Calls + +When the AI agent performs actions like querying data or searching metadata, tool calls are included in the response stream. These provide transparency into the agent's reasoning and data retrieval process. + + +All tool results are returned as **JSON strings** within the `toolCall.result` field, not as parsed JSON objects. You must parse these strings to access the structured data. + + +**Key Points:** +- `toolCall.input` - JSON string containing tool parameters +- `toolCall.result` - JSON string containing tool response (only present when `isInProcess: false`) +- Both input and result contain escaped JSON that requires parsing +- Results may contain nested JSON structures, especially for complex data queries +- Error responses are also JSON strings with consistent error formatting + +**Parsing Example:** +```javascript +// Parse the tool result JSON string +const toolResult = JSON.parse(message.toolCall.result); + +if (toolResult.error) { + console.error('Tool error:', toolResult.error); +} else { + // Handle successful result based on tool type + if (message.toolCall.name === 'cubeSqlApi') { + const data = toolResult.data; + const annotation = toolResult.annotation; + // Process query results... + } +} +``` + +#### cubeMeta + +Searches cube metadata and schema information + +The `cubeMeta` tool returns cube schema information as a JSON string. When successful, the result contains: + +```json +{ + "toolCall": { + "name": "cubeMeta", + "input": "...", + "result": "..." + } +} +``` + +**Input Structure:** +```json +{ + "searchQuery": "sales pipeline revenue" +} +``` + +**Input Fields:** +- `searchQuery` (string): Search query for data model + +**Result Structure:** +```json +{ + "cubes": [ + { + "name": "sales_pipeline_view", + "type": "view", + "title": "Sales Pipeline View", + "members": [ + { + "name": "sales_pipeline_view.company_name", + "title": "Company Name", + "description": "Name of the company/prospect", + "type": "string" + }, + { + "name": "sales_pipeline_view.deal_amount", + "title": "Deal Amount", + "description": "Total deal value", + "type": "number" + }, + { + "name": "sales_pipeline_view.stage", + "title": "Sales Stage", + "description": "Current stage of the deal (Lead, Demo, Negotiation, Won, Lost, etc.)", + "type": "string" + }, + { + "name": "sales_pipeline_view.count", + "title": "Deal Count", + "description": "Total number of deals", + "type": "number", + "aggType": "count" + } + ] + }, + { + "name": "revenue_view", + "type": "view", + "title": "Revenue View", + "members": [ + { + "name": "revenue_view.total_amount", + "title": "Total Revenue", + "description": "Sum of all revenue", + "type": "number", + "aggType": "sum" + }, + { + "name": "revenue_view.month", + "title": "Revenue Month", + "description": "Month of revenue recognition", + "type": "time" + }, + { + "name": "revenue_view.is_recurring", + "title": "Is Recurring Revenue", + "description": "Whether this is recurring or one-time revenue", + "type": "boolean" + } + ] + } + ], + "searchQuery": "sales pipeline revenue" +} +``` + +**Result Fields:** +- `cubes` (array): Available cube/view definitions with members +- `searchQuery` (string): The original search query used + +#### cubeSqlApi + +Executes SQL queries against cube data + +The `cubeSqlApi` tool executes SQL queries and returns data with metadata. The input typically includes additional context fields: + + +```json +{ + "toolCall": { + "name": "cubeSqlApi", + "input": "...", + "result": "..." + } +} +``` + +**Input Structure:** +```json +{ + "sqlQuery": "SELECT deals_view.company_name, deals_view.deal_name FROM deals_view WHERE deals_view.stage = 'Negotiation' LIMIT 10", + "queryTitle": "Sales Pipeline Overview", + "description": "Retrieving deal information from the deals view for current negotiations", + "userRequest": "show me current deals in negotiation", + "memoryId": "a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6", + "vegaSpec": "vega lite v5 visualization spec as JSON string" +} +``` + + +**Input Fields:** +- `sqlQuery` (string): The SQL query to execute +- `queryTitle` (string): Human-readable title for the query +- `description` (string): Detailed description of what the query does +- `userRequest` (string): Original user request that triggered this query +- `memoryId` (string): Reference to previous analysis or context +- `vegaSpec` (string): Vega-Lite v5 visualization specification as JSON string (when visualization is generated) + +**Result Structure:** +```json +{ + "sqlQuery": "SELECT deals_view.company_name, deals_view.name AS deal_name...", + "queryTitle": "Current Deals Overview", + "description": "Retrieving deals showing company names, deal names, stages...", + "userRequest": "show me deals", + "schema": [ + { + "name": "company_name", + "column_type": "String" + }, + { + "name": "deal_name", + "column_type": "String" + }, + { + "name": "stage", + "column_type": "String" + }, + { + "name": "tenant_name", + "column_type": "String" + }, + { + "name": "activity_score", + "column_type": "Double" + }, + { + "name": "deal_count", + "column_type": "Int64" + } + ], + "data": [ + ["Acme Corp", "Enterprise Solution", "Negotiation", "acme-workspace", "245", "1"], + ["Beta Industries", "Analytics Platform", "Testing", "beta-analytics", "189", "1"], + ["Gamma LLC", "Data Pipeline", "Demo", "gamma-data", "156", "1"] + ], + "totalRows": 25, + "uuid": "a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6", + "vegaSpec": "vega lite v5 visualization spec as JSON string" +} +``` + +**Result Fields:** +- `sqlQuery` (string): The executed SQL query +- `queryTitle` (string): Human-readable title for the query +- `description` (string): Detailed description of what the query does +- `userRequest` (string): Original user request that triggered this query +- `schema` (array): Column definitions with `name` and `column_type` for each field +- `data` (array): Query result rows as arrays of values +- `totalRows` (number): Total number of rows returned +- `uuid` (string): Unique identifier for this query result +- `vegaSpec` (string): Vega-Lite v5 visualization specification as JSON string (when visualization is generated) + +#### Loading All Results + + +Query results in cubeSqlApi `toolCall.result.data` are limited to **100 rows** by default. Use `totalRows` to check if more data is available. + + +If you need to load all the data, you need to use `sqlQuery` from the results to make a call to the Cube API. + +#### Displaying Charts + +The cubeSqlApi tool call returns `vegaSpec` that can be used to display data. Please note, it doesn't contain data. You need to use data from `toolCall.result.data`. + + +#### Error Handling + +When a tool encounters an error, the result field contains structured error information as a JSON string: + +**Standard Error Format:** + +When an error occurs, the `result` property of the toolCall will contain an `error` property. + +```json +{ + "toolCall": { + "name": "cubeMeta", + "input": "{\"searchQuery\":\"opportunities deals\"}", + "result": "{\n \"error\": \"Error: BadRequestError: Bad branch\"\n}" + }, + "isInProcess": false +} +``` + +## Code Examples + + + +```bash cURL +curl -X POST "https://ai-engineer.cubecloud.dev/api/v1/public/cloud/agents/2/chat/stream-chat-state" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer YOUR_SESSION_TOKEN" \ + -d '{ + "chatId": "chat-session-123", + "input": "Show me revenue trends for the last 6 months" + }' +``` + +```javascript JavaScript +// First, get a session token +const session = await fetch('https://your-tenant.cubecloud.dev/api/v1/embed/generate-session', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Api-Key ${API_KEY}', + }, + body: JSON.stringify({ + externalId: 'user@example.com', + email: 'user@example.com', + userAttributes: [ + { + name: 'city', + value: 'San Francisco' + } + ] + }), +}); + +const { sessionId } = await session.json(); + +const tokenResponse = await fetch('https://your-tenant.cubecloud.dev/api/v1/embed/session/token', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Api-Key ${API_KEY}', + }, + body: JSON.stringify({ sessionId }), +}); + +const { token } = await tokenResponse.json(); + +// Now use the token to make the chat request +const response = await fetch( + 'https://ai-engineer.cubecloud.dev/api/v1/public/cloud/agents/2/chat/stream-chat-state', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }, + body: JSON.stringify({ + chatId: 'chat-session-123', + input: 'Hello, how can you help me analyze our data?' + }) + } +); + +// Handle streaming response +const reader = response.body.getReader(); +const decoder = new TextDecoder(); + +while (true) { + const { done, value } = await reader.read(); + if (done) break; + + const chunk = decoder.decode(value); + const lines = chunk.trim().split('\n'); + + lines.forEach(line => { + if (line) { + const message = JSON.parse(line); + console.log('Received:', message); + + // Handle different message types + if (message.role === 'assistant' && message.content) { + updateChatUI(message); + } + } + }); +} +``` + +```python Python +import requests +import json + +# First, get a session token +session_url = "https://your-tenant.cubecloud.dev/api/v1/embed/generate-session" +session_headers = { + "Content-Type": "application/json", + "Authorization": f"Api-Key {api_key}" +} + +session_response = requests.post(session_url, headers=session_headers, json={ + "externalId": "user@example.com", + "email": "user@example.com", + "userAttributes": [ + { + "name": "city", + "value": "San Francisco" + } + ] +}) +session_id = session_response.json()["sessionId"] + +token_url = "https://your-tenant.cubecloud.dev/api/v1/embed/session/token" +token_response = requests.post(token_url, headers=session_headers, json={"sessionId": session_id}) +token = token_response.json()["token"] + +# Now use the token to make the chat request +url = "https://ai-engineer.cubecloud.dev/api/v1/public/cloud/agents/2/chat/stream-chat-state" +headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {token}" +} + +data = { + "chatId": "chat-session-123", + "input": "What are our top performing products?" +} + +response = requests.post(url, headers=headers, json=data, stream=True) + +for line in response.iter_lines(): + if line: + message = json.loads(line.decode('utf-8')) + print("Received:", message) +``` + + + +## Error Handling + +- **401 Unauthorized**: Invalid or missing JWT token. Verify your token is properly signed and not expired. +- **400 Bad Request**: Invalid request body or parameters. Check required fields and data types. +- **404 Not Found**: Agent or tenant not found. Verify the tenantName and agentId parameters. +- **500 Internal Server Error**: Server processing error. Contact support if the issue persists. diff --git a/docs/pages/cube/embed/api/mcp-server.mdx b/docs/pages/cube/embed/api/mcp-server.mdx new file mode 100644 index 0000000000000..d84a152b106b6 --- /dev/null +++ b/docs/pages/cube/embed/api/mcp-server.mdx @@ -0,0 +1,78 @@ +# MCP Server + +_Model Context Protocol server for Cube AI agent integration_ + +The Cube MCP (Model Context Protocol) Server provides seamless integration with AI assistants like Claude Desktop and Cursor, enabling direct chat functionality with Cube's AI agent for analytics and data exploration. + +## What is MCP? + +Model Context Protocol (MCP) is an open standard that enables AI assistants to securely connect to external data sources and tools. The Cube MCP Server acts as a bridge between your AI assistant and Cube's analytics platform, allowing you to ask data questions directly from your coding environment. + + +## Tools Available + +- **chat**: Interactive chat with Cube AI agent for analytics and data exploration with streaming real-time responses + +## Installation & Setup + +### Prerequisites + +Before setting up the MCP server, ensure you have: + +- **Admin privileges** in your Cube instance +- An active Cube tenant +- Claude Desktop or Cursor installed + +### 1. Obtain Required Credentials + +You'll need four key pieces of information: + +#### CUBE_API_KEY + +- Go to Admin → API Keys to create and manage API keys +- Create a new API key for your Cube organization +- For detailed instructions, see our [API Keys documentation](../api-keys.mdx) + +#### CUBE_TENANT_NAME +- Your tenant name from the URL (e.g., 'acme' in `https://acme.cubecloud.dev`) + +#### CUBE_AGENT_ID +- Go to Admin → Agent → Click on Agent to find the Agent ID + +#### USER_ID +- Can be the email address of a registered user in your Cube instance +- Or any custom unique identifier for unregistered users +- This helps identify and personalize responses from the AI agent + +## Configuration + + +Add the following configuration to your Claude Desktop or Cursor MCP settings: + +```json +{ + "mcpServers": { + "cube-mcp-server": { + "command": "npx", + "args": ["@cube-dev/mcp-server"], + "env": { + "CUBE_API_KEY": "your_api_key_here", + "CUBE_TENANT_NAME": "your_tenant_name", + "CUBE_AGENT_ID": "your_agent_id", + "USER_ID": "user@example.com" + } + } + } +} +``` + +## Usage Examples + +Once configured, you can interact with Cube's AI agent directly from your AI assistant: + +Ask natural language questions about your data: + +- "Show me revenue trends for the last 6 months" +- "What are our top-performing products this quarter?" +- "How does customer acquisition compare year-over-year?" + diff --git a/docs/pages/cube/embed/chat.mdx b/docs/pages/cube/embed/chat.mdx new file mode 100644 index 0000000000000..fd513cda273a4 --- /dev/null +++ b/docs/pages/cube/embed/chat.mdx @@ -0,0 +1,102 @@ +# Embed Chat + +_Embed analytics chat with iframe_ + +Cube supports embedding the analytics chat interface directly into your applications via an iframe or API. This allows you to give users a guided, semantic-layer-aware data assistant—anywhere in your product or portal. + +## Getting Started with Embedding + +### 1. Enable Embedding + +To enable the embedding feature: + +- You must have **admin privileges** in your Cube instance. +- Go to Admin → API → Embed +- Click **Enable Embedding**. + +Once enabled, you'll be able to generate embed sessions using your [API key](/cube/embed/api-keys). + +### 2. Get Your API Key + +To use the embedded chat, you need an **[API Key](/cube/embed/api-keys)**: + +- Go to Access → API Keys in your Cube admin panel +- Generate or copy your existing API key. +- You'll use this key to authenticate API calls for generating embed sessions. + +### 3. Generate an Embed Session + +Use the `/api/v1/embed/generate-session` endpoint to create a session for your user. This endpoint will automatically create (insert) or update the external user based on the `externalId` provided. + + + Accounts are limited to 10,000 external users. To increase this limit, please + contact support. + + +#### Example (JavaScript) + +```javascript +const API_KEY = "YOUR_API_KEY"; + +const session = await fetch( + "https://your-tenant.cubecloud.dev/api/v1/embed/generate-session", + { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: "Access-Token ${API_KEY}", + }, + body: JSON.stringify({ + externalId: "user@example.com", + userAttributes: [ + // optional - enables row-level security + { + name: "city", + value: "San Francisco", + }, + { + name: "department", + value: "Sales", + }, + ], + }), + }, +); + +const data = await session.json(); +const sessionId = data.sessionId; +``` + +### 4. Embedding via iframe + +Use the session ID to embed the chat UI in your application: + +```html + +``` + +## User Attributes + +User attributes enable row-level security and personalized chat responses by filtering data based on user permissions. The attributes you pass during session generation automatically filter data queries and responses. + + + User attributes must first be configured in your Cube admin panel. See the + [User Attributes Administration Guide](/cube/administration/user-attributes) for + setup instructions. + + +**How it works:** + +1. **Configure attributes** in your admin panel (e.g., `city`, `department`) +2. **Pass attributes** during session generation +3. **Data is automatically filtered** based on user permissions through access policies +4. **AI responses are personalized** to the user's context + +**Example use cases:** + +- Sales reps only see data for their assigned territory +- Regional managers see data filtered by their city +- Department heads see only their department's metrics diff --git a/docs/pages/cube/embed/dashboard.mdx b/docs/pages/cube/embed/dashboard.mdx new file mode 100644 index 0000000000000..c23fd972e846f --- /dev/null +++ b/docs/pages/cube/embed/dashboard.mdx @@ -0,0 +1,157 @@ +# Embed Dashboard + +_Embed dashboards with iframe_ + +Cube supports embedding dashboards directly into your applications via an iframe. This allows you to display interactive dashboards anywhere in your product or portal. + +## Getting Started with Embedding + +### 1. Enable Embedding + +To enable the embedding feature: + +- You must have **admin privileges** in your Cube instance. +- Go to Admin → API → Embed +- Click **Enable Embedding**. + +Once enabled, you'll be able to generate embed sessions using your [API key](/cube/embed/api-keys). + +### 2. Get Your API Key + +To use the embedded dashboard, you need an **[API Key](/cube/embed/api-keys)**: + +- Go to Access → API Keys in your Cube admin panel +- Generate or copy your existing API key. +- You'll use this key to authenticate API calls for generating embed sessions. + +### 3. Generate an Embed Session + +Use the `/api/v1/embed/generate-session` endpoint to create a session for your user. This endpoint will automatically create (insert) or update the external user based on the `externalId` provided. + + + Accounts are limited to 10,000 external users. To increase this limit, please + contact support. + + +#### Example (JavaScript) + +```javascript +const API_KEY = "YOUR_API_KEY"; + +const session = await fetch( + "https://your-tenant.cubecloud.dev/api/v1/embed/generate-session", + { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: "Access-Token ${API_KEY}", + }, + body: JSON.stringify({ + externalId: "user@example.com", + }), + }, +); + +const data = await session.json(); +const sessionId = data.sessionId; +``` + +### 4. Embedding via iframe + +Use the session ID to embed the dashboard UI in your application: + +```html + +``` + +#### Complete Example + +Here's a complete HTML example that demonstrates the full embedding flow: + +```html + + + + + + + + + +``` + +## URL Structure + +The dashboard embedding URL follows this pattern: + +``` +https://your-tenant.cubecloud.dev/embed/dashboard/{DASHBOARD_PUBLIC_ID}?session={SESSION_ID} +``` + +### Parameters + +- **DASHBOARD_PUBLIC_ID**: The public ID of the dashboard you want to embed +- **SESSION_ID**: The session ID obtained from the `/api/v1/embed/generate-session` endpoint + +## Security Considerations + +- **API Key Security**: Keep your API keys secure and never expose them in client-side code +- **Session Management**: Sessions are temporary and should be regenerated as needed +- **HTTPS**: Always use HTTPS in production environments + +## Troubleshooting + +### Common Issues + +1. **Invalid Session ID**: Ensure the session ID is valid and hasn't expired +2. **Dashboard Not Found**: Verify the dashboard public ID is correct and the dashboard is published +3. **Authentication Errors**: Check that your API key is valid and has the necessary permissions +4. **CORS Issues**: Ensure your domain is properly configured for embedding + +### Getting Help + +If you encounter issues with dashboard embedding: + +- Check the browser console for error messages +- Verify your API key and session generation +- Ensure the dashboard is published and accessible +- Contact support if you need assistance with configuration diff --git a/docs/pages/cube/embed/embed/_meta.js b/docs/pages/cube/embed/embed/_meta.js new file mode 100644 index 0000000000000..27842e3bef42c --- /dev/null +++ b/docs/pages/cube/embed/embed/_meta.js @@ -0,0 +1,4 @@ +module.exports = { + chat: "Chat", + dashboard: "Dashboard", +}; diff --git a/docs/pages/cube/embed/embed/chat.mdx b/docs/pages/cube/embed/embed/chat.mdx new file mode 100644 index 0000000000000..6059dfcf13906 --- /dev/null +++ b/docs/pages/cube/embed/embed/chat.mdx @@ -0,0 +1,102 @@ +# Embed Chat + +_Embed analytics chat with iframe._ + +Cube supports embedding the analytics chat interface directly into your applications via an iframe or API. This allows you to give users a guided, semantic-layer-aware data assistant—anywhere in your product or portal. + +## Getting Started with Embedding + +### 1. Enable Embedding + +To enable the embedding feature: + +- You must have **admin privileges** in your Cube instance. +- Go to Admin → API → Embed +- Click **Enable Embedding**. + +Once enabled, you'll be able to generate embed sessions using your [API key](/cube/embed/api-keys). + +### 2. Get Your API Key + +To use the embedded chat, you need an **[API Key](/cube/embed/api-keys)**: + +- Go to Access → API Keys in your Cube admin panel +- Generate or copy your existing API key. +- You'll use this key to authenticate API calls for generating embed sessions. + +### 3. Generate an Embed Session + +Use the `/api/v1/embed/generate-session` endpoint to create a session for your user. This endpoint will automatically create (insert) or update the external user based on the `externalId` provided. + + + Accounts are limited to 10,000 external users. To increase this limit, please + contact support. + + +#### Example (JavaScript) + +```javascript +const API_KEY = "YOUR_API_KEY"; + +const session = await fetch( + "https://your-tenant.cubecloud.dev/api/v1/embed/generate-session", + { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: "Access-Token ${API_KEY}", + }, + body: JSON.stringify({ + externalId: "user@example.com", + userAttributes: [ + // optional - enables row-level security + { + name: "city", + value: "San Francisco", + }, + { + name: "department", + value: "Sales", + }, + ], + }), + }, +); + +const data = await session.json(); +const sessionId = data.sessionId; +``` + +### 4. Embedding via iframe + +Use the session ID to embed the chat UI in your application: + +```html + +``` + +## User Attributes + +User attributes enable row-level security and personalized chat responses by filtering data based on user permissions. The attributes you pass during session generation automatically filter data queries and responses. + + + User attributes must first be configured in your Cube admin panel. See the + [User Attributes Administration Guide](/cube/administration/user-attributes) for + setup instructions. + + +**How it works:** + +1. **Configure attributes** in your admin panel (e.g., `city`, `department`) +2. **Pass attributes** during session generation +3. **Data is automatically filtered** based on user permissions through access policies +4. **AI responses are personalized** to the user's context + +**Example use cases:** + +- Sales reps only see data for their assigned territory +- Regional managers see data filtered by their city +- Department heads see only their department's metrics diff --git a/docs/pages/cube/embed/embed/dashboard.mdx b/docs/pages/cube/embed/embed/dashboard.mdx new file mode 100644 index 0000000000000..e87c7ea114dbb --- /dev/null +++ b/docs/pages/cube/embed/embed/dashboard.mdx @@ -0,0 +1,157 @@ +# Embed Dashboard + +_Embed dashboards with iframe._ + +Cube supports embedding dashboards directly into your applications via an iframe. This allows you to display interactive dashboards anywhere in your product or portal. + +## Getting Started with Embedding + +### 1. Enable Embedding + +To enable the embedding feature: + +- You must have **admin privileges** in your Cube instance. +- Go to Admin → API → Embed +- Click **Enable Embedding**. + +Once enabled, you'll be able to generate embed sessions using your [API key](/cube/embed/api-keys). + +### 2. Get Your API Key + +To use the embedded dashboard, you need an **[API Key](/cube/embed/api-keys)**: + +- Go to Access → API Keys in your Cube admin panel +- Generate or copy your existing API key. +- You'll use this key to authenticate API calls for generating embed sessions. + +### 3. Generate an Embed Session + +Use the `/api/v1/embed/generate-session` endpoint to create a session for your user. This endpoint will automatically create (insert) or update the external user based on the `externalId` provided. + + + Accounts are limited to 10,000 external users. To increase this limit, please + contact support. + + +#### Example (JavaScript) + +```javascript +const API_KEY = "YOUR_API_KEY"; + +const session = await fetch( + "https://your-tenant.cubecloud.dev/api/v1/embed/generate-session", + { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: "Access-Token ${API_KEY}", + }, + body: JSON.stringify({ + externalId: "user@example.com", + }), + }, +); + +const data = await session.json(); +const sessionId = data.sessionId; +``` + +### 4. Embedding via iframe + +Use the session ID to embed the dashboard UI in your application: + +```html + +``` + +#### Complete Example + +Here's a complete HTML example that demonstrates the full embedding flow: + +```html + + + + + + + + + +``` + +## URL Structure + +The dashboard embedding URL follows this pattern: + +``` +https://your-tenant.cubecloud.dev/embed/dashboard/{DASHBOARD_PUBLIC_ID}?session={SESSION_ID} +``` + +### Parameters + +- **DASHBOARD_PUBLIC_ID**: The public ID of the dashboard you want to embed +- **SESSION_ID**: The session ID obtained from the `/api/v1/embed/generate-session` endpoint + +## Security Considerations + +- **API Key Security**: Keep your API keys secure and never expose them in client-side code +- **Session Management**: Sessions are temporary and should be regenerated as needed +- **HTTPS**: Always use HTTPS in production environments + +## Troubleshooting + +### Common Issues + +1. **Invalid Session ID**: Ensure the session ID is valid and hasn't expired +2. **Dashboard Not Found**: Verify the dashboard public ID is correct and the dashboard is published +3. **Authentication Errors**: Check that your API key is valid and has the necessary permissions +4. **CORS Issues**: Ensure your domain is properly configured for embedding + +### Getting Help + +If you encounter issues with dashboard embedding: + +- Check the browser console for error messages +- Verify your API key and session generation +- Ensure the dashboard is published and accessible +- Contact support if you need assistance with configuration diff --git a/docs/pages/cube/embed/mcp-server.mdx b/docs/pages/cube/embed/mcp-server.mdx new file mode 100644 index 0000000000000..4e6e4e9dc89bf --- /dev/null +++ b/docs/pages/cube/embed/mcp-server.mdx @@ -0,0 +1,78 @@ +# MCP Server + +_Model Context Protocol server for Cube AI agent integration._ + +The Cube MCP (Model Context Protocol) Server provides seamless integration with AI assistants like Claude Desktop and Cursor, enabling direct chat functionality with Cube's AI agent for analytics and data exploration. + +## What is MCP? + +Model Context Protocol (MCP) is an open standard that enables AI assistants to securely connect to external data sources and tools. The Cube MCP Server acts as a bridge between your AI assistant and Cube's analytics platform, allowing you to ask data questions directly from your coding environment. + + +## Tools Available + +- **chat**: Interactive chat with Cube AI agent for analytics and data exploration with streaming real-time responses + +## Installation & Setup + +### Prerequisites + +Before setting up the MCP server, ensure you have: + +- **Admin privileges** in your Cube instance +- An active Cube tenant +- Claude Desktop or Cursor installed + +### 1. Obtain Required Credentials + +You'll need four key pieces of information: + +#### CUBE_API_KEY + +- Go to Admin → API Keys to create and manage API keys +- Create a new API key for your Cube organization +- For detailed instructions, see our [API Keys documentation](../api-keys.mdx) + +#### CUBE_TENANT_NAME +- Your tenant name from the URL (e.g., 'acme' in `https://acme.cubecloud.dev`) + +#### CUBE_AGENT_ID +- Go to Admin → Agent → Click on Agent to find the Agent ID + +#### USER_ID +- Can be the email address of a registered user in your Cube instance +- Or any custom unique identifier for unregistered users +- This helps identify and personalize responses from the AI agent + +## Configuration + + +Add the following configuration to your Claude Desktop or Cursor MCP settings: + +```json +{ + "mcpServers": { + "cube-mcp-server": { + "command": "npx", + "args": ["@cube-dev/mcp-server"], + "env": { + "CUBE_API_KEY": "your_api_key_here", + "CUBE_TENANT_NAME": "your_tenant_name", + "CUBE_AGENT_ID": "your_agent_id", + "USER_ID": "user@example.com" + } + } + } +} +``` + +## Usage Examples + +Once configured, you can interact with Cube's AI agent directly from your AI assistant: + +Ask natural language questions about your data: + +- "Show me revenue trends for the last 6 months" +- "What are our top-performing products this quarter?" +- "How does customer acquisition compare year-over-year?" + diff --git a/docs/pages/cube/introduction.mdx b/docs/pages/cube/introduction.mdx new file mode 100644 index 0000000000000..e307fdba89ad6 --- /dev/null +++ b/docs/pages/cube/introduction.mdx @@ -0,0 +1,16 @@ +# Introduction to Cube + +Cube is the agentic analytics platform built on top of the [Cube Core](/product/introduction) semantic layer. + +## What is Cube? + +Cube enables AI agents and users to query, explore, and manipulate data models — transforming the semantic layer into a dynamic, governed workspace for generating insights, automating workflows, and building data products. + +Cube is a new generation of BI platform built to be used by both humans and AI agents. It empowers different personas across your organization: + +- **Data Engineers** can quickly curate data models with AI assistance, accelerating the development and maintenance of semantic layers +- **Data Analysts** can perform deep analysis with AI assistance, diving into complex data relationships and patterns +- **Business Users** benefit from workbooks and dashboards that Cube can automatically build and maintain +- **AI Agents** can be powered by Cube features through MCP and A2A integrations, enabling automated data discovery, analysis, and reporting workflows + +With Cube, you can power copilots, automate data workflows, and create interactive analytics experiences—all grounded in a consistent and governed data model. diff --git a/docs/pages/cube/workbooks/_meta.js b/docs/pages/cube/workbooks/_meta.js new file mode 100644 index 0000000000000..1a98ab6984cbb --- /dev/null +++ b/docs/pages/cube/workbooks/_meta.js @@ -0,0 +1,6 @@ +module.exports = { + "query-data": "Query Data", + "source-sql": "Source SQL", + dashboards: "Dashboards", + charts: "Charts", +}; diff --git a/docs/pages/cube/workbooks/charts/_meta.js b/docs/pages/cube/workbooks/charts/_meta.js new file mode 100644 index 0000000000000..76f9c5abff937 --- /dev/null +++ b/docs/pages/cube/workbooks/charts/_meta.js @@ -0,0 +1,4 @@ +module.exports = { + "chart-templates": "Chart Templates", + "table-chart": "Table Chart", +}; diff --git a/docs/pages/cube/workbooks/charts/chart-templates.mdx b/docs/pages/cube/workbooks/charts/chart-templates.mdx new file mode 100644 index 0000000000000..6457cfe1b9a4f --- /dev/null +++ b/docs/pages/cube/workbooks/charts/chart-templates.mdx @@ -0,0 +1,16 @@ +# Chart Templates + +_Built-in charts._ + +Cube provides quick chart templates that make it faster to create common visualizations. These templates automatically map the right data fields and apply best practices for each visualization type. + + + +Charts in Cube workbooks provide powerful visualization capabilities for your data models, enabling you to create interactive and insightful visual representations of your analytics. diff --git a/docs/pages/cube/workbooks/charts/table-chart.mdx b/docs/pages/cube/workbooks/charts/table-chart.mdx new file mode 100644 index 0000000000000..9a2af1a9482a6 --- /dev/null +++ b/docs/pages/cube/workbooks/charts/table-chart.mdx @@ -0,0 +1,5 @@ +# Table Chart + +_Creating and customizing table charts in Cube workbooks._ + +Table charts provide a tabular view of your data, perfect for detailed data exploration and when you need to see exact values rather than visual trends. diff --git a/docs/pages/cube/workbooks/dashboards.mdx b/docs/pages/cube/workbooks/dashboards.mdx new file mode 100644 index 0000000000000..921f925699602 --- /dev/null +++ b/docs/pages/cube/workbooks/dashboards.mdx @@ -0,0 +1,14 @@ +# Dashboards + +_Build interactive dashboards and data applications._ + +Transform your data analysis into polished, interactive applications with Cube's dashboard builder. Create comprehensive dashboards that combine multiple visualizations, filters, and content into cohesive data stories. + + \ No newline at end of file diff --git a/docs/pages/cube/workbooks/query-data.mdx b/docs/pages/cube/workbooks/query-data.mdx new file mode 100644 index 0000000000000..fda00152ac187 --- /dev/null +++ b/docs/pages/cube/workbooks/query-data.mdx @@ -0,0 +1,5 @@ +# Query Data + +_Explore and query your data in workbooks._ + +The Data Pane in Cube workbooks provides an intuitive interface for exploring and querying your data models, giving you direct access to all available semantic views along with their measures and dimensions. diff --git a/docs/pages/cube/workbooks/source-sql.mdx b/docs/pages/cube/workbooks/source-sql.mdx new file mode 100644 index 0000000000000..0103adfc5f46b --- /dev/null +++ b/docs/pages/cube/workbooks/source-sql.mdx @@ -0,0 +1,14 @@ +# Source SQL + +_Query your data sources directly in workbooks with AI assistance._ + +The Source SQL capability in Cube workbooks allows you to query your connected data sources directly, beyond just the semantic layer. Our AI agent can research your data source, help you build SQL queries, and refine results in real-time to provide deeper insights and exploration capabilities. + + diff --git a/docs/pages/cube/workspace.mdx b/docs/pages/cube/workspace.mdx new file mode 100644 index 0000000000000..0c4d84fdebe1f --- /dev/null +++ b/docs/pages/cube/workspace.mdx @@ -0,0 +1,64 @@ +# Workspace + +Workspace tools are designed to help you build, test, deploy, and manage +Cube projects. + + + +There are also a few workspace tools in [Cube Core](/product/workspace). + + + +In Cube, you can: + +- Use the code-first [data model editor][ref-data-model] or the no-code [Visual Model][ref-visual-model] +editor to build and enhance the data model of your semantic layer. +- Use the [development mode][ref-dev-mode] and [environments][ref-environments] to +collaborate and test features before going to production. +- Use [Playground][ref-playground] to run queries and test the data model. +- Use [Saved Reports][ref-saved-reports] to manage reports saved from Playground and +spreadsheet integrations. +- Use [Chart Prototyping][ref-vizard] to generate code of a front-end + application that works with Cube. +- Use [SQL Runner][ref-sql-runner] to inform the development of the data + model. +- Use the [Integrations][ref-integrations] page to connect your semantic layer +to BIs, spreadsheets, and other visualization tools. +- Use [Query History][ref-query-history] to observe queries and their + performance in real-time. +- Use the [pre-aggregations page][ref-pre-aggs] to inspect pre-aggregations + and their build history. Add new pre-aggregations via [Rollup Designer][ref-rollup-designer]. +- Use [Performance Insights][ref-perf-insights] to analyze the performance + of your deployment as a whole. +- Use [Monitoring Integrations][ref-monitoring-integrations] to export logs and +metrics to external monitoring tools. +- Use the [access control page][ref-access-control] to manage users of your + Cube account and [single sign-on][ref-sso]. +- Use [Audit Log][ref-audit-log] to review security-related events in your +Cube account. +- Use the [encryption keys][ref-encryption-keys] page to manage data-at-rest +encryption in Cube Store. +- Use [Budgets][ref-budgets] to control the usage and spend of your Cube + account. +- Use [Preferences][ref-prefs] to adjust the workspace to your liking. + +[ref-data-model]: /cube/workspace/data-model +[ref-rollup-designer]: /cube/workspace/rollup-designer +[ref-dev-mode]: /cube/workspace/dev-mode +[ref-environments]: /cube/workspace/environments +[ref-sql-runner]: /cube/workspace/sql-runner +[ref-playground]: /cube/workspace/playground +[ref-vizard]: /cube/workspace/vizard +[ref-integrations]: /cube/workspace/integrations +[ref-query-history]: /cube/workspace/query-history +[ref-pre-aggs]: /cube/workspace/pre-aggregations +[ref-perf-insights]: /cube/workspace/performance +[ref-monitoring-integrations]: /cube/workspace/monitoring +[ref-access-control]: /cube/workspace/access-control +[ref-sso]: /cube/workspace/sso +[ref-audit-log]: /cube/workspace/audit-log +[ref-budgets]: /cube/workspace/budgets +[ref-prefs]: /cube/workspace/preferences +[ref-encryption-keys]: /cube/workspace/encryption-keys +[ref-visual-model]: /cube/workspace/visual-model +[ref-saved-reports]: /cube/workspace/saved-reports diff --git a/docs/pages/product/workspace/_meta.js b/docs/pages/cube/workspace/_meta.js similarity index 92% rename from docs/pages/product/workspace/_meta.js rename to docs/pages/cube/workspace/_meta.js index 824a58e88c67c..4d147bf29bc6f 100644 --- a/docs/pages/product/workspace/_meta.js +++ b/docs/pages/cube/workspace/_meta.js @@ -19,7 +19,5 @@ module.exports = { "encryption-keys": "Encryption keys", "budgets": "Budgets", "preferences": "Preferences", - "cli": "CLI", - "semantic-catalog": "Semantic Catalog", "recipes": "Recipes", } diff --git a/docs/pages/product/workspace/access-control.mdx b/docs/pages/cube/workspace/access-control.mdx similarity index 77% rename from docs/pages/product/workspace/access-control.mdx rename to docs/pages/cube/workspace/access-control.mdx index bcb1167e765c7..9a1c65aafae14 100644 --- a/docs/pages/product/workspace/access-control.mdx +++ b/docs/pages/cube/workspace/access-control.mdx @@ -1,11 +1,11 @@ # Access Control -As a Cube Cloud account administrator, you can define roles with specific permissions -for Cube Cloud resources and apply those roles to users within the account. +As a Cube account administrator, you can define roles with specific permissions +for Cube resources and apply those roles to users within the account. -Access control is available in Cube Cloud on +Access control is available in Cube on [Enterprise and above](https://cube.dev/pricing) product tiers. @@ -16,16 +16,16 @@ and associate [supported actions](#actions) with those roles. ## Managing accounts -Account administrators have ultimate control over the Cube Cloud account, including +Account administrators have ultimate control over the Cube account, including [managing roles](#managing-roles) and assigning them to users. You can see which users are account administrators on the Members tab of the -Team & Security page in your Cube Cloud. Account administrators have the +Team & Security page in your Cube. Account administrators have the Admin toggle enabled next to their name. ## Managing roles -In Cube Cloud, users are not assigned permissions directly. Instead, they are assigned +In Cube, users are not assigned permissions directly. Instead, they are assigned _roles_ that are associated with _policies_. Each policy define what _actions_ they can perform and on what _resources_ they can perform those actions. This approach makes it easier to manage permissions at scale. @@ -50,11 +50,11 @@ See [actions reference](#actions) for a list of available actions. ### Browsing roles -To see a list of roles, go to the Team & Security page in your Cube Cloud +To see a list of roles, go to the Team & Security page in your Cube account, then navigate to the Roles tab: @@ -71,7 +71,7 @@ selected, you can restrict which actions this role can perform by selecting "Specific" and using the dropdown to select specific actions. @@ -82,14 +82,14 @@ When you are finished, click "Create Role" to create the role. Roles are assigned to new users when inviting them: Existing users' roles can be modified from the "Members" tab on the Team page: @@ -102,8 +102,8 @@ Actions for the `Global` policy: | Action | Description | | --- | --- | | `Alerts Access`
`Alerts Create`
`Alerts Edit`
`Alerts Delete` | View, create, edit, and delete [budgets][ref-budgets]. | -| `Billing Access` | Access the billing data of the Cube Cloud account. | -| `Deployment Manage` | Create and delete deployments in the Cube Cloud account. | +| `Billing Access` | Access the billing data of the Cube account. | +| `Deployment Manage` | Create and delete deployments in the Cube account. | Actions for the `Deployment` policy: @@ -115,7 +115,6 @@ Actions for the `Deployment` policy: | `Data Model Edit (all branches)`
`Data Model Edit (dev branches only)` | Use the [development mode][ref-dev-mode], edit the data model, perform Git operations (e.g., commit, pull, push). | | `Queries & Metrics Access` | Use [Query History][ref-query-history] and [Performance Insights][ref-perf-insights]. | | `SQL Runner Access` | Use [SQL Runner][ref-sql-runner]. | -| `Data Assets Access` | Use [Semantic Catalog][ref-semantic-catalog]. | Actions for the `Report` policy: @@ -130,12 +129,11 @@ Actions for the `ReportFolder` policy: | `Report Read`
`Report Manage` | View and create/delete report folders. | -[ref-budgets]: /product/workspace/budgets -[ref-playground]: /product/workspace/playground -[ref-data-model]: /product/workspace/data-model -[ref-visual-model]: /product/workspace/visual-model -[ref-dev-mode]: /product/workspace/dev-mode -[ref-query-history]: /product/workspace/query-history -[ref-perf-insights]: /product/workspace/performance -[ref-sql-runner]: /product/workspace/sql-runner -[ref-semantic-catalog]: /product/workspace/semantic-catalog +[ref-budgets]: /cube/workspace/budgets +[ref-playground]: /cube/workspace/playground +[ref-data-model]: /cube/workspace/data-model +[ref-visual-model]: /cube/workspace/visual-model +[ref-dev-mode]: /cube/workspace/dev-mode +[ref-query-history]: /cube/workspace/query-history +[ref-perf-insights]: /cube/workspace/performance +[ref-sql-runner]: /cube/workspace/sql-runner diff --git a/docs/pages/product/workspace/audit-log.mdx b/docs/pages/cube/workspace/audit-log.mdx similarity index 75% rename from docs/pages/product/workspace/audit-log.mdx rename to docs/pages/cube/workspace/audit-log.mdx index 46ac279aed7e1..0aabf5e45f7aa 100644 --- a/docs/pages/product/workspace/audit-log.mdx +++ b/docs/pages/cube/workspace/audit-log.mdx @@ -1,12 +1,12 @@ # Audit Log -Audit Log collects, stores, and displays security-related events within a Cube Cloud +Audit Log collects, stores, and displays security-related events within a Cube account, across all deployments. You can use it to maintain and review a historical record of activity for compliance purposes. -Audit Log is available in Cube Cloud on the +Audit Log is available in Cube on the [Enterprise Premier](https://cube.dev/pricing) product tier. You can also choose an [Audit Log tier](/product/deployment/cloud/pricing#audit-log-tiers). @@ -90,10 +90,10 @@ Audit Log collects the following types of events: | Category | Event type | | --- | --- | | Users | `Created user`
`Deleted user`
`Invited user`
`Updated user profile`
`Requested password reset`
`Changed password` | -| [Access control](/product/workspace/access-control) | `Created role`
`Deleted role`
`Updated role`
`Assigned role to user`
`Assigned roles to user`
`Removed role from user` | +| [Access control](/cube/workspace/access-control) | `Created role`
`Deleted role`
`Updated role`
`Assigned role to user`
`Assigned roles to user`
`Removed role from user` | | Authentication | `Logged in`
`Logged out`
`Redirected to SAML provider for login`
`Logged in via SAML` | -| Account and [single sign-on](/product/workspace/sso) | `Updated account settings`
`Updated account authentication configuration`
`Updated account SAML configuration`
`Uploaded identity provider metadata file` | +| Account and [single sign-on](/cube/workspace/sso) | `Updated account settings`
`Updated account authentication configuration`
`Updated account SAML configuration`
`Uploaded identity provider metadata file` | | [Deployments](/product/deployment/cloud/deployments) | `Created deployment`
`Deleted deployment`
`Updated deployment configuration`
`Enabled SQL API for deployment`
`Generated data model` | -| Branches and [dev mode](/product/workspace/dev-mode) | `Created Git branch`
`Deleted Git branch`
`Entered dev mode`
`Exited dev mode`
`Pulled changes to data model`
`Committed and merged changes to data model`
`Merged changes to data model`
`Reverted changes to data model in branch` | -| [Continuous deployment](/product/deployment/cloud/continuous-deployment) | `Requested connection of GitHub account`
`Connected deployment to GitHub repository`
`Generated SSH key for deployment`
`Connected deployment to Git upstream`
`Generated Git credentials for Cube Cloud repository`
`Generated webhook token for Git repository`
`Received a Git hook`
`Started uploading files`
`Finished uploading files`
`Triggered new build` | -| [Budgets](/product/workspace/budgets) | `Created budget`
`Deleted budget`
`Updated budget` | \ No newline at end of file +| Branches and [dev mode](/cube/workspace/dev-mode) | `Created Git branch`
`Deleted Git branch`
`Entered dev mode`
`Exited dev mode`
`Pulled changes to data model`
`Committed and merged changes to data model`
`Merged changes to data model`
`Reverted changes to data model in branch` | +| [Continuous deployment](/product/deployment/cloud/continuous-deployment) | `Requested connection of GitHub account`
`Connected deployment to GitHub repository`
`Generated SSH key for deployment`
`Connected deployment to Git upstream`
`Generated Git credentials for Cube repository`
`Generated webhook token for Git repository`
`Received a Git hook`
`Started uploading files`
`Finished uploading files`
`Triggered new build` | +| [Budgets](/cube/workspace/budgets) | `Created budget`
`Deleted budget`
`Updated budget` | \ No newline at end of file diff --git a/docs/pages/product/workspace/budgets.mdx b/docs/pages/cube/workspace/budgets.mdx similarity index 98% rename from docs/pages/product/workspace/budgets.mdx rename to docs/pages/cube/workspace/budgets.mdx index a986e5fd883ca..c18c99dfaf2b8 100644 --- a/docs/pages/product/workspace/budgets.mdx +++ b/docs/pages/cube/workspace/budgets.mdx @@ -6,7 +6,7 @@ when your account's usage exceeds a certain threshold. These rules are called -Budgets are available in Cube Cloud on +Budgets are available in Cube on [Premium and above](https://cube.dev/pricing) product tiers. diff --git a/docs/pages/product/workspace/data-model.mdx b/docs/pages/cube/workspace/data-model.mdx similarity index 89% rename from docs/pages/product/workspace/data-model.mdx rename to docs/pages/cube/workspace/data-model.mdx index 24da36c4832ba..111bfd0786786 100644 --- a/docs/pages/product/workspace/data-model.mdx +++ b/docs/pages/cube/workspace/data-model.mdx @@ -8,12 +8,12 @@ available data modeling features at the expense of a code-centric experience. -Data model editor is available in Cube Cloud on +Data model editor is available in Cube on [all product tiers](https://cube.dev/pricing). -Cube Cloud can create branch-based development API instances to quickly test +Cube can create branch-based development API instances to quickly test changes in the data model in your frontend applications before pushing them into production. @@ -49,7 +49,7 @@ at the top of the screen. After any changes to the project, the API will hot-reload, and the API status will indicate when it's ready. You can exit development mode by clicking Dev Mode X in the purple banner. If -you've been editing a data model and navigate away, Cube Cloud will warn you if +you've been editing a data model and navigate away, Cube will warn you if there are any unsaved changes: [ref-data-modeling]: /product/data-modeling/overview -[ref-rollup-designer]: /product/workspace/rollup-designer +[ref-rollup-designer]: /cube/workspace/rollup-designer [ref-creating-deployment]: /product/deployment/cloud/deployments#creating-a-new-deployment -[ref-visual-model]: /product/workspace/visual-model \ No newline at end of file +[ref-visual-model]: /cube/workspace/visual-model \ No newline at end of file diff --git a/docs/pages/product/workspace/dev-mode.mdx b/docs/pages/cube/workspace/dev-mode.mdx similarity index 94% rename from docs/pages/product/workspace/dev-mode.mdx rename to docs/pages/cube/workspace/dev-mode.mdx index 366181358e523..fce8ee716cb38 100644 --- a/docs/pages/product/workspace/dev-mode.mdx +++ b/docs/pages/cube/workspace/dev-mode.mdx @@ -5,7 +5,7 @@ Development mode allows to test and debug the data model in an isolated -Development mode is available in Cube Cloud on +Development mode is available in Cube on [all product tiers](https://cube.dev/pricing). @@ -104,5 +104,5 @@ scheduled refreshes, we recommend creating a separate deployment using a different Git branch of the same repository. -[ref-environments-dev]: /product/workspace/environments#development-environments -[ref-environments-endpoints]: /product/workspace/environments#api-endpoints \ No newline at end of file +[ref-environments-dev]: /cube/workspace/environments#development-environments +[ref-environments-endpoints]: /cube/workspace/environments#api-endpoints \ No newline at end of file diff --git a/docs/pages/product/workspace/encryption-keys.mdx b/docs/pages/cube/workspace/encryption-keys.mdx similarity index 92% rename from docs/pages/product/workspace/encryption-keys.mdx rename to docs/pages/cube/workspace/encryption-keys.mdx index bef74f26be39b..2cf2dfb0e2da2 100644 --- a/docs/pages/product/workspace/encryption-keys.mdx +++ b/docs/pages/cube/workspace/encryption-keys.mdx @@ -1,17 +1,17 @@ # Encryption keys -The Encryption Keys page in Cube Cloud allows to manage [data-at-rest +The Encryption Keys page in Cube allows to manage [data-at-rest encryption in Cube Store][ref-cube-store-encryption]. -Data-at-rest encryption in Cube Store is available in Cube Cloud on the +Data-at-rest encryption in Cube Store is available in Cube on the [Enterprise Premier](https://cube.dev/pricing) product tier. It also requires the M [Cube Store Worker tier](/product/deployment/cloud/pricing#cube-store-worker-tiers). -Navigate to Settings → Encryption Keys in your Cube Cloud deployment +Navigate to Settings → Encryption Keys in your Cube deployment to [provide](#add-a-key), [rotate](#rotate-a-key), or [drop](#drop-a-key) your own customer-managed keys (CMK) for Cube Store. @@ -85,6 +85,6 @@ To drop an encryption key, click Delete next to it. [ref-cube-store-encryption]: /product/caching/running-in-production#data-at-rest-encryption [link-base64]: https://datatracker.ietf.org/doc/html/rfc4648#section-4 [ref-pre-aggs-refresh-strategy]: /product/caching/using-pre-aggregations#refresh-strategy -[ref-pre-aggs-build-manually]: /product/workspace/pre-aggregations +[ref-pre-aggs-build-manually]: /cube/workspace/pre-aggregations [ref-pre-aggs-incremental]: /product/data-modeling/reference/pre-aggregations#incremental -[ref-sql-runner]: /product/workspace/sql-runner \ No newline at end of file +[ref-sql-runner]: /cube/workspace/sql-runner \ No newline at end of file diff --git a/docs/pages/product/workspace/environments.mdx b/docs/pages/cube/workspace/environments.mdx similarity index 91% rename from docs/pages/product/workspace/environments.mdx rename to docs/pages/cube/workspace/environments.mdx index 496110d32c5ad..727c62a3bd896 100644 --- a/docs/pages/product/workspace/environments.mdx +++ b/docs/pages/cube/workspace/environments.mdx @@ -1,13 +1,13 @@ # Environments -Every Cube Cloud deployment provides a number of environments: +Every Cube deployment provides a number of environments: - A single [production environment](#production-environment). - Multiple [staging environments](#staging-environments). - Per-user [development environments](#development-environments). -Environments are available in Cube Cloud on +Environments are available in Cube on [all product tiers](https://cube.dev/pricing). @@ -35,7 +35,7 @@ Production environments run a [Cube version][ref-version] from the selected ## Staging environments Staging environments are activated automatically for specific source code branches -when a branch is switched to in the Cube Cloud UI. Any [development mode][ref-dev-mode] +when a branch is switched to in the Cube UI. Any [development mode][ref-dev-mode] changes must be committed to a branch to be available in this environment. ### Availability @@ -106,12 +106,12 @@ credentials][ref-credentials]. -[ref-dev-mode]: /product/workspace/dev-mode +[ref-dev-mode]: /cube/workspace/dev-mode [ref-deployment-types]: /product/deployment/cloud/deployment-types [ref-api-instance-scalability]: /product/deployment/cloud/scalability#auto-scaling-of-api-instances [ref-pricing-deployment-tiers]: /product/deployment/cloud/pricing#deployment-tiers [ref-suspend]: /product/deployment/cloud/auto-suspension -[ref-overview]: /product/workspace/integrations#review-integrations -[ref-credentials]: /product/workspace/integrations#view-api-credentials +[ref-overview]: /cube/workspace/integrations#review-integrations +[ref-credentials]: /cube/workspace/integrations#view-api-credentials [ref-version]: /product/deployment/cloud/deployments#cube-version [ref-version-channel]: /product/deployment/cloud/deployments#update-channels \ No newline at end of file diff --git a/docs/pages/product/workspace/integrations.mdx b/docs/pages/cube/workspace/integrations.mdx similarity index 94% rename from docs/pages/product/workspace/integrations.mdx rename to docs/pages/cube/workspace/integrations.mdx index be3dabe18b950..48d283290d590 100644 --- a/docs/pages/product/workspace/integrations.mdx +++ b/docs/pages/cube/workspace/integrations.mdx @@ -1,13 +1,13 @@ # Integrations -Cube Cloud provides rich connectivity options for BIs, spreadsheets, and other +Cube provides rich connectivity options for BIs, spreadsheets, and other [visualization tools][ref-viz-tools], powered by [Semantic Layer Sync][ref-sls] and [supported APIs][ref-apis]. Integrations suggest best connectivity options for specific tools. -The Integrations page is available in Cube Cloud on +The Integrations page is available in Cube on [all product tiers](https://cube.dev/pricing). @@ -53,7 +53,7 @@ search bar and the category filter in the sidebar to narrow the selection down. -Click on tools to get detailed instructions on connecting them to Cube Cloud: +Click on tools to get detailed instructions on connecting them to Cube: diff --git a/docs/pages/product/workspace/monitoring.mdx b/docs/pages/cube/workspace/monitoring.mdx similarity index 95% rename from docs/pages/product/workspace/monitoring.mdx rename to docs/pages/cube/workspace/monitoring.mdx index ef1649cc3bd3b..c2d145ce2fe18 100644 --- a/docs/pages/product/workspace/monitoring.mdx +++ b/docs/pages/cube/workspace/monitoring.mdx @@ -1,12 +1,12 @@ # Monitoring Integrations -Cube Cloud allows exporting logs and metrics to external monitoring tools so you +Cube allows exporting logs and metrics to external monitoring tools so you can leverage your existing monitoring stack and retain logs and metrics for the long term. -Monitoring integrations are available in Cube Cloud on +Monitoring integrations are available in Cube on [Enterprise and above](https://cube.dev/pricing) product tiers. You can also choose a [Monitoring Integrations tier](/product/deployment/cloud/pricing#monitoring-integrations-tiers). @@ -20,7 +20,7 @@ Monitoring integrations suspend their work when a deployment goes to [auto-suspe Monitoring integrations are only available for [production environments][ref-prod-env]. -Under the hood, Cube Cloud uses [Vector][vector], an open-source tool for +Under the hood, Cube uses [Vector][vector], an open-source tool for collecting and delivering monitoring data. It supports a [wide range of destinations][vector-docs-sinks], also known as _sinks_. @@ -99,7 +99,7 @@ default_api_key = "$CUBE_CLOUD_MONITORING_DATADOG_API_KEY" ### Inputs for logs Sinks accept the `inputs` option that allows to specify which components of a -Cube Cloud deployment should export their logs: +Cube deployment should export their logs: | Input name | Description | | --- | --- | @@ -314,7 +314,7 @@ Exported data includes the following fields: | Field | Description | | --- | --- | | `trace_id` | Unique identifier of the API request. | -| `account_name` | Name of the Cube Cloud account. | +| `account_name` | Name of the Cube account. | | `deployment_id` | Identifier of the [deployment][ref-deployments]. | | `environment_name` | Name of the [environment][ref-environments], `NULL` for production. | | `api_type` | Type of [data API][ref-apis] used (`rest`, `sql`, etc.), `NULL` for errors. | @@ -361,12 +361,12 @@ Query History export. [prometheus]: https://prometheus.io [mimir]: https://grafana.com/oss/mimir/ [grafana-cloud]: https://grafana.com/products/cloud/ -[ref-prod-env]: /product/workspace/environments#production-environment +[ref-prod-env]: /cube/workspace/environments#production-environment [ref-preagg-warmup]: /product/deployment/cloud/warm-up#pre-aggregation-warm-up -[ref-query-history]: /product/workspace/query-history +[ref-query-history]: /cube/workspace/query-history [ref-deployments]: /product/deployment/cloud/deployments -[ref-environments]: /product/workspace/environments +[ref-environments]: /cube/workspace/environments [ref-apis]: /product/apis-integrations [ref-security-context]: /product/auth/context [ref-cache-type]: /product/caching#cache-type -[ref-query-history-export-recipe]: /product/workspace/recipes/query-history-export \ No newline at end of file +[ref-query-history-export-recipe]: /cube/workspace/recipes/query-history-export \ No newline at end of file diff --git a/docs/pages/product/workspace/monitoring/_meta.js b/docs/pages/cube/workspace/monitoring/_meta.js similarity index 100% rename from docs/pages/product/workspace/monitoring/_meta.js rename to docs/pages/cube/workspace/monitoring/_meta.js diff --git a/docs/pages/product/workspace/monitoring/cloudwatch.mdx b/docs/pages/cube/workspace/monitoring/cloudwatch.mdx similarity index 85% rename from docs/pages/product/workspace/monitoring/cloudwatch.mdx rename to docs/pages/cube/workspace/monitoring/cloudwatch.mdx index 2a7e5b36b463d..f4b384de72fd9 100644 --- a/docs/pages/product/workspace/monitoring/cloudwatch.mdx +++ b/docs/pages/cube/workspace/monitoring/cloudwatch.mdx @@ -2,7 +2,7 @@ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) is an application monitoring service that collects and visualizes logs, metrics, and event data. -This guide demonstrates how to set up Cube Cloud to export logs to Amazon +This guide demonstrates how to set up Cube to export logs to Amazon CloudWatch. ## Configuration @@ -14,7 +14,7 @@ Cloud. To export logs to Amazon CloudWatch, start by creating [a log group and a log stream](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) -for Cube Cloud logs. +for Cube logs. Then, configure the [`aws_cloudwatch_logs`](https://vector.dev/docs/reference/configuration/sinks/aws_cloudwatch_logs/) sink in your [`vector.toml` configuration file][ref-monitoring-integrations-conf]. @@ -48,5 +48,5 @@ Commit the configuration for Vector, it should take effect in a minute. Then, navigate to Amazon CloudWatch and watch the logs coming. -[ref-monitoring-integrations]: /product/workspace/monitoring -[ref-monitoring-integrations-conf]: /product/workspace/monitoring#configuration +[ref-monitoring-integrations]: /cube/workspace/monitoring +[ref-monitoring-integrations-conf]: /cube/workspace/monitoring#configuration diff --git a/docs/pages/product/workspace/monitoring/datadog.mdx b/docs/pages/cube/workspace/monitoring/datadog.mdx similarity index 88% rename from docs/pages/product/workspace/monitoring/datadog.mdx rename to docs/pages/cube/workspace/monitoring/datadog.mdx index 562afc14af75e..5ed533887024c 100644 --- a/docs/pages/product/workspace/monitoring/datadog.mdx +++ b/docs/pages/cube/workspace/monitoring/datadog.mdx @@ -1,7 +1,7 @@ # Integration with Datadog [Datadog][datadog] is a popular fully managed observability service. This guide -demonstrates how to set up Cube Cloud to export logs to Datadog. +demonstrates how to set up Cube to export logs to Datadog. ## Configuration @@ -49,5 +49,5 @@ navigate to Logs in Datadog and watch the logs coming: [datadog-docs-sites]: https://docs.datadoghq.com/getting_started/site/ [vector-datadog-logs]: https://vector.dev/docs/reference/configuration/sinks/datadog_logs/ -[ref-monitoring-integrations]: /product/workspace/monitoring -[ref-monitoring-integrations-conf]: /product/workspace/monitoring#configuration +[ref-monitoring-integrations]: /cube/workspace/monitoring +[ref-monitoring-integrations-conf]: /cube/workspace/monitoring#configuration diff --git a/docs/pages/product/workspace/monitoring/grafana-cloud.mdx b/docs/pages/cube/workspace/monitoring/grafana-cloud.mdx similarity index 92% rename from docs/pages/product/workspace/monitoring/grafana-cloud.mdx rename to docs/pages/cube/workspace/monitoring/grafana-cloud.mdx index e711fb5ecf96d..f2bf7585b5e0b 100644 --- a/docs/pages/product/workspace/monitoring/grafana-cloud.mdx +++ b/docs/pages/cube/workspace/monitoring/grafana-cloud.mdx @@ -1,7 +1,7 @@ # Integration with Grafana Cloud [Grafana Cloud][grafana] is a popular fully managed observability service. This -guide demonstrates how to set up Cube Cloud to export logs to Grafana Cloud. +guide demonstrates how to set up Cube to export logs to Grafana Cloud. ## Configuration @@ -97,5 +97,5 @@ Then, you can create visualizations and add them to a dashboard: [vector-loki]: https://vector.dev/docs/reference/configuration/sinks/loki/ [vector-prometheus-rw]: https://vector.dev/docs/reference/configuration/sinks/prometheus_remote_write/ -[ref-monitoring-integrations]: /product/workspace/monitoring -[ref-monitoring-integrations-conf]: /product/workspace/monitoring#configuration +[ref-monitoring-integrations]: /cube/workspace/monitoring +[ref-monitoring-integrations-conf]: /cube/workspace/monitoring#configuration diff --git a/docs/pages/product/workspace/monitoring/new-relic.mdx b/docs/pages/cube/workspace/monitoring/new-relic.mdx similarity index 88% rename from docs/pages/product/workspace/monitoring/new-relic.mdx rename to docs/pages/cube/workspace/monitoring/new-relic.mdx index 21c3e963c9d61..ed63828e22028 100644 --- a/docs/pages/product/workspace/monitoring/new-relic.mdx +++ b/docs/pages/cube/workspace/monitoring/new-relic.mdx @@ -1,7 +1,7 @@ # Integration with New Relic [New Relic](https://newrelic.com) is an all-in-one observability platform. -This guide demonstrates how to set up Cube Cloud to export logs and metrics +This guide demonstrates how to set up Cube to export logs and metrics to New Relic. ## Configuration @@ -63,5 +63,5 @@ Commit the configuration for Vector, it should take effect in a minute. Then, navigate to New Relic and watch the metrics coming. -[ref-monitoring-integrations]: /product/workspace/monitoring -[ref-monitoring-integrations-conf]: /product/workspace/monitoring#configuration +[ref-monitoring-integrations]: /cube/workspace/monitoring +[ref-monitoring-integrations-conf]: /cube/workspace/monitoring#configuration diff --git a/docs/pages/product/workspace/monitoring/s3.mdx b/docs/pages/cube/workspace/monitoring/s3.mdx similarity index 86% rename from docs/pages/product/workspace/monitoring/s3.mdx rename to docs/pages/cube/workspace/monitoring/s3.mdx index 69b0f658501f9..beaa46e623c60 100644 --- a/docs/pages/product/workspace/monitoring/s3.mdx +++ b/docs/pages/cube/workspace/monitoring/s3.mdx @@ -1,7 +1,7 @@ # Integration with Amazon S3 [Amazon S3](https://aws.amazon.com/s3/) is a popular object storage system. -This guide demonstrates how to set up Cube Cloud to export logs to Amazon S3. +This guide demonstrates how to set up Cube to export logs to Amazon S3. ## Configuration @@ -10,7 +10,7 @@ Cloud. ### Exporting logs -To export logs to Amazon S3, start by creating an S3 bucket for Cube Cloud logs. +To export logs to Amazon S3, start by creating an S3 bucket for Cube logs. Then, configure the [`aws_s3`](https://vector.dev/docs/reference/configuration/sinks/aws_s3/) sink in your [`vector.toml` configuration file][ref-monitoring-integrations-conf]. @@ -59,5 +59,5 @@ This often happens if the bucket on Amazon S3 is in a region that is different from the one you’ve specified in the configuration for Vector. -[ref-monitoring-integrations]: /product/workspace/monitoring -[ref-monitoring-integrations-conf]: /product/workspace/monitoring#configuration +[ref-monitoring-integrations]: /cube/workspace/monitoring +[ref-monitoring-integrations-conf]: /cube/workspace/monitoring#configuration diff --git a/docs/pages/product/workspace/performance.mdx b/docs/pages/cube/workspace/performance.mdx similarity index 98% rename from docs/pages/product/workspace/performance.mdx rename to docs/pages/cube/workspace/performance.mdx index ff81e8d1bf9e9..a0a7c04a9242e 100644 --- a/docs/pages/product/workspace/performance.mdx +++ b/docs/pages/cube/workspace/performance.mdx @@ -1,13 +1,13 @@ # Performance Insights -The Performance page in Cube Cloud displays charts that help +The Performance page in Cube displays charts that help analyze the performance of your deployment and fine-tune its configuration. It's recommended to review Performance Insights when the workload changes or if you face any performance-related issues with your deployment. -Performance Insights are available in Cube Cloud on +Performance Insights are available in Cube on [Premium and above](https://cube.dev/pricing) product tiers. You can also choose a [Query History tier](/product/deployment/cloud/pricing#query-history-tiers). diff --git a/docs/pages/product/workspace/playground.mdx b/docs/pages/cube/workspace/playground.mdx similarity index 96% rename from docs/pages/product/workspace/playground.mdx rename to docs/pages/cube/workspace/playground.mdx index 63bff7f81442d..bc368be51676d 100644 --- a/docs/pages/product/workspace/playground.mdx +++ b/docs/pages/cube/workspace/playground.mdx @@ -8,7 +8,7 @@ or use the [JavaScript SDKs][ref-js-sdk] to build your own query builder. -Playground is available in Cube Cloud on +Playground is available in Cube on [all product tiers](https://cube.dev/pricing). @@ -89,7 +89,7 @@ query or all available members. Click Reset to remove all members fro /> Use the Order drop-down on the right to specify how the -[results](/product/workspace/playground#viewing-results) shall be sorted. +[results](/cube/workspace/playground#viewing-results) shall be sorted. -The Pre-aggregations page is available in Cube Cloud on +The Pre-aggregations page is available in Cube on [all product tiers](https://cube.dev/pricing). diff --git a/docs/pages/product/workspace/preferences.mdx b/docs/pages/cube/workspace/preferences.mdx similarity index 73% rename from docs/pages/product/workspace/preferences.mdx rename to docs/pages/cube/workspace/preferences.mdx index 5c07832d9b9ad..03d001d91a959 100644 --- a/docs/pages/product/workspace/preferences.mdx +++ b/docs/pages/cube/workspace/preferences.mdx @@ -1,11 +1,11 @@ # Preferences -As a Cube Cloud user, you can adjust certain features of the workspace to your +As a Cube user, you can adjust certain features of the workspace to your liking. -Preferences are available in Cube Cloud on +Preferences are available in Cube on [all product tiers](https://cube.dev/pricing). @@ -17,7 +17,7 @@ right corner of the workspace and click Preferences. ## Theme -Cube Cloud has light and dark color themes. You can choose either of them or +Cube has light and dark color themes. You can choose either of them or select Auto to match your system settings.