Categories
Developer Tools Analytics Business Intelligence Data Engineering Data Modeling Semantic Layer Embedded Analytics Headless BIStars
Forks
Watchers
Developer links
Cube
BI tools, customer-facing apps, and AI agents all receive the same governed answer from Cube Core, an open-source semantic layer where every metric is defined once, in code. Models are written in YAML or JavaScript. Cubes describe business entities with measures, dimensions, and joins. Views curate datasets for consumers. Git holds every version, with code review and CI like any other codebase. Queries arrive through a Postgres-compatible SQL API with a MEASURE function, through REST returning JSON, or through GraphQL, which means any tool that speaks Postgres connects without custom drivers. Sources include Snowflake, BigQuery, Databricks, Amazon Athena, Presto, and Postgres. Pre-aggregations declared in the model refresh in the background and live in Cube Store. An aggregate-aware planner routes matching queries to those rollups, and dashboards answer in milliseconds without rescanning the warehouse. Access policies set member-level visibility, row-level filters, and data masking from the security context. Multi-tenant SaaS analytics becomes practical: each customer sees only their own rows, whichever API asks. A development-mode Playground, meant for local use and never for public exposure, composes queries from measures and dimensions, shows the generated SQL, charts the results, and copies ready-made SQL, REST, and GraphQL calls. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache 2.0 licensed.
Benefits
- One Definition for Every Metric
- Measures, dimensions, and joins live in version-controlled YAML or JavaScript files, so dashboards, embedded apps, and AI agents all calculate revenue and churn identically, with every change reviewed through pull requests.
- Fast Dashboards Without Warehouse Costs
- Declared pre-aggregations build in the background and live in Cube Store, and aggregate-aware routing sends matching queries to those rollups instead of re-scanning Snowflake, BigQuery, or Databricks on every load.
- Security Enforced at the Data Layer
- Member-level security, row-level filters, and data masking apply inside the semantic layer, so a customer in an embedded dashboard and an AI agent both see only what their security context allows.
- Connects to Tools Teams Already Use
- A Postgres-compatible SQL API lets any tool that talks to Postgres query Cube directly, while REST (JSON) and GraphQL endpoints serve custom applications without writing a driver or connector.
Features
- Code-First Data Modeling
- Define cubes, views, measures, dimensions, joins, and hierarchies in YAML or JavaScript files, then manage them in Git with code review and CI like application code.
- Pre-Aggregations and Cube Store
- Rollup tables declared in the data model refresh in the background inside Cube Store, a distributed caching engine, and are matched to incoming queries automatically.
- Multiple Data APIs
- Query through Postgres-compatible SQL with a MEASURE function, REST (JSON), GraphQL, and a Meta API that lets clients discover which cubes, views, and members are queryable.
- Multi-Tenant Access Control
- JSON Web Token security context drives row-level filters, member-level visibility, and data masking, including tenant-aware models that route to different data sources.
- Developer Playground
- A local-only browser workspace in development mode for composing queries, charting results, and viewing generated SQL plus equivalent SQL, REST, and GraphQL calls.
- Docker-Based Deployment
- Official cubejs/cube and cubejs/cubestore images run a production stack of API instances, a refresh worker, and a Cube Store router with workers, defined in one Docker Compose file.