SeekTable Embedded Analytics & Reporting
SeekTable reports/dashboards can be embedded into any web application (including SaaS apps).
This usage scenario is fully supported and SeekTable has special capabilities that make
it a really good choice among other embedded BI solutions.
Built-in pivot tables for you app
Almost all business applications have a demand in tabular reports that are seamlessly
integrated and look like a native part of the app. In-house development
of the reporting infrastructure - especially crosstabs that display aggregated and pivoted app's data -
needs a lot of time & dev resources investments;
the maintenance of this code (adding missing features, fixes etc)
will require significant developers attention all the time.
With SeekTable you can get reports inside your app in a few hours with these steps:
- Deploy a self-hosted SeekTable on your Linux server
- Configure your app's database as a data source / setup data model (dimensions/measures/parameters)
that is needed for your reports. Depending on your application type and its specifics,
this can be simply app's DB (accessed with read-only DB user credentials), or a read-only replica of the app's DB (used specially for reporting purposes),
or even a specialized data warehouse optimized for OLAP-kind of queries.
- Create reports you want to embed: pivot tables, charts, datagrids. All connections in SeekTable are 'live'; this means that your users always get actual (near-real time) data.
- Publish reports to web (Share → Get Link)
- Embed reports into your app by placing iFrame with report's public link
- Secure your embeds by configuring JWT auth
It is possible to embed app view (report builder): in this way a self-service reporting capability may be provided to end-users of your app.
Fast setup, easy maintenance & integration
- On-premises SeekTable is deployed using docker containers; upgrades are simply pulls of newer docker images (just 3 commands in the console!).
- The IT team can create cubes/reports/dashboards in a no-code/low-code manner - all tasks are performed significantly faster in comparison to developing reports inside your app.
- Standard development flow can be used: when devs make changes in their env,
then all configs are exported to human-readable XML and stored under version control
(and text diffs can be used to review changes), then deployed to staging/production
environments (as a part of your app releases).
This flow can be fully automated.
- Reports/dashboards are embedded via iFrames; access is secured with a JWT (JSON Web Token) generated on your app's side
- this is the only thing that needs to be coded by your devs (several lines of code that uses a JWT lib).
All necessary user's context (like user ID or tenant ID etc) can be passed in JWT payload and used as report parameters
(end users are unable to change these parameters in any way).
- Report parameters dropdown options may be loaded from a cube and they can depend on another parameter's selection
(to reflect hierarchies like "country"/"city", "category"/"product" etc).
Full control over report styles & custom visuals
- It is possible to add custom CSS rules either for individual report/dashboard or globally (that affect all reports).
In SeekTable pivot tables are rendered as standard HTML
<table> and charts are rendered to SVG so it
is easy to make visual modifications (change font type/size, margins/paddings etc, colors).
- With white-label mode all mentions of SeekTable may be hidden: embeddeds can look like a native part of your app.
- Dimensions and measures may be configured for conditional HTML formatting that affects content inside table cells - this could be links, cell colors, any custom HTML pieces.
- Dashboards are IT-team centric and controlled with HTML templates that can contain special widgets (reports/parameters).
This means that any custom layout is possible and developers can use any JS library to create custom visuals & filtering
controls. At the same time, typical built-in layouts (grid/tabs) don't require any coding efforts.
Best in class exports
- All HTML formattings are preserved in PDF exports. You can customize PDF content styles by adding your own CSS rules (that applied only for PDFs).
- Long tables are exported to multi-page PDFs with correct page breaks between rows. PDF page footer may be customized (your company's logo and link to website may be here).
- Exports to Excel preserve pivot tables layout, data types (numbers/dates) and values formatting.
Conditional HTML formatting is applied when special functions are used to apply links/colors.
- If a report has a chart, it is also included into Excel export as a pre-configured Excel Chart (in a separate worksheet).
- Pivot reports with standard aggregates (count/sum/avg) may be exported to Excel PivotTable (disconnected).
Embedded BI for multi-tenant web apps
SaaS apps have may store tenants ("customers") data differently; typical architectures are:
- single web app instance / single database (data is separated by a special column like "tenant_id")
- single web app instance / single DB server + multiple databases for tenants (with the same schema)
- single web app instance / multiple DB servers for tenants (with the same schema)
- multiple web app instances for tenants (dedicated installations)
SeekTable can be configured to use shared data models ("cubes"), reports and dashboards for all tenants in all these cases.
Technically SeekTable embedded supports multi-tenancy in this way:
- SaaS web app generates a JWT with payload that includes necessary information about the tenant ("tenant_id" / tenant DB schema / tenant DB server connection details).
JWT may be encrypted so even sensitive things (like DB passwords) may be passed here.
- On SeekTable side this value (or values) is mapped to a special report parameter. Parameters are configured separately for each "cube" and may be applied differently.
- This report parameter can affect SQL query or cube's DB connection string to query this concrete tentant's data:
apply WHERE condition based on the "tenant_id", or append database schema before table names, or resolve DB server host name in the connection string.
- Fixed cost per installation: $233/month - a typical setup for embedding purposes, including white-labeling!
- On-demand pricing policy: you can activate only features ("subscriptions") you need. They may be added anytime.
- Pricing doesn't depend on the number of users (viewers) in your app.
- Non-production instances (development/staging environments) do NOT require separate installation IDs.
- Integration services (initial installation setup, configuration of cubes/reports/dashboards by your requirements, any kind of .NET / front-end development) are provided by SeekTable outsourcing partners.