Datasets
A dataset is a named block of structured data — JSON, CSV, XML, key-value properties, or plain text — stored in one place and reusable across any job in Qinfinite. Where a global variable holds a single value, a dataset holds an entire data structure: a lookup table, a configuration block, a routing map, or a reference list.
Datasets also support versioning. Every time you need to update the content, you can create a new version rather than overwriting the existing one. Previous versions are preserved and can be reactivated if needed.
How It Works
Datasets vs. Global Variables
Both store reusable values, but they serve different needs:
| Need | Best choice |
|---|---|
| One email address | Global Variable |
| A list of department email addresses | Dataset |
| One approval limit | Global Variable |
| Approval rules for every department, stored as JSON | Dataset |
| One API base URL | Global Variable |
| A lookup table of system names and their URLs | Dataset |
| A sensitive token or password | Global Variable (with encryption) |
| A multi-line configuration file | Dataset |
| A value that needs versioning | Dataset |
Use a global variable for a single, self-contained value. Use a dataset when the reusable content is a structured block of data that may grow, change over time, or need a version history.
Dataset Types
When you create a dataset you choose a type. The type describes the format of the data you're storing. The built-in Monaco editor accepts any text, but choosing the right type allows Qinfinite to apply format-specific validation and beautification.
| Type | What it's for | Typical example |
|---|---|---|
| JSON | Structured objects and arrays | Approval rules, configuration maps, lookup tables |
| CSV | Tabular data in comma-separated rows | Employee lists, routing tables, product codes |
| XML | Hierarchical markup data | Integration payloads, legacy system exports |
| Properties | Key-value pairs in key=value format | Application configuration, environment settings |
| Text | Any plain text content | Free-form notes, email templates, multi-line scripts |
Creating a Dataset
- Open Global Configurator and go to the Datasets tab.
- Click Add Dataset.
- Fill in the form:
| Field | Rules | Notes |
|---|---|---|
| Name | 4–30 characters, letters, numbers, underscore, or hyphen | Must be unique — checked as you type |
| Description | Optional | Helps teammates understand what this data is for |
| Tags | Optional, chip-style input | Useful for filtering and searching |
| Type | Required | JSON, CSV, XML, Properties, or Text |
| Value | Required | Entered in the Monaco code editor |
- The value editor is a full Monaco editor — the same editor used in VS Code. You can resize it by dragging the bottom edge. The default height is 300 px.
- Use the Beautify button to auto-format your content (especially useful for JSON and XML).
- Use the Validate button to check whether your content is well-formed for the selected type.
- Click Create to save.
The first saved version is automatically labelled v1, set as the active version, and the total version count is set to 1.
The editor supports standard keyboard shortcuts: Ctrl+Z to undo, Ctrl+/ to toggle comments (for JSON-style content), and Ctrl+F to find within the editor. You can also drag the editor's bottom edge to make it taller when working with large data blocks.
Versioning
Versioning lets you update a dataset without losing the history of what it contained before.
Creating a New Version
In the dataset table, locate the row for an active version and click the Create Version action (shown as a git-merge icon). This:
- Deactivates the current active version (it stays in the list but is no longer active).
- Creates a new record with the next version number — for example
v2afterv1. - Opens the edit form pre-filled with the previous version's content so you only need to change what's different.
- Sets the new version as active on save.
Viewing Version History
Datasets with more than one version show a chevron (expand arrow) in the table row. Click it to expand the row and see all versions. Inactive versions are listed in descending version order. Each version shows its version label, who created it, and when.
Once a dataset has more than one version, the Name field is disabled in the edit form. The name cannot be changed after versioning begins because all versions share the same identity.
Activating an Older Version
To roll back to a previous version:
- Expand the dataset row to view its version history.
- Find the version you want to restore.
- Click Activate on that version row.
The platform immediately deactivates all other versions for this dataset and marks the selected version as active. Any job that references this dataset will use the newly activated version at its next run.
Only one version can be active at a time. Activating an older version deactivates the current one. Jobs always read the active version — there is no way to pin a job to a specific version number.
Referencing a Dataset in a Workflow
Once saved, a dataset can be referenced inside any job step that accepts dynamic expressions. The reference syntax is:
{{ds.datasetName}}
For example, if your dataset is named Dept_Approval_Rules, use:
{{ds.Dept_Approval_Rules}}
The platform substitutes the full content of the active version at runtime. Only active, non-deleted datasets are returned when a job looks up a dataset reference.
To copy the reference format quickly, click the copy icon next to the dataset name in the table.
Validation and Beautify
The editor footer provides two utility actions:
| Button | What it does |
|---|---|
| Beautify | Auto-formats and indents the content based on the selected type. Particularly useful for minified JSON or XML. |
| Validate | Checks whether the content is valid for the selected type — for example, whether JSON parses correctly or whether XML is well-formed. Errors are shown inline. |
Use Validate before saving if you're pasting in content from an external source. An invalid dataset saves successfully but may cause runtime errors when a job tries to parse the content.
The Dataset Table
The main table shows all datasets with these columns:
| Column | Notes |
|---|---|
| Name | Chevron shown if multiple versions exist — click to expand |
| Type | JSON, CSV, XML, Properties, or Text |
| Value | Truncated preview of the active version's content |
| Version | Current active version label (v1, v2, etc.) |
| Tags | All tags for the dataset |
| Created | Date the first version was created |
| Last Modified | Date of the most recent change |
| Actions | Create Version (active rows only), Edit, Delete |
Deleting a Dataset
Datasets use soft-delete — a deleted dataset is hidden from the table and excluded from search results, but its data is retained in the database. If a job references a deleted dataset, the reference will not resolve and the job step will fail.
Search for the dataset name across your jobs before deleting it. A deleted dataset cannot be referenced, and there is no automated warning sent to job owners.
Related Pages
- Global Variables — for single reusable values, secrets, and typed inputs
- Import and Export — move datasets between environments