Welcome to RestBI

Your code-first solution for building custom analytic applications.

RestBI enabling deep, interactive data exploration, by offering code based powerful query generation, real-time metadata management, and a straight forward framework to integrate with your existing applications

This data flexibility and interoperability allows you to enable features like Drilling and Filtering and Self Service report building within your application with only a few lines of code.

How It Works

RestBI has two main components - The RestBI service and the RestBI SDK. The RestBI SDK allows you to construct queries and contains definitions for the crucial object types. These queries are sent to the RestBI server, which translates the query into optimized SQL and executes it against the database.

RestBI Service

The RestBI service is deployed via containers, and acts as a middle man between your application and the underlying database. A set of APIs is exposed for you to interact with, which includes the primary query endpoint as well as several other useful APIs focused on validating objects and retrieving database metadata.

For typing and ease of use we provide the RestBI SDK, to help you interact with the Service.

Create a Model

Start by setting up a model that reflects your database schema using JSON. This is the metadata layer of RestBI, similar to the interfaces that exist in most traditional reporting tools, and help us abstract the complexity away from the underlying database. This model includes tables, joins, columns, and custom formulas. Once setup we can interact with this dataset by creating simple queries.

const AdventureWorksModel: Model = {
    name: 'AdventureWorksModel',
    displayName: 'Adventure Works Model',  // Added display name for the model
    connection: PostgresConnection,
    tables: [salesOrderHeaderTable, salesOrderDetailTable, productTable, customerTable, productCategoryTable, productSubcategoryTable],
    joins: joins,
    formulas: formulas,
}

Read more about models.

Craft Queries

Using the RestBI SDK create queries on the fly with a simple syntax. Allowing you to do a wide range of analytic functionality such as select columns, apply filters, and define sorting and limits, and create custom formulas. These queries translate directly into SQL, optimized for your database.

const query: Query = {
    columns: ['Total Due', 'Order Date'],
    filters: [
        {
            column: 'Order Date',
            operator: '>=',
            value: new Date('2024-01-01'),
        },
    ],
    limit: 100,
};
client.executeQuery(query, AdventureWorksModel).then((data) => {
    
    //Render data in chart or table
    
});

Build Custom Experiences

A fully runtime BI layer allows you to design unique and highly flexibly experiences. Do you have a rapidly changing schema or allow custom data uploads? A dynamic data model means that you can generate consistent user experiences across a variety of datasets.

Checkout the examples page to see it in action.

RestBI is designed to be intuitive for developers, enabling rapid development and deployment of custom BI solutions that scale with your needs.

Get Started

Last updated