Telemetry Aggregation
ADAPTIVE DATADynamic Datatables
Describe your data once. Every feature speaks it.
The Dataset Builder profiles any data source and lets you declare what its fields mean. From then on the Dynamic Datatable, the dashboards, Ask Alloy, the sprint board and remediation all read it by role. New scanner, new export, new customer collection: no code, no release.
| Field | Sample | Role |
|---|---|---|
| cve_id | CVE-2025-31324 | Finding id |
| risk_score | 1 to 5 | Severity |
| host_uuid | 8f3a... | System join |
| state | open, fixed | Status |
| first_seen | 2026-07-02 | Discovered |
| patch_text | Update OpenSSL | Solution |
112,246 rows profiled. 2 columns without an index flagged. Illustrative.
How it works
Profile, confirm, publish
01
Profile
Point the Builder at a collection. It samples it and reports every field with its type, its distinct values and whether it is indexed. It only reads; the one thing it ever writes is the configuration.
Field inventory
02
Confirm the roles
A sample can tell you a field holds numbers from 1 to 5. It cannot tell you that field is the severity rather than one of several other scores, or which field joins to your system inventory. You confirm those, once.
Roles bound
03
Publish
The dataset becomes browsable in the Dynamic Datatable and readable by every feature that asks for a role. The Builder prints the index commands an administrator can run; it never changes your database itself.
A live dataset
The Dataset Builder
The foundation everything else stands on
Read only profiler
Samples any collection and reports every field: type, distinct values, ranges, whether it is indexed. It never writes to your data; the one thing it saves is the configuration.
A vocabulary of roles
Severity, system join, status, finding id, discovered date, solution, control id, CCI and more. You bind fields to roles; the platform asks for roles.
Suggested, then confirmed
Likely roles are suggested from the sample. You confirm them, because a sample cannot tell the severity from another score, and that judgement is what makes everything downstream correct.
Access by role
Restrict a dataset to named seats at publish time. A dataset holding personal data can be visible only to administrators and the Authorizing Official.
Consumers per dataset
Switch a dataset on or off for dashboards, Ask Alloy and the sprint board individually, with the reason recorded.
Index advice, no DDL
Prints the exact index commands an administrator should run. The application never alters your database.
Re-scanned on reload
Opening a saved dataset re-profiles the source and lays your settings back over it, so a field that disappeared months later is reported rather than silently missing.
The Dynamic Datatable
Fully customizable, and there is no code behind it
Columns you choose
Show, hide and reorder columns per dataset. The set you see is yours, not a template's.
Filters from the roles
Filter widgets, ranges, multi selects and Quick Filters are generated from the configuration, not written per collection.
Sort by several columns
Order by severity, then by system, then by age, one click each.
Computed columns
Days since discovered, a name looked up from another dataset, a system name from a device id, without touching the source.
Colour by meaning
Severity, status and exploitation get colour rules seeded from their roles, so a new scanner's table reads like the old one.
Summary cards
A shelf of counts above the table, computed from the same scoped query as the rows.
Act on rows
Select findings and send them to remediation, to Jira, or into a dashboard, where the dataset supports it.
Scoped by the server
Every query is restricted to the systems you are cleared for before a row is returned, and fails closed.
Slow column warnings
A column with no index says so before you sort on it, with the fix an administrator can run.
Who reads it
Every feature asks for a role, never a column name
GenAI Dashboards, Ask Alloy, the sprint board, remediation and the ATO workflow's monitoring phase all read datasets through their roles. That is why a new scanner, a new export or a customer's own collection becomes part of the platform in an afternoon.
Straight answers
Does it change my data?
No. The Builder only reads the collection you point it at. The one thing it writes is the configuration.
Are the rows limited to my systems?
Yes. Results are restricted to the systems you are scoped to, applied by the server, and a scope with no systems returns nothing rather than everything.
What about datasets with personal data?
A dataset can be restricted to named roles at publish time. The identity dataset, for example, is visible only to administrators and the Authorizing Official, and never appears by name to anyone else.
Why was I warned that a column is slow?
That column has no database index, so filtering or sorting on it makes the database scan the whole collection. The Builder lists the commands an administrator can run to fix that permanently.
Bring a dataset. Leave with a page.
Ask for a demo and watch a new data source go from raw collection to a working, scoped, filterable table, then to a dashboard.