Skip to main content
Skip table of contents

CleverMaps Platform

We highly recommend understanding Main Concepts first. (3 min read)


What is project

The base building blocks of the CleverMaps platform are projects. The project consists of data, metadata, stories configuration and user access permissions.

Data lives inside the Data model in the form of inter-connected data tables. Each project has precisely one Data model and several Metrics, Map dashboards and Stories. Metadata describes the Data model, Metrics formulas, Map dashboards visual etc. A user can modify a project's metadata in several ways, most often via Web UI, Shell or REST API. Note that Stories are not configured through metadata JSON files. They use their configuration. Also, note that in the context of CleverMaps, Map dashboards are called Views. We think of them as having different views on the same data.

One project is meant to be used repeatedly, even for several use cases. The data model is extendable, if a new use case comes Metrics, Map dashboards and Stories are added or adjusted on top of it.

More about metadata in Metadata model.


Studio and Semantic layer border

Semantic layer can be used independently of Studio via REST API or some sdk (Java, JavaScript, TypeScript, Python). Also Studio can be used independently by connecting Studio to external Semantic layer (we did a prototype of it. If you want to know more, get in touch).

Even though both of them are mutually independent they share a technical background. Both of them are configurable by Metadata objects, both of them share some REST API endpoints, both of them can be configured by Shell and also both of them share same web app. You can edit metrics, upload data and discover data model with web app. But also manage Map dashbords, colors charts etc. Sometimes it might be confusing. To clearly describe how we think of this border we attach Metadata model diagram and how we classify metadata objects between two products.

More about each metadata object in Metadata model.

Let us point out, it means the way we understand the border between Studio and Semantic layer is NOT the same as border between back end (REST API) and front end (web app). Despite this, in this documentation we decided to place articles describing REST API, Shell and metadata model under Semantic layer since we expect users of Studio will prefer web app user interface.


Data and Data model

As we say above, each project needs a Data model. To create a data model, it needs good quality data, ingest it from the source and transform it into the required shape. Good quality data can be obtained via our Data Marketplace, and for data management tasks, we provide several ingestion and transformation tools from our Data Toolkit. Tools can be used manually, or you can build automated pipelines with them.

The transformed data are then pushed to the so-called data warehouse. We support managed (internal) data warehouse inside our Semantic layer infrastructure. Or external data warehouse, which customers themself manage. The semantic layer can be configured to connect to the external data warehouse. Usually for security, performance or maintainability reasons. If you need this behaviour, do not hesitate to let us know.

More about data warehousing and data stack architecture in Modern Data Stack overview.


User accounts and Organizations

Each user registers a CleverMaps account and access given projects through it. There can be more than one user in a project, and one user can access one or more projects. Sometimes we call this relationship a project membership. In the scope of a project, users have different roles. User has exactly one role in each project, which defines their permissions. There is at least one admin user with all permissions in each project responsible for its management.

List of user roles and their permissions in User roles and Permissions.

CleverMaps is, by default, a multitenant cloud application, meaning that a single instance serves multiple users from multiple organizations simultaneously. It reduces costs by sharing computational resources between users. We also support single-tenant cloud deployment when you don't want to share resources with others (usually for security reasons). If you want to know more, please get in touch with us.

Each customer has its organization entity on the platform, which groups customers' projects. It is used for billing and platform resources consumption measurement. Projects may live within the personal organization, sometimes called a Trial. It is meant to be used by newcomers who want to test the capabilities of CleverMaps.

Let us point out that there is no direct account-organization membership. The user is considered a member of the organization if he is a member of at least one project within an organization. However, it does not give him any permissions, which means he still has no access to other projects within the organization. Users are responsible for managing projects they are members of, and CleverMaps staff are responsible for managing organizations. Please let us know if you want to add, remove, or rename your organization.


Complete overview

If we put it all together, the CleverMaps platform looks like this.


Continue to Tutorials

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.