# About
Hey! I'm Alexander.
[Mprove](https://mprove.io/) is an [Open Source](https://github.com/mprove-io/mprove) Business Intelligence tool focused on Metrics.
With Mprove, instead of directly querying tables, you query semantic data models:
- For SQL data sources, see [Malloy Models](/content/docs/reference/model-malloy).
- For HTTP API data sources, see [Store Models](/content/docs/reference/model-store).
All Models, Charts, Reports and Dashboards are stored under git version control.
I started working on Mprove in 2015 inspired by Looker.
Understanding how things should work and look comes through a lot of trial and error. This is my third big attempt to build it right.
Initially, Mprove YAML had its own module for SQL transformation logic, similar to LookML. In 2025, I replaced this part with Malloy as the next-generation data modeling language.
# Access Roles
Access roles can be assigned to project members by users with **ProjectAdmin** role.
Dashboards, Reports and Models have `access_roles` parameter:
- Syntax for Mprove YAML - `access_roles: [sales, marketing]`
- Syntax for Malloy model custom tags - `access_roles="sales, marketing"`
Only project members with "sales" or "marketing" access roles will be able to access these objects.
If an object has no `access_roles` then any project member can access this object. This means that the object is public for all project members.
If a user has access to a model, then he also has access to all model's charts.
A user may have access to the dashboard, but not have access to the models of
dashboard tiles.
A user may have access to the report, but not have access to the models of report rows (metrics).
# Connections
## SQL Data Sources
Mprove connects to SQL databases that are supported by Malloy:
- PostgreSQL
- MySQL
- Presto / Trino
- SnowFlake
- BigQuery
- DataBricks
- MotherDuck (DuckDb)
## API Data Sources
The API connection is universal and can work with different API providers.
Logic for creating a request body and logic for transforming a response data must be defined in the [Store Model](/content/docs/reference/model-store).
Store connection types:
- API
- Google API
For **API** query, Mprove does a single request to the data source.
For **Google API** query, Mprove does 2 requests:
- Auth request to get credentials
- Data request (query)
## Internal Host and Internal Port Connection Parameters
Some connection types have optional internal host and internal port parameters.
If you provide connection credentials to an external sandbox provider, it will use
the host and port that are not internal, because the sandbox is not on a local network with the mprove server.
If the mprove server has an internal host and internal port specified for a connection, it will use them
instead of the host/port. This removes an extra network hop from the mprove server to the DWH.
# Docs for AI
These documentation pages are available as `.mdx` files for AI and LLM tools.
## Docs
Full LLM text file for Docs section (without CLI, Skills and OpenAPI) is available at /llms-full.txt.
### Sign Up
After signing up, you will be able to log in and create an organization.
### Create Organization
To create a new organization, click the org selector in navbar and click the **New Org** button.
Enter your organization name and click **Create**.
### Create Project
To create a new project, first select your organization in navbar.
Click the project selector in navbar and click the **New Project** button.
Enter your project name and click **Create**.
### Add Project API Keys
Click the project gear icon in navbar and click the **API Keys** button.
Add Sandbox Provider api key
Add LLM Provider api key or use [OpenAI Codex Setup](/content/docs/ai-sessions/openai-codex-setup)
### Add Connection
To create a new database connection, first select your project in navbar.
Click the project gear icon in navbar and click the **Connections** button.
On the Project Connections page, click the **New Connection** button.
Enter your connection details and click **Create**.
### Ask AI to Setup Mprove Project
Click the **Builder** in navbar.
Toggle Editor Session.
Ask "Setup mprove project and use malloy types"
### Explore created Model in UI
On the Models page, click on the model selector and select the model you created.
Click the **Schema** tab.
Select the measure and dimension from the schema.
Save the draft chart as a new chart file.
All charts, reports, and dashboards in Draft status are deleted during the repository validation process.
If you save a draft as a file, it is no longer a draft and will not be deleted during the repository validation process.
Repository validation process is triggered whenever a user manually edits files in their Dev repository or performs Git-related actions in either the Dev or Production repository.
For example, when a user with the FilesEditor role pushes new changes to the Production repository, this Git-related action deletes all drafts for all users in the Production repository.
Keep this in mind when planning how often to push changes to production.
### Commit changes
On the Files page, review the changes that need to be committed.
Click **Commit** button.
Enter a commit message (optional) and click **Commit**.
### Push changes to Production
On the Files page, review the changes that need to be Pushed to Production.
Click **Push to Production** button.
### Switch to Production Repository
Click the **repoName-branchName** selector in navbar and select **production/main** branch.
Check that the chart you created is visible on the Models page in the Charts section.
# Row Level Security
Malloy models can have parameters called [Givens](https://docs.malloydata.dev/documentation/experiments/givens).
In Mprove, givens can be defined at a Project level. They override defaults set in Malloy files.
Also, Givens can be assigned to an [Access Role](/content/docs/access-roles).
Each project member can have multiple access roles. Therefore, for each Given, project member can have multiple values to choose from.
User can select values for each Given in "Project" >> "Selected Givens" page.
Selected Givens applied to each user query.
# User Roles
## Organization Level Roles
### Organization Owner
Mprove users can create new organizations. The creator of the organization is given **Organization Owner** role. It can be changed on the Organization Account page.
**Organization Owner** can do the following:
- create new projects within the organization
- view the Organization Users page