Applications
Introduction
In DIAL, applications created by users (either using DIAL Core API or UI) are stored in a private folder of a dedicated user in the DIAL file storage and are not accessible to anyone but the application author (owner). To enable access for other users, application owners can publish applications or DIAL administrators can manually add applications to the Public folder, where all published resources are stored.
Refer to Entities/Applications to learn about applications in DIAL.
Main Screen
The Assets/Applications screen displays all applications located in the Public folder in DIAL file storage. Applications get to the Public folder when published by users or added by administrators.
Note: This screen, does not give access to private applications of users.
- Refer to Access Control to learn more about Private and Public logical spaces for objects storage in DIAL.
- Refer to Chat User Guide to learn how end users can publish applications and to DIAL Core API Publications to learn how to create and manage publication requests via API.

Public file storage
Objects in the Public folder are arranged hierarchically, similar to a file system.
- Root folder: Public is a root folder with sub-folders. It is visible to all authorized users. If a sub-folder is not specified for the new object being published, it is placed in the root folder by default.
- Sub-folders: Objects can be placed in sub-folders for logical organization purposes - one object per sub-folder is recommended.
Note, that access rules can be applied to sub-folders (manually or in publication request). You can view and manage access rules in Folders Storage. The effective authorization rule for an object in a sub-folder includes restrictions applied to all parent sub-folders up to the root folder. Refer to Tutorials to learn about affective rules for folders.
| Available Actions | Description |
|---|---|
| Create sub-folder + import objects | Hover over any folder to display the + icon. It allows importing objects into new child or sibling sub-folders. The process is similar to Import, but you’ll need to provide a name for the new folder. Additionally, there’s an optional step where you can define access rules for the new sub-folder. Note: New sub-folders can only be created using this method or as part of a publication request if a new folder is specified during that process. |
| Actions | Hover over any folder to view a context menu icon with actions you can perform in relation to the selected folder. Note, that actions performed to a folder with apps that include attached files will be applied to a related folder in Assets/Files. - Rename: Use to rename the selected folder. - Move to: Use to select a target location in the hierarchy to move the selected folder. - Manage permissions: Redirects to Folder Storage to manage access to the folder. - Delete: Use to delete the folder with objects inside it. |

Applications grid
Click any folder to display its content in the applications grid.
| Column | Description |
|---|---|
| ID | Unique identifier of the application. |
| Version | Published version of the application. |
| Author | Username or system ID associated with the user who created or last updated this application. |
| Updated time | Timestamp of the last modification of the application. |
| Actions | Actions you can perform on the selected application: - Open in new tab: Opens the application's properties, features, and parameters in a new tab. - Move to another folder: Select a target folder in the hierarchy to move the application. - Delete: Remove the application. You can also use Bulk Actions in the toolbar to delete multiple applications at once. - Duplicate: Create a copy of the application in one of two ways: New version: Creates another version of the selected application. You can also quickly add a new version on the Configuration screen by clicking Create in the Version dropdown. New application: Clones the selected application as a new one. |

Export
Use Bulk Actions in the toolbar to download selected applications. This is useful for migrating applications between environments, sharing sets of applications with other users, or keeping a point-in-time backup.
To export applications:
-
Click Bulk Actions button in the toolbar.
-
Select applications by checking the boxes in each row. You can also select the version you want to export.
-
Click Export in the bottom to launch the export modal.
-
In the modal window select the export format: ZIP archive or JSON file.
-
Click Export to generate export file and start downloading.

Import
Use Import in the toolbar to upload new or update existing applications from external JSON files or ZIP archive. This is essential for migrating, restoring, or sharing application assets between DIAL users.

To import applications:
- Click Import in the toolbar to launch the import modal.
- Select the type of files you want to import. Drag & Drop your archive or JSON files into the files area or click Browse to open a file picker.
- Archive: Select if you want to import a single ZIP or tarball containing multiple JSON files. Note: Only 1 archive can be imported at a time.
- JSON: Select if you want to import JSON files. Note: Up to 30 files can be imported at once.
- Select a Conflict resolution Strategy. It allows you to decide how to handle existing applications with the same name and version in your workspace:
- Skip: Leave existing applications untouched, only new ones will be added.
- Override: Replace applications with the same name and version with the imported ones.
- Edit manually: Resolve conflicts manually one by one.
- Use Ignore paths toggle to skip folder structure from the imported files. When enabled, all applications will be imported directly into the root folder without recreating the original folder hierarchy.
- Click Finish to start.
Create
On the main screen you can manually add new DIAL application to the public folder.
Tip: You can quickly add new applications by duplicating existing ones. Use the Duplicate action in the application's context menu.
Follow these steps to add a new application to the Public folder:
-
Select a folder where you want to add a new application and click + Create in the header to invoke the Create Application modal.
-
Define application's parameters
Field Required Description ID Yes Unique identifier of the application. Display Name Yes Application name displayed on UI (e.g. "Customer Support Bot"). Version Yes Semantic identifier (e.g., 1.2.0) of an application's version. Description No Description of the application. Source Type Yes Source type of application.
- Endpoints: Application with this source type is a standalone application. DIAL Core communicates with such application via the explicitly-provided chat completion endpoint.
- Application runner: Application runners can be seen as application factories, allowing users to create logical instances of apps with different configurations. Application runners are based on JSON schemas, which define structure, properties and endpoints for applications. In Builders/Application Runners you can see all the available runners and add new ones.Completion endpoint Conditional The application's chat completion endpoint that will be used by DIAL Core. Required if Source Type is Endpoints. Application runner Conditional Select one of the available application runners. Required if Source Type is Application runner. -
Once all required fields are filled click Create. The dialog closes and the new application configuration screen is opened. This entry will appear immediately in the listing under the selected folder once created.

Delete
There are several ways to delete an application or a specific version of it:
- Click Delete in the toolbar on the Configuration screen to permanently remove the selected application from your DIAL instance.
- Use the Delete option in the application context menu.
- Delete the related folder where the application is located.
- Use Bulk Actions on the main screen to delete more than one application.

Configuration
Click any application to open a screen with information about the selected application and its configuration details.
Properties
In the Properties tab, you can see all and define selected application's basic properties.

Available actions
You can find the following action buttons in the configuration screen header:
| Action | Description |
|---|---|
| Version | Version of the application. Can be selected from the dropdown to display properties for different versions of application. In the dropdown, click Create to add a new version of the application. |
| Delete | Use to delete the selected application. |
Fields description
| Field | Description |
|---|---|
| ID | Unique identifier of the application. It is read-only but includes a copy-to-clipboard button for easy reference. |
| Updated Time | Timestamp of the last updated. |
| Creation Time | Application creation timestamp. |
| Folder Storage | Path to the application's location in the hierarchy of folders. Click to navigate to Folders Storage. |
| Status | Current status of the application: Valid: application configuration is compatible with the JSON schema or the related application runner. Only valid entities will be materialized into the DIAL Core configuration. Invalid: application configuration is incompatible with the JSON schema of the related application runner. |
| Display Name | Name of the application displayed on UI. |
| Description | Free-text summary describing the application (e.g. tooling, supported inputs/outputs, SLAs). |
| Icon | Logo to visually distinguish the app on the UI. Maximum size: 512 MB. Supported types: .jpeg, .jpg, .jpe, .png, .gif, .apng, .webp, .avif, .svg, .svgz, .bmp, .ico. Up to 1 files. |
| Topics | Topics are semantic labels that you can assign to apps (e.g. "finance", "support") for better navigation on UI. Click to display a list of available topics. You can add your own custom topics to the list following these rules: - The topic name must not exceed 255 characters. - The topic name must not contain leading or trailing spaces. |
| Folder Storage | Path to the application's location in the hierarchy of folders. Use Move to to change the application's location. |
| Source Type | Source type of application. - Endpoints: Application with this source type is a standalone application. DIAL Core communicates with such application via the explicitly-provided endpoints. - Application runner: Application runners can be seen as application factories, allowing users to create logical instances of apps with different configurations. Application runners are based on JSON schemas, which define structure, properties and endpoints for applications. In Builders/Application Runners you can see all the available runners and add new ones. |
| Application runner | Application Runner the application is based upon. Note: Enabled and is required if Source Type = Application runner is selected. |
| Completion endpoint | The application's chat completion endpoint that will be used by DIAL Core. Note: Enabled and is required if Source Type = Endpoints is selected. |
| Editor URL | URL of the application's custom builder UI. Application builder allows creating instances of apps using a UI wizard. Note: Enabled if Source Type = Endpoints is selected. |
| Viewer URL | URL of the application's custom UI. A custom UI, if enabled, will override the standard DIAL Chat UI. Note: Enabled if Source Type = Endpoints is selected. |
| Attachments types | Use to define the attachment types (images, files) this app can have. Available values: - No attachments: Disables all attachment types. - All attachments types: Allows all types of file attachments. Optionally specify max number of attachments. - Specific attachments types: Enables the user to define/select specific MIME types. Start typing to see suggestions or use <type>/<subtype> format for a manual entry. |
| Attachments max number | Maximum number of input attachments. Note: Enabled if attachment types are defined. |
| Defaults | Default parameters for the application. Default parameters are applied if a request doesn't contain them in OpenAI chat/completions API call. |
| Forward auth token | Select a downstream auth token to forward from the user's session (for multi-tenant downstream). |
| Max retry attempts | Number of times DIAL Core will retry a failed run (due to timeouts or 5xx errors). |
Features
In the Features tab, you can control optional capabilities of the selected application.

Endpoints
Use these fields to apply optional service endpoints that extend the app’s runtime behavior. By providing URLs for rating, tokenization, prompt truncation, and dynamic configuration, the application can delegate cost/quota calculations, precise token counting, context-window management, and JSON-schema–driven settings to external services.
Note: If the application is created based on application runner, values provided in this section override endpoints in Application Runner.
| Field | Description |
|---|---|
| Rate endpoint | A URL to call a custom rate-estimation API. Use this to compute cost or quota usage based on your own logic (e.g. grouping by tenant, complex billing rules). |
| Tokenize endpoint | A URL to call a custom tokenization service. When you need precise, app-wide token counting (for mixed-model or multi-step prompts) that the model adapter can't provide. |
| Truncate prompt endpoint | A URL to call your own prompt-truncation API. Handy if you implement advanced context-window management (e.g. dynamic summarization) before the actual app call. |
| Configuration endpoint | A URL to fetch JSON Schema describing settings of the DIAL application. DIAL Core exposes this endpoint to DIAL clients as GET v1/deployments/<deployment name>/configuration. DIAL client must provide a JSON value corresponding to the configuration JSON Schema in a chat completion request in the custom_fields.configuration field. |
Feature Flags (Toggles)
Enable or disable per-request options that your application accepts from clients and forwards to the underlying models. Toggle On/Off any feature as needed.
| Toggle | Description |
|---|---|
| System prompt | Enables an initial "system" message injection. Useful for orchestrating multi-step agents where you need to enforce a global policy at the application level. |
| Tools | Enables tools/functions payloads in API calls. Switch on if your application makes external function calls (e.g. calendar lookup, database fetch). |
| Seed | Enables the seed parameter for reproducible results. Great for testing or deterministic pipelines. Disable to ensure randomized creativity. |
| URL Attachments | Enables URL references (images, docs) as attachments in API requests. Must be enabled if your workflow downloads or processes remote assets via URLs. |
| Folder Attachments | Enables attachments of folders (batching multiple files). |
| Assistant attachments in request | Indicates whether the application supports attachments in messages from role=assistant in chat completion request. When set to true, DIAL Chat preserves attachments in messages in the chat completion requests to DIAL Core, instead of removing them. The feature is especially useful for apps that can generate attachments as well as take attachments in its input. |
| Accessible by request key | Indicates whether the application is accessible using a per-request API key. |
| Content parts | Indicates whether the deployment supports requests with content parts or not. |
| Consent required | Indicates whether the application requires user consent before use. |
| Support comment in rate response | Indicates whether the application supports the field comment in rate response payload. |
Parameters
The Parameters tab within an application’s configuration allows administrators to manage application-specific parameters that influence its behavior.
If the application is created based on application runner, the content of this screen is determined by the parameters of the related application runner. If it is a standalone application with its structure and properties defined by a JSON schema, the content of this screen must conform to the app's JSON schema.
Refer to Schema-rich Applications to learn more.

Interceptors
DIAL uses Interceptors to add custom logic to in/out requests for models and apps, enabling PII obfuscation, guardrails, safety checks, and beyond. You can define Interceptors in the Entities → Interceptors section to add them to the processing pipeline of DIAL Core.
Refer to Interceptors to learn more.
In the Interceptors tab of an application configuration, you can preview global and interceptors defined on the application runner level and also define local interceptors specific to this application.

Interceptors grid
| Column | Description |
|---|---|
| Order | Execution sequence. Interceptors run in ascending order (1 → 2 → 3...). A request will flow through each interceptor's in this order. Response interceptors are invoked in the reversed order. |
| Display Name | The interceptor's alias, matching the Name field in its definition. |
| Description | Free-text summary from the interceptor's definition, explaining its purpose. |
| ID | Unique identifier of the interceptor. |
| Actions | Additional interceptor-specific actions. - Open interceptor in a new tab. - Remove the selected interceptor from the app's configuration. |
Add
- Click + Add (in the upper-right of the interceptors grid).
- In the Add Interceptors modal, choose one or more from the grid of defined interceptors.
- Apply to append them to the bottom of the list (are added in the same order as selected in the modal).
TIP: If you need a new interceptor, first create it under Entities → Interceptors and then revisit this tab to attach it to the application's configuration.
Reorder
- Drag & Drop the handle (⋮⋮⋮⋮) to reassign the order in which interceptors are triggered.
- Release to reposition; order renumbers automatically.
- Save to lock-in the new execution sequence.
Remove
- Click the actions menu in the interceptor's row.
- Choose Remove to detach it from this application.
- Save to lock-in the interceptors list
Dependencies
In interconnected systems, applications often rely on other applications or AI models to function, forming complex dependency chains. Access to sensitive data in such ecosystems can pose a challenge, especially when multiple applications interact and propagate requests, and can require an explicit consent from a user to allow an application/AI models to access their data or perform actions on their behalf.
Refer to Managing Authorization in Complex Application Ecosystems to learn more.
On this screen, you can find all dependencies configured for the selected application. Administrators can manually add new dependencies (by selecting from available AI models and applications) or remove the existing ones.

| Column | Description |
|---|---|
| Entity Type | Indication whether dependent object is an Application or a Model. |
| ID | Identifier of the respective model or application. |
| Display Name | Descriptive name of the dependent model or application. |
| Version | Version of the dependent model. |
| Description | Additional textual details about the dependent model or application. |
| Actions | Allows to open the dependent object in new tab or remove it from the list of dependencies. |
Add
- Click + Add (in the upper-right of the dependencies grid).
- Select the type of object to add: Application or Model.
- In the modal window, choose model or application existing in DIAL from the grid.
- Add to append them to the dependencies grid.
JSON Editor
Advanced users with technical expertise can work with the application properties in a JSON editor view mode. It is useful for advanced scenarios of bulk updates, copy/paste between environments, or tweaking settings not exposed on UI.
TIP: You can switch between UI and JSON only if there are no unsaved changes.

Switching to the JSON Editor
- Navigate to Assets → Applications, then select the application you want to edit.
- Click the JSON Editor toggle (top-right). The UI reveals the raw JSON.