Platform Features
Built for Developers Who
Know What They're Doing
Enta is a high-level development platform for building enterprise applications. Not drag-and-drop for business users. A professional tool for developers and technical teams who understand SQL, data binding, and application architecture.
Every feature designed for technical teams building data-driven applications. Deep capabilities, instant development.
Positioning
High-Level Development Platform
Enta is not "no-code for non-technical people." It is a power tool for professionals who understand software development.
Model-First Architecture
You cannot start from a form. Enta is model-first: you design your data model, business objects, properties, relationships, and inheritance before you build anything visual. This is intentional. It mirrors how real software is designed: data architecture first, then UI, then automation.
Data modeling
Entities, relationships, primary and foreign keys, and inheritance hierarchies.
SQL fundamentals
JOINs, CTEs, window functions, derived tables, aggregations. You see the query and control the query.
Data binding concepts
UI controls bind to data sources through DataContext, parametric expressions, and event subscriptions.
Business process design
Workflows cover 30+ step types, approval chains, dehydration and rehydration, webhooks, and cron triggers.
Security architecture
Role × Object × Property × Permission, deny-wins RBAC, row-level filters, and field-level visibility. One place, enforced everywhere. Queries extract only user-visible data from the database.
Enterprise App Builder
Customizable app builder, built by developers with decades of experience.
No SQL ceiling
JOINs, CTEs (recursive and non-recursive), window functions, correlated subqueries, EXISTS, derived tables, SET operations — constructed visually, compiled to parameterised SQL. No escape hatch needed because SQL is the authoring surface.
Multi-database by design
Same expression model, multiple dialects. SQL Server, PostgreSQL, Oracle, MySQL, SQLite, and a broader supported list. No commitment to a proprietary runtime database.
Works on your existing schema
Connect to the database you already run. Reverse-engineer the schema. Generate Business Objects, expressions, and starter UI on top. No migration. No data movement. No proprietary schema conventions imposed.
Integrated BI
Charts, dashboards, pivot tables, drill-through, cross-filtering, KPI cards, gauges, conditional formatting, exports, scheduled delivery — in the same product, on the same data layer, governed by the same security rules.
Vast library of customizable UI controls
Grids, forms, trees, dropdowns, calendars, charts, KPIs, maps, pivots, gauges — all data-aware and deeply configurable. Bind to expressions, set conditional visibility, template cells and rows, theme to match your brand.
One security primitive everywhere
Row filters and field restrictions expressed once, applied to queries, validations, forms, grids, dashboards, exports, APIs, and workflows. No second security model for the BI tool. No drift between the app and the report.
Composition primitives that scale
Any control can target any other directly. Structured action types. Ordered chains. Multi-form atomic saves with rollback. Compositions that take hundreds of lines of glue code elsewhere are configuration here.
Workflow Engine
Long-running orchestration with pause and resume. Approvals tied to your data model. Scheduled jobs, webhooks, transfer queues. Custom step types can be delivered with a license purchase.
One product, one auth, one data layer
Not BI plus operational app plus workflow plus permission system — separately licensed, separately deployed, separately governed. One identity layer. One security definition. One runtime.
Visual SQL Query Designer
Build almost any operational or analytical query through a dedicated builder, then use it as a governed source for dashboards, reports, grids, workflows, and APIs. SQL depth, visual composition, and security-aware execution live in one place.
JOINs
INNER, LEFT — visual relationship mapping
CTEs
Common Table Expressions with full builder support
Window Functions
ROW_NUMBER, RANK, LAG, LEAD, SUM OVER
Derived Tables
Nested subqueries as data sources
Aggregations
GROUP BY, HAVING, SUM, COUNT, AVG
EXISTS / IN
Correlated and non-correlated subqueries
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY — the full SQL vocabulary, built visually and reused across the application.
WITH ActiveOrders AS ( SELECT o.CustomerID, o.OrderDate, ROW_NUMBER() OVER ( PARTITION BY o.CustomerID ORDER BY o.OrderDate DESC ) AS RowNum FROM Orders o WHERE o.Status = 'Active' ) SELECT c.Name, ao.OrderDate AS LatestOrder, COUNT(*) OVER () AS TotalCustomers FROM Customers c INNER JOIN ActiveOrders ao ON c.ID = ao.CustomerID WHERE ao.RowNum = 1 ORDER BY c.Name ASC;
-- Built visually. Parameterized automatically. No string concatenation.
Reusable Data Sources
Publish one query definition into dashboards, reports, grids, exports, workflows, and APIs.
Security-Aware Results
Row filters, field visibility, and deny-wins permissions stay attached to query execution.
Governed SQL
Parameters, validation, and generated SQL output keep power users out of string concatenation.
Multi-Database Support
Works with supported providers including SQL Server, Azure SQL, PostgreSQL, Oracle, MySQL, SQLite, DB2, ClickHouse, SAP HANA, Sybase ASE, Firebird, Informix, Access, SQL CE, and DB2 iSeries.
Declarative Application Builder
Not a pixel-pusher. A data-bound application builder.
Data Binding
Declarative two-way binding to business object properties, expressions, and computed values. Controls update automatically as the underlying data changes.
Near-Native Event Management
Familiar HTML-like events — click, change, focus, blur, key, hover — wired declaratively to structured actions. No glue code. Any control can drive any other.
Conditional Logic & Styling
Show, hide, enable, disable, recolour, restyle — per expression predicate. Rules attach to any control or layout. Behaviour and presentation react to data, not to imperative code.
Expression-Based Validation
Define validation rules as expressions over the data model. Enforced in forms, grids, APIs, and workflows. Write the rule once, it runs everywhere — no duplicated client/server checks.
Responsive Layouts
CSS-grid based layouts adapt to desktop, tablet, and phone with a single definition. Breakpoint-specific overrides when you need them. No separate mobile pages.
Predefined Page Templates
List + Detail, Master + Tabs, Dashboard, Form Wizard, Search + Results — pre-wired against a business object. Pick a template, point at an object, get a working page. Refine from there.
DataGrid
The workhorse of any business application. Built for serious data — templated, aggregable, groupable, drillable, exportable. Configured visually, bound to expressions, governed by the same security as the rest of the app.
Templated columns
Cell, header, and edit templates. Render anything from icons to nested controls per row.
Client & server-side aggregations
SUM, COUNT, AVG, MIN, MAX with subtotals and grand totals. Pushed to the database for large data sets.
Grouping & multi-level sort
Drag a column header to group. Nested groups with collapsible sections and per-group aggregates.
Child grids
Expandable detail rows with their own grid bound to a related expression. Multi-level nesting supported.
Conditional formatting
Cell, row, and column rules based on expression predicates. Colours, icons, badges, gradient heat maps.
Excel, PDF, CSV export
Full grid or filtered selection. Preserves grouping, aggregates, and formatting in the output.
Sorting, filtering, paging
Per-column filters with operator pickers. Server-side paging for large data sets. Virtual scrolling.
Inline edit & bulk actions
Edit in row, in cell, or in a side panel. Selection-driven bulk operations wired through events.
Integrated BI
Charts, dashboards, pivots, KPI cards, and gauges built on the same SQL foundation as the operational pages. Same data layer, same security rules, same identity. No second tool to license, deploy, and reconcile.
17+ chart types
Bar, line, area, pie, scatter, bubble, waterfall, heatmap, histogram, polar, radar, funnel, treemap, stacked, bullet, composed, sparkline. From simple to specialised.
KPI cards & gauges
Big-number metrics with target/threshold styling. Circular and linear gauges for progress against goals. Conditional colouring tied to value bands.
Drag-drop pivot tables
Pivot rows and columns by drag. Subtotals, grand totals, expand/collapse, drill-through to underlying records. Backed by the same expression engine.
Cross-filtering & drill-down
Click a region on a map, every chart on the page filters to that region. Click a bar, open the detail page with the dimension passed through as a parameter.
Conditional formatting
Highlight cells, rows, columns, and chart segments based on rules or expression predicates. Red if overdue, green if profitable, gradient heat maps, icon overlays.
Exports & scheduled delivery
Excel, PDF, CSV exports of grids, charts, and full pages. Scheduled email delivery on cron, conditional gating (“only send if there are overdue invoices”), recipient lists by role.
Write-back on the same page
Edit a record in a form, save, the chart refreshes. The dashboard is interactive, not an observer. BI tools cannot do this because they live outside the application.
Security applies to BI too
Row filters apply before aggregation, so totals and averages cannot leak hidden rows through inference. Restricted columns never reach the chart. One security definition, applied to dashboards just like everything else.
Page filters & parameters
Date ranges, regions, categories at the page level. Every chart, grid, and KPI on the page subscribes automatically. Bookmarkable URLs preserve the filter state.
From question to warehouse in minutes
Build an expression, mark it as materialised, pick a refresh schedule. The system creates the reporting table, runs the refresh job, and the warehouse schema follows the expression.
No separate ETL tool. No data engineer drawing star schemas on a whiteboard. No second BI product pointed at the warehouse. The materialised expression is the ETL, and any chart binds to it the same way it binds to any other expression.
Materialised expressions
Mark a query as materialised. A scheduled job writes results to a reporting table. The table schema is generated from the expression.
Just another data source
The reporting table behaves like any other source. Other expressions query it. Charts bind to it. No new engine, no new query language.
Incremental refresh
Track the last refresh and pull only what changed. Heavy reports stay fast without reloading the full dataset every cycle.
AI suggests materialisations
“This dashboard joins six tables with window functions. Want me to materialise it on a nightly schedule?” One click to accept.
Schema evolves with metadata
Change the expression, the warehouse table re-materialises. No migration project. No drift between the model and the warehouse.
Conversational dashboards
“Sales performance dashboard with MTD revenue by region and top 10 products by margin” — expressions generated, heavy ones materialised, page built.
The dashboard reads from the same expression engine that powers the forms, enforces the same security as the API, and respects the same identity as the workflow. One foundation, one runtime.
Business Process Automation
Real workflow orchestration. Not a flowchart that sends emails.
30+ Step Types
CRUD, HTTP, email, approval, delay, branching, loops, subworkflows, scripts, and more. Hangfire-powered with distributed locking.
Visual Designer
Drag-and-drop canvas for composing workflows. Every step configurable through a property panel — not YAML files.
Approval Chains
Multi-level approvals with dehydration and rehydration. Workflows pause, wait for human input, and resume without polling.
Triggers
Manual, record events (Created/Updated/Deleted), cron schedules, webhooks, and import completion. Fire from anywhere.
Enterprise Access Control
One security definition. Enforced everywhere. Restricted data never leaves the database — not stripped at the screen, not filtered after the fact.
Where other platforms make security the developer's responsibility — one forgotten check in a thousand places, and a tenant sees another tenant's data — Enta enforces every rule centrally, on every access path, automatically.
Permission Matrix
Role × Object × Property × Permission. Four-dimensional access control configured in one place, enforced across every form, grid, query, API, workflow, and report.
Deny-Wins RBAC
Explicit deny always takes precedence. Multiple restrictions compose automatically — the most restrictive policy wins, every time. No precedence puzzles. No surprise grants.
Row-Level Filters
Restrict which records each role can see through declarative predicates. Filters are applied at the data layer — restricted rows never leave the database, not even into memory.
Field-Level Stripping
Restricted columns are removed from queries before execution. Sensitive fields never travel across the network — they are never read, never serialised, never available to be leaked.
Aggregation-Safe
Row filters apply before grouping and aggregation. Sums, averages, and counts operate only on permitted rows — users cannot infer hidden values through totals.
One Definition, Every Path
The same security rules govern forms, grids, dashboards, reports, exports, APIs, workflows, and scheduled jobs. Define once. Apply to every access path automatically.
Six Layers of Enforcement
Module
Hide entire modules from a role.
Object
Restrict read, create, update, or delete per business object.
Page
Hide specific application pages from navigation and access.
Component
Remove individual panels, tabs, or controls within a page.
Property
Strip restricted fields from queries before they execute.
Row
Filter records through declarative predicates per role.
Impossible to bypass — the application cannot read what the platform refuses to extract.
Refactor Without Fear
Every binding is a structured reference — not a string of code buried in a property box. Rename a field, change a type, restructure an object: Enta tells you exactly what depends on it, before you commit the change.
The first internal tool always works. The fiftieth is where code-driven platforms collapse into silent breakage and support tickets. Enta keeps its shape.
Impact Analysis
See every page, grid, form, expression, workflow, and security rule that depends on a property or object — before you change anything.
Type-Checked Bindings
Change a property type and every consumer is validated. Mismatches surface at design time, not at 3 AM when a report fails for the CFO.
Safe Renames
Rename a property or object once. Every reference updates atomically — queries, controls, workflows, security rules, page layouts.
Guarded Deletes
Deleting a referenced object is blocked or warned, with every dependency listed. No accidental destruction of logic that took weeks to build.
Reverse Lookup
For any property or object, see every consumer at a glance: which queries read it, which forms display it, which workflows write it, which rules govern it.
Proposed change
Rename Customer.Email
→ Customer.EmailAddress
References found
- ✓ Expressions 17
- ✓ Form controls 8
- ✓ Grid columns 3
- ✓ Workflows 2
- ✓ Security rules 1
- ✓ Reports 4
DEV → UAT → PROD on your terms
Because the entire application is metadata — objects, expressions, pages, workflows, security — moving an app between environments is a structured operation on a defined artifact.
Environments are configurable to match whatever your team uses: two-stage, three-stage, feature branches, regional production splits. Database connections, AI provider keys, and other environment-specific settings stay isolated per environment.
DEV
Authoring environment. Build objects, expressions, pages, workflows. Iterate freely. Connect to a dev database with synthetic or sampled data.
UAT
Validation environment. Business reviewers test the deployed metadata against a UAT database. Sign-off gates promotion to production.
PROD
Production. The reviewed metadata runs against the production database with production AI keys and audit logging. No surprise drift from UAT.
Configurable to any number of stages — not fixed at three.
Configurable environments
Define as many stages as your SDLC needs. Name them to match what your team already uses. Two-stage, three-stage, feature branches, regional splits.
The app definition is the artifact
Objects, expressions, pages, workflows, and security rules are all structured metadata. Promoting an app between stages moves a defined artifact, not a tarball of opaque files.
Per-environment connections
Database connection strings, AI provider keys, webhook secrets, integration endpoints stay isolated per environment. Promote the app definition; the connections stay put.
Same security in every stage
Roles, row filters, and field restrictions travel with the metadata. What UAT enforces is exactly what PROD enforces. No surprise gaps because someone forgot to copy a policy.
Fits your existing SDLC
Whether your team uses Git-style branching, ticket-driven releases, or a change advisory board, the environment model adapts. Approval gates and audit logs work alongside whatever governance your organisation already runs.
One-click promotion
ScheduledSide-by-side diff of what changes between stages, approver sign-off, atomic apply with rollback. The metadata foundation is in place today; the streamlined promotion UI is on the roadmap.
Configurable environments. Isolated connections. The app definition is the artifact — moving between stages in a structured way.
Data Ingestion Pipeline
Get data in. Keep it clean. Run it again tomorrow.
Multiple Sources
- CSV / Excel files
- REST API endpoints
- External databases
Processing
- Field mapping and transformation
- Validation rules
- Duplicate detection
Automation
- Scheduled execution
- Repeatable imports
- Full audit trail
Real Domain Modeling
Define once at the base level. Every subtype inherits expressions, workflows, security, and UI.
Expressions defined on Person
automatically work on Employee, Customer, and Vendor.
Workflows triggered on Document
fire for Invoice, PurchaseOrder, and CreditNote.
Security rules on a base type cascade to all subtypes. No duplication. No drift.
UI configurations inherit downward. Override only what differs per subtype.
Bring your own AI provider. Keep control.
Enta is tested against multiple AI providers — Anthropic Claude, OpenAI ChatGPT, and other OpenAI-compatible providers. Dedicated connectors for internal or other providers are delivered on request as part of a license purchase.
AI access is governed by the same permission system as the rest of the platform. Per-user token limits, which schemas the AI can read, and which tools it can call are all configurable per role.
Multiple providers, tested
Anthropic Claude, OpenAI ChatGPT, and other OpenAI-compatible providers work out of the box. Switch providers per workspace without changing how the rest of the platform behaves.
Custom connectors on request
Need to point at an internal model, a private cloud deployment, or a provider not on the list? Dedicated connectors are delivered on request as part of a license purchase.
Per-user token limits
Cap how much each user or role can spend on AI per day, per week, or per request. Predictable costs. No surprise bills from a misconfigured prompt loop.
Configurable schema access
Choose which objects, properties, and relations the AI can see for a given role. The same security rules that govern the application govern what the AI knows.
Tool-level permissions
Pick which tools the AI can call per role. Read-only for analysts, schema edits for administrators, workflow creation gated behind approval. Granular and auditable.
Audited & reviewable
Every AI action goes through the same tool contract, audit log, and security checks as a human edit. What the AI did, when, and on whose behalf is always reviewable.
See It in Action
Deep tools for teams that build serious applications. Start with a demo preview, then decide whether Enta fits your database and workflows.