Tessallite Features
What this covers
A complete reference of every Tessallite feature, what it does, and where to find it in the product. Use this page to discover capabilities you may not know about, or as a checklist when evaluating the platform.
Semantic Modelling
| Feature | Description | Where to use it |
|---|---|---|
| Multi-source connections | Connect PostgreSQL, BigQuery, Spark/Hive, SQL Server, Snowflake, and Redshift | Model Builder > Connections panel |
| Tables and aliases | Add source tables; create role-playing aliases for different join roles | Model Builder > Sources panel |
| Joins | Fact-dimension relationships; one-fact-per-model rule enforced | Model Builder > Canvas or Joins panel |
| Dimensions | Column-based attributes with display name, type, folder, hidden flag | Model Builder > Dimensions panel |
| Calculated dimensions | Expression-based dimensions from SQL (CASE, COALESCE, etc.) | Dimensions panel > Expression tab |
| Measures | Aggregations (SUM, COUNT, AVG, MIN, MAX, DISTINCT COUNT) with format tokens | Model Builder > Measures panel |
| Calculated measures | Expressions over other measures using measure(), safe_div, arithmetic | Measures panel > Create calculated |
| Semi-additive measures | Time-aware aggregation: LAST_NON_EMPTY, FIRST_NON_EMPTY, AVG_OF_CHILDREN, etc. | Measures drawer > semi_additive_behavior |
| Time intelligence variants | 14 canonical time calculations: lag, YTD, YoY growth, trailing N, moving avg | Measures drawer > Variants (fx+) |
| Hierarchies (4 types) | Explicit, date_embedded, segment, inferred with time units | Model Builder > Hierarchies panel |
| Calendar tables | 6 types: Standard, Fiscal, ISO Week, Retail 4-4-5, Hijri, Thai Buddhist | Model Builder > Calendar setup |
| Business glossary | Propose, approve, publish business term definitions | Model Builder > Glossary panel |
| Named Lists (Named Sets) | Reusable dimension member selections: fixed members, Top N, filtered, or Advanced MDX | Model Builder > Named Lists panel |
| KPIs | Value vs goal comparison with status (good/warning/poor) and trend (improving/flat/declining) | Model Builder > KPIs panel |
| KPI Scorecard | Live traffic-light dashboard of all KPIs with grouping by display folder | Model Builder > KPIs tab (bottom bar) |
| KPI Template Gallery | Pre-built KPI definitions across Financial, Customer, Operations, HR, Sales categories | KPIs panel > Templates button |
| Data tags | Sensitivity labels (PII, Financial) for governance | Model Builder > Data Tags panel |
| Model versioning | Immutable snapshots; compare, restore, revert | Model Builder > Save and Version |
| Multi-language metadata (i18n) | Translate dimension, measure, and hierarchy display names into multiple locales; locale selector in Explorer | Translations API; Explorer > Locale selector |
| Model templates | Pre-built starter kits (E-Commerce, SaaS, Financial) auto-imported on model creation | Explorer > Create Model > Template picker |
| Deploy and undeploy | Publish model to BI tools; undeploy to remove | Model Builder > Deploy button |
| Export/Import (JSON) | Portable project bundles with connection rebinding | Project menu > Export / Import |
| Export/Import (YAML) | Git-friendly YAML format with clean diffs | Project menu > Export YAML |
| dbt importer | Import dbt semantic_models and metrics (v1.7+) | Project menu > Import from dbt |
| AtScale importer | Import AtScale SML projects (10 object types: models, datasets, dimensions, metrics, calculations) | Project menu > Import from AtScale |
| Cube importer | Import Cube.dev YAML projects (cubes, measures, dimensions, joins) | Project menu > Import from Cube |
Query Execution
| Feature | Description | Where to use it |
|---|---|---|
| Transparent query routing | Auto-route to fastest path: aggregate, pocket, or live source | Automatic (route badge) |
| Route visibility | Every response shows which path served it and why | Query panel > Route badge |
| Force Live toggle | Bypass aggregates to query source directly | Query panel > Force Live |
| Canvas undo/redo | Ctrl+Z / Ctrl+Y to undo and redo node position changes on the model canvas | Canvas toolbar Undo/Redo buttons |
| Measure Query Panel | Multi-dim pivot: 3 row x 3 col dims, subtotals, slicers, drill | Model Builder > Pivot tab |
| Pivot conditional formatting | Color-scale, data-bars, and threshold-based cell formatting in the pivot grid | Pivot tab > Conditional Format controls |
| Drill-through | Contributing fact rows with pagination and column selection | Pivot > Click cell > Drill drawer |
| Parameterized filters | Named parameters (@region, @date_range) with 5 types | Measures drawer > Parameters |
| Multi-dialect transpilation | PostgreSQL SQL transpiled to BigQuery, Spark, SQL Server, Snowflake, Redshift | Automatic |
| Headless REST API | JSON query interface for programmatic access | POST /api/v1/plugin/execute |
Aggregates and Optimisation
| Feature | Description | Where to use it |
|---|---|---|
| Aggregate creation | Pre-computed tables with selected grain and measures | Aggregates panel > Create |
| Exact and partial grain routing | Exact match or re-aggregate from finer-grained table | Automatic |
| Full and incremental refresh | DROP+CTAS or watermark-based partial update; multi-dialect via sqlglot | Run a Refresh |
| Scheduler dependency chains | Define refresh ordering (B after A) with topological sorting and cycle detection | Aggregates panel > Dependencies |
| Predictive aggregates | Auto-probe sources, score by ROI, top-K build | Aggregates panel > Predictive tab |
| AI optimiser | LLM analysis of miss patterns for suggestions | Aggregates panel > AI Optimiser |
| Aggregate lifecycle | Auto events: created, validated, retired, evicted | Model Health > Lifecycle |
| Pocket tables | Materialised filtered slices with incremental refresh | Pocket Tables panel |
| Pocket auto-suggestion | Analyse repeated WHERE predicates within size budget | Pocket Tables > Suggestions |
Security and Access Control
| Feature | Description | Where to use it |
|---|---|---|
| Project-scoped RBAC | admin/modeler/viewer roles per project | Admin > Project Settings > Access |
| Model-scoped RBAC | Per-model access bindings | Admin > Model-level access |
| Row-level security | Restrict rows by JWT role or user-mapping table | Row Security panel |
| Column-level security | Tag-based column restrictions via personas | Personas > Tag restrictions |
| Personas | Named audience subsets with allow lists and default filters | Personas panel |
| Persona row-security bypass | Elevated audiences bypass RLS | Personas > Bypass toggle |
| Embed tokens | Signed JWTs for iframe embedding with scope control | API: POST /auth/embed-token |
Authentication
| Feature | Description | Where to use it |
|---|---|---|
| Local auth | Email/password with httpOnly cookie JWT and CSRF protection | Login page |
| SSO: SAML 2.0 | SP-initiated SSO for Auth0, Google Workspace, generic SAML | Admin > SSO Configuration |
| SSO: OIDC | Authorization-code flow for generic OIDC providers | Admin > SSO Configuration |
| SSO group mappings | Map IdP groups to project/model roles | Admin > SSO Group Mappings |
| LDAP authentication | Bind-and-search with configurable DN and filter | Admin > Workspace Settings |
| User management | Create, edit, delete, reset password, role assignment | Admin > Users tab |
BI Tool Integrations
| Feature | Description | Where to use it |
|---|---|---|
| JDBC gateway | PostgreSQL wire protocol for DBeaver, Tableau, Superset | Port 5433 |
| XMLA gateway | DAX/MDX for Excel PivotTables and Power BI | Port 8080 |
| Excel PivotTables | Totals, subtotals, drill-down, Show Values As, Timelines | Excel > PivotTable |
| Excel Add-in | Report Builder, chat, CUBE/KPI/Named List formulas, drill-through, stale detection, personas | Excel > Add-ins > Tessallite |
| Power BI | DirectQuery/Import with aggregates and personas | Power BI > Analysis Services |
| Looker Studio / Data Studio direct | PostgreSQL connector path through the JDBC gateway; no LookML or Looker license required; live validation ready to execute | Looker Studio guide |
| Optional Looker-hosted workflow | Generated LookML views and explores backed by governed gateway relations; deferred until a compatible Looker instance exists | Looker-hosted guide |
| LookML emitter | Export-dialog ZIP download and offline CLI with model-hash drift detection; artifact generation requires no Looker access | Emitter guide |
| Multi-catalogue | Business, Technical, Persona catalogues via JDBC/XMLA | BI tool > Schema browser |
Looker version 1 limitations: no persistent derived tables against Tessallite, no bidirectional LookML import, no Looker Action API integration, and no certification of optional Looker-hosted execution. Live Data Studio evidence must be recorded before the direct integration is described as validated.
Conversational Agent
| Feature | Description | Where to use it |
|---|---|---|
| Agent Chat | Multi-turn conversation with streaming, citations, charts | Frontend > Agent Chat |
| Agent conversation export | Export chat conversations as Markdown or PDF with full turn history | Agent Chat > Export button |
| Agent stop button | Abort in-progress SSE streaming response; Stop replaces Send during streaming | Agent Chat > Stop button |
| Multi-LLM support | Claude, GPT, or Gemini per project | Admin > LLM Configuration |
| Session memory | Configurable history depth with token-aware truncation | Admin > Agent > Advanced |
| Guardrails | Token/cost budgets and complexity limits | Admin > Agent > Budget |
| Judge rubric | Answer quality scoring with eval runs | Admin > Agent > Judge rubrics |
| Glossary alias map | Business synonyms for entity resolution | Admin > Agent > Glossary |
| Conversational Client | Standalone chat app (React/Flask) with ECharts | conversational-client/ (port 3333) |
| Embed agent chat | Iframe-embeddable chat via signed embed tokens | Embed API > /embed/chat |
Monitoring and Observability
| Feature | Description | Where to use it |
|---|---|---|
| Query log | Execution history with filters and CSV export | Admin > Query Log |
| Usage analytics | Volume, top measures, hit rate, latency | Model Builder > Usage Analytics |
| Model Health | Alerts, invalids, refreshes, cold-start metrics | Model Builder > Model Health |
| Data quality rules | not_null, unique, range, regex, custom_sql | Model Health > Data Quality |
| Schema drift detection | Auto-detect source schema changes | Model Health > Schema Changes |
| Lineage | Dependency graph: source > joins > dims > measures > aggs | Model Builder > Lineage |
| Email and Slack alerts | Notifications for failures, drift, SLA breach, spike | Admin > Alert Configuration |
| Prometheus + Grafana | Optional monitoring stack with 21-panel dashboard | monitoring/ (ports 9090, 3001) |
Administration
| Feature | Description | Where to use it |
|---|---|---|
| Workspace creation | Tenant provisioning with isolated schemas | System Admin |
| Project/Workspace settings | Limits, budgets, agent config, alert routes | Admin > Settings |
| Audit logging | Model CRUD, auth, security events with levels | Admin > Audit Log |
| Webhooks | HMAC-signed outbound events with DLQ and retries | Admin > Webhooks |
| Scheduler SLA | Refresh time and latency SLA with breach alerts | Admin > SLA |
| System configuration | Database-backed settings editable from UI | System Admin > Configuration |
Infrastructure
| Feature | Description | Where to use it |
|---|---|---|
| Local deployment | Guided script with prereqs, env, migrations | deploy/local/ |
| GCP deployment | Cloud Run + Cloud SQL scripted setup | deploy/gcp/ |
| Docker Compose | Multi-service stack with tessallite_net network | tessallite/infra/ |
| Monitoring stack | Optional Prometheus + Grafana in separate compose | monitoring/ |
| HTTPS with HSTS | nginx redirect with Strict-Transport-Security | Frontend nginx |
| Rate limiting | Per-tenant throttling (60 req/min default) | Automatic |
| MCP server | Model Context Protocol for AI assistants | tessallite/mcp-server/ |