Skip to main content

Applications

Introduction

Main Screen

On this screen, you can access all the available application deployments in your instance of DIAL. Applications displayed in this section were either added by a direct modification of the DIAL Core config file or via DIAL Admin. Here, you can also create and manage new application deployments.

Note: This section does not display applications in either private user folders or the public folder in DIAL file storage. Applications in private folders are available only to their owners. Applications in public folder are accessible in Assets/Applications section.

Applications grid

TIP: Use the Columns selector to customize which columns are visible in the grid and their order.

FieldDescription
Display NameName of the application (e.g. "Data Clustering Application") rendered on UI.
VersionSemantic identifier of the application version (e.g. 1.0.0).
DescriptionBrief free-text summary describing the application (e.g. "Clusters incoming text into semantic groups").
IDUnique identifier used in the DIAL dynamic settings (e.g. dca, support-bot). This is the path segment of the Application's HTTP endpoint.
EndpointFull URL where the application is exposed.
AuthorInformation about the application's author.
TopicsTags or categories (e.g. "finance," "support," "image-capable") you can assign for discovery, filtering, or grouping in large deployments. Helps end users and admins find the right application by the use case.
Attachment typesTypes of attachments this application can accept according to MIME types.
Max attachment numberMaximum number of attachments allowed in a single request.
StatusCurrent 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.

Create

On the main screen you can add new application deployments.

Refer to Enable App to learn more about enabling applications in DIAL.

Follow these steps to add a new application deployment:

  1. Click + Create to invoke the Create Application modal.

  2. Define application's parameters

    FieldRequiredDescription
    IDYesUnique identifier under the applications section of DIAL Core's dynamic settings (e.g. support-bot, data-cluster).
    Display NameYesName of the application (e.g. "Data Clustering Application") rendered on UI.
    Display versionNoSemantic identifier (e.g., 1.2.0) of an application's version.
    DescriptionNoFree-text summary describing the application (e.g. supported inputs, business purpose).
    Source TypeYesSource 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.
    Completion endpointsConditionalThe application's completion endpoint DIAL Core will use to communicate with application. Required if Source Type is Endpoints.
    Application runnerConditionalSelect one of the available application runners. Required if Source Type is Application runner.
  3. Once all required fields are filled click Create. The dialog closes and the new application configuration screen is opened. New application deployment appears immediately in the listing once created. It may take some time for the changes to take effect after saving.

Configuration

Click any application on the main screen to open the configuration section.

Properties

In the Properties tab, you can define the application's identity, routing, UI metadata, and other basic runtime controls.

Once configured, your application is ready to orchestrate models and interceptors behind a single HTTP endpoint.

FieldRequiredDescription
ID-Unique key under applications in DIAL Core's dynamic settings (e.g. data-clustering, support-bot).
Updated Time-Date and time when the app's configuration was last updated.
Creation Time-Date and time when the app's configuration was created.
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.
Sync with core-Indicates the state of the entity's configuration synchronization between Admin and DIAL Core.
Synchronization occurs automatically every 2 mins (configurable via CONFIG_AUTO_RELOAD_SCHEDULE_DELAY_MILLISECONDS).
Important: Sync state is not available for sensitive information (API keys/tokens/auth settings).
Synced:
Entity's states are identical in Admin and in Core for valid entities or entity is missing in Core for invalid entities.
In progress...:
If Synced conditions are not met and changes were applied within last 2 mins (this period is configurable via CONFIG_EXPORT_SYNC_DURATION_THRESHOLD_MS).
Out of sync:
If Synced conditions are not met and changes were applied more than 2 mins ago (this period is configurable via CONFIG_EXPORT_SYNC_DURATION_THRESHOLD_MS).
Unavailable:
Displayed when it is not possible to determine the entity's state in Core. This occurs if:
- The config was not received from Core for any reason.
- The configuration of entities in Core is not entirely compatible with the one in the Admin service.
Display NameYesApplication name displayed on UI (e.g. "Data Clustering Application"). Helps end user to identify and select applications.
Display versionNoSemantic identifier of the application version (e.g. 1.0.0).
DescriptionNoFree-text summary describing the application (e.g. tooling, supported inputs/outputs, SLAs).
MaintainerNoField used to specify the responsible person or team overseeing the app's configuration.
IconNoLogo to visually distinguish the app on the UI.
TopicsNoTags that you can assign to apps (e.g. "finance", "support"). Helps to split apps into categories for better navigation on UI.
Source TypeYesSource 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 runnerConditionalSelect one of the available application runners. If the application is created based on an application runner, DIAL Core will forward all payloads to endpoints defined in the application runner configuration. Required if Source Type is Application runner.
Completion endpointConditionalChat completion endpoint of the application. Required if Source Type is Endpoints.
Viewer URLOptionalURL of the application's custom UI. A custom UI, if enabled, will override the standard DIAL Chat UI. Available if Source Type is Endpoints.
Editor URLOptionalURL of the application's custom builder UI. Application builder allows creating instances of apps using a UI wizard. Available if Source Type is Endpoints.
AttachmentsNoUse to define the attachment types (images, files) this app can have:
Available values:
None – attachments are not allowed.
Use all – unrestricted types. Optionally specify max number of attachments.
Custom – enter specific MIME types.
Attachments max numberNoMaximum number of input attachments. Enabled if attachment types are defined.
Forward auth tokenNoSelect a downstream auth token to forward from the user's session (for multi-tenant downstream).
Max retry attemptsNoNumber of times DIAL Core will retry a failed run (due to timeouts or 5xx errors).
DefaultsNoDefault parameters for the application. Default parameters are applied if a request doesn't contain them in OpenAI chat/completions API call.

Features

In the Features tab, you can control optional capabilities of applications.

The difference between model and application features

While Model feature flags govern what each AI model integration can do, Application feature flags define which of those capabilities your orchestrated service exposes to clients. Also, you can plug in custom preprocessing endpoints.

Scope

  • Model features apply per AI model, controlling what the model endpoint itself supports (e.g. whether GPT-4 can accept system prompts or function calls).
  • Application features apply per orchestrated service, governing what your composed workflow will accept and pass through—regardless of which models are called under the hood.

Override Capability

  • At the application level, you can disable a feature globally (even if models support it) or plug in custom endpoints that apply above all models.
  • At the model level, toggles only reflect the true capabilities of that specific AI model integration.

Use Cases

  • Model toggles ensure you don’t accidentally send unsupported parameters to a given model.
  • Application toggles let you present a consistent API to your clients (e.g. always accept temperature or never allow attachments), even if different underlying models behave differently.

Endpoints

You can override or extend DIAL Core's built-in protocol calls with your own HTTP services. Here, you can specify endpoints used by Application Runners (e.g. a Python or Node Runner) to perform preprocessing or policy checks before delegating to your underlying models and workflows.

FieldDescription
Rate endpointURL 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 endpointURL 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 endpointURL to call your own prompt-truncation API. Handy if you implement advanced context-window management (e.g. dynamic summarization) before the actual application call.
Configuration endpointURL 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.

Note: Changes take effect immediately after saving.

ToggleDescription
System promptEnables an initial "system" message injection. Useful for orchestrating multi-step agents where you need to enforce a global policy at the application level.
ToolsEnables tools/functions payloads in API calls. Switch on if your application makes external function calls (e.g. calendar lookup, database fetch).
SeedEnables the seed parameter for reproducible results. Great for testing or deterministic pipelines. Disable to ensure randomized creativity.
URL AttachmentsEnables URL references (images, docs) as attachments in API requests. Must be enabled if your workflow downloads or processes remote assets via URLs.
Folder AttachmentsEnables attachments of folders (batching multiple files).
Assistant attachments in requestIndicates 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 keyIndicates whether the deployment is accessible using a per-request API key.
Content partsIndicates whether the deployment supports requests with content parts or not.
Consent requiredIndicates whether the application requires user consent before use.
Support comment in rate responseIndicates 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. The content of this screen is determined by the parameters of the related application runner.

Roles

In the Roles tab, you can create and manage roles that have access to the selected application. Roles are defined in the Access Management section. Here, you can define user groups that can use specific applications and define rate limits for them.

Important: if roles are not selected for a specific application or Make available to specific roles toggle is disabled, it will be available to all user roles.

  • Refer to Access & Cost Control to learn more about access control in DIAL.
  • Refer to Roles to lean more about roles in DIAL.
  • Refer to tutorials to learn how to configure access and limits for JWT and API keys

Roles grid
ColumnDescription
Display NameUnique role name.
IDUnique role identifier.
DescriptionDescription of the role (e.g., "Admin, Prompt Engineer, Developer").
Tokens per minutePer Minute tokens limit for a specific role. Blank = no limits.
Inherits the default value.
Can be overridden.
Tokens per dayDaily tokens limit for a specific role. Blank = no limits.
Inherits the default value.
Can be overridden.
Tokens per weekWeekly tokens limit for a specific role. Blank = no limits.
Inherits the default value.
Can be overridden.
Tokens per monthMonthly tokens limit for a specific role. Blank = no limits.
Inherits the default value.
Can be overridden.
ActionsAdditional role-specific actions.
When Make available to specific roles toggle is off - opens the Roles section in a new tab.
When Make available to specific roles toggle is on, you can open the Roles section in a new tab, set Set unlimited, Remove the role from the list or Reset to default limits.

Set Rate Limits

The grid on the Roles screen lists roles that can access a specific application. Here, you can also set individual limits for selected roles. For example, you can give "Admin" role unlimited monthly tokens but throttle "Developer" to 100,000 tokens/day or allow the "External Partner" role a small trial quota (e.g., 10,000 tokens/month) before upgrade.

To set or change rate limits for a role:

  1. Click in the desired cell (e.g., Tokens per day for the "ADMIN").
  2. Enter a numeric limit or leave blank to set no limits. Click Reset to default limits to restore default settings for all roles.
  3. Click Save to apply changes.

Default Rate Limits

Default rate limits are set for all roles in the Roles grid by default; however you can override them for any role.

FieldDescription
Default tokens per minuteThe maximum tokens any user can consume per minute unless a specific limit is in place.
Default tokens per dayThe maximum tokens any user can consume per day unless a specific limit is in place.
Default tokens per weekThe maximum tokens any user can consume per week unless a specific limit is in place.
Default tokens per monthThe maximum tokens any user may consume per month unless a specific limit is in place.

Role-Specific Access

Use Make available to specific roles toggle to define access to the application:

  • Off: Application is callable by any authenticated user. All existing user roles are in the grid.
  • On: Application is restricted - only selected roles can access the application. If empty, the application is not available to any role.

Add

You can add a role only if Make available to specific roles toggle is On.

  1. Click + Add (top-right of the Roles Grid).
  2. Select one or more roles in the modal. The list or roles is defined in the Access Management section.
  3. Confirm to add role(s) to the table.

Remove

You can remove a role only if Make available to specific roles toggle is On.

  1. Click the actions menu in the role's line.
  2. Choose Remove in the menu.

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.

The difference between model and application interceptors

Scope of Invocation

  • Model: Interceptors are triggered with each request to a model (i.e. before/after the LLM invocation).
  • Application: Interceptors wrap the entire orchestrated workflow, including multi-model sequences and branching logic.

Use Cases

  • Model: Ideal for prompt "pre-processing" or response transformations that are specific for each LLM.
  • Application: Manage cross-cutting concerns across the whole application (e.g., tenant-based routing, unified logging, end-to-end policy enforcement).
Interceptors grid
ColumnDescription
OrderExecution 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 NameThe interceptor's alias, matching the Name field in its definition.
DescriptionFree-text summary from the interceptor's definition, explaining its purpose.
IDUnique identifier of the interceptor.
ActionsAdditional role-specific actions.
Open interceptor in a new tab.
Remove the selected interceptor from the model's configuration.

Add

  1. Click + Add (in the upper-right of the interceptors grid).
  2. In the Add Interceptors modal, choose one or more from the grid of defined interceptors.
  3. 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

  1. Drag & Drop the handle (⋮⋮⋮⋮) to reassign the order in which interceptors are triggered.
  2. Release to reposition; order renumbers automatically.
  3. Save to lock-in the new execution sequence.

Remove

  1. Click the actions menu in the interceptor's row.
  2. Choose Remove to detach it from this application.
  3. Save to lock-in the interceptors list

Dependencies

This tab lists other entities Models or Applications that the current Application depends on. Administrators can manually add new dependencies (by selecting from available Models and Applications) or remove the existing ones.

ColumnDescription
Entity TypeIndication whether dependent object is an Application or a Model.
IDIdentifier of the respective model or application.
Display NameDescriptive name of the dependent model or application.
VersionVersion of the dependent model.
DescriptionAdditional textual details about the dependent model or application.
ActionsAllows to open the dependent object in new tab or remove it from the list of dependencies.

Add

  1. Click + Add (in the upper-right of the dependencies grid).
  2. Select the type of object to add: Application or Model.
  3. In the modal window, choose model or application existing in DIAL from the grid.
  4. Add to append them to the dependencies grid.

App Routes

Routes in DIAL are used for communication through registered endpoints in the DIAL Core. They act as a bridging mechanism between the DIAL Core and applications, facilitating seamless interactions.

Refer to DIAL Core to learn more about routes.

In the App Routes tab you can manage application-specific routes. The tab includes a left-hand pane listing all app-related routes. If the application is created based on a specific application runner, tab allows only viewing routes inherited from it. Otherwise, it allows creating, viewing, editing, and deleting routes.

Properties

In the Properties sub-tab you can configure route's identity and requests handling behavior.

Configuration of this tab is similar to routes. See Routes documentation for more information.

103.png

Attachments

In the Attachments sub-tab you can configure attachment paths for both requests and responses.

104.png

Roles

In the Roles sub-tab you can configure route-specific role assignments, allowing administrators to control access to each individual route.

Configuration of this tab is similar to routes. See Routes documentation for more information.

105.png

Audit

In the Audit tab, you can monitor key metrics, activities and traces related to the selected application.

Dashboard

In the Dashboard tab, you can see real-time and historical metrics for the application. You can use it to monitor usage patterns, enforce SLAs, optimize costs, and troubleshoot anomalies.

Top Bar Controls
ControlDescription
Time PeriodUse to select the date range for all charts and tables (e.g. last 15 min, 2 days, 7 days, 30 days).
+ Add filterUse to drill into specific subsets by adding filters on Projects.
Auto refreshSet the dashboard to poll for new data (e.g. every 1 min) or turn off auto-refresh.
System Usage Chart

A time-series line chart of request throughput over time. You can use it to monitor traffic peaks and valleys, correlate spikes with deployments or feature roll outs.

Key Metrics

Four high-level metrics are displayed alongside the chart. All calculated for the user-selected period.

You can use them to:

  • Chargeback to internal teams or external customers by "Money".
  • Track adoption via "Unique Users".
  • Monitor burst traffic with "Request Count".
  • Watch token consumption to anticipate quota exhaustion.
MetricDescription
Unique UsersCount of distinct user IDs or API keys that have called this application.
Request CountTotal number of chat or embedding calls routed to this application.
Total TokensSum of prompt + completion tokens consumed by this application.
MoneyEstimated spending on this application.
Projects Consumption Table

This table shows the KPIs breakdown by Project. You can use it to compare consumption across multiple projects.

ColumnDescription
ProjectThe entity utilizing this application.
Request CountNumber of calls directed to the application.
Prompt tokensTotal tokens submitted in the prompt portion of requests.
Completion tokensTotal tokens returned by the application as responses.
MoneyEstimated cost.

Traces

TIP: You can monitor the entire system's traces in Usage Log.

In this tab, you can see individual traces, each representing a single end-to-end interaction of a DIAL entity with the selected application.

ColumnDescription
Completion TimeTimestamp when the trace finished processing (end-to-end interaction).
Trace IDUnique identifier of the trace (one end-to-end interaction).
TopicAuto-generated subject/title summarizing the trace.
ReactionsIndication of user reactions presence (like/dislike) for the trace.
Cached prompt tokensNumber of prompt tokens served from cache (prompt-caching).
Prompt tokensNumber of tokens in the prompt sent to the model for this trace.
Completion tokensNumber of tokens generated by the model as output for this trace.
Deployment priceCost attributed to the selected deployment for this trace.
Total priceTotal cost of the trace.
Number of request messagesNumber of discrete request messages that were included in the trace.
Deployment IDIdentifier of the DIAL deployment used to serve this trace.
Parent Deployment IDIdentifier of the parent deployment (e.g., application that was using the underlying model).
ModelIdentifier of the underlying model used to carry out the trace.
ProjectProject to which this trace associated in DIAL.
UpstreamUpstream endpoint (e.g., completions endpoint of the model).
Execution pathExecution path of the trace.
UserIdentifier of the end user who initiated the trace.
User titleName of the user (if available).
LanguageLanguage detected in the trace (e.g., en).
DurationTotal end-to-end duration of the trace from first request to completion.
Response IDIdentifier of the response object returned by the model for this trace.
Conversation IDIdentifier of the conversation/session this trace belongs to.
Code span IDIdentifier of a specific code execution span associated with the trace (if any).
Code span parent IDIdentifier of the parent span for a code execution span (if any).

Conversations

TIP: You can monitor all usage sessions in Usage Log. In Conversations, you can see individual traces grouped into end‑to‑end conversation sessions.

ColumnDescription
Last activityTimestamp of the most recent trace within the conversation.
Conversation IDUnique identifier of the user session that groups related traces.
TopicAuto-generated subject summarizing the conversation.
Cached prompt tokensCount of prompt tokens served from cache across the conversation.
Prompt tokensTotal number of request/prompt tokens sent to the model across all traces in the conversation.
Completion tokensTotal number of tokens generated by the model across all traces in the conversation.
Total priceAggregated cost for the conversation.
Number of request messagesTotal number of discrete request messages included in the conversation.
Deployment IDIdentifier of the deployment associated with the conversation.
ProjectProject to which the conversation associated in DIAL.
UserIdentifier of the end user who initiated the conversation.
User titleName of the user (if available).
LanguageDetected language for the conversation (e.g., en).

Activities

The Activities section provides detailed visibility into all changes made to the selected application. This section mimics the functionality available in the global Audit → Activities menu, but is scoped specifically to the selected app.

List of Activities
FieldDescription
Activity typeThe type of action performed on the app (e.g., Create, Update, Delete).
TimeTimestamp indicating when the activity occurred.
InitiatedEmail address of the user who performed the activity.
Activity IDA unique identifier for the logged activity, used for tracking and auditing.
ActionsAvailable actions:
- View details: Click to open a new screen with activity details. Refer to Activity Details to learn more.
- Resource rollback: click to restore a previous version. Refer to Resource Rollback for details.
Activity Details

The Activity Details view provides a detailed snapshot of a specific change made to an app.

To open Activity Details, click on the three-dot menu (⋮) at the end of a row in the Activities grid and select View Details.

Element/SectionDescription
Activity typeType of the change performed (e.g., Update, Create, Delete).
TimeTimestamp of the change.
InitiatedIdentifier of the user who made the change.
Activity IDUnique identifier for the specific activity tracking.
ComparisonDropdown to switch between showing all parameter or changed only.
ViewDropdown to switch for selection between Before/After and Before/Current state.
Parameters DiffSide-by-side comparison of app fields values before and after the change. Color-coding is used to indicate the operation type (Update, Create, Delete).
Resource Rollback

Use Resource Rollback to restore the previous version of the selected activity. A rollback leads to generation of a new entry on the audit activity screen.

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.

In JSON editor, you can use the view dropdown to select between Admin format and Core format. Note, that these formatting options are for your convenience only and do not render properties as they are defined in DIAL Core. After making changes, the Sync with core indicator on the main configuration screen will inform you about the synchronization state with DIAL Core.

Working with JSON Editor
  1. Navigate to Entities → Applications, then select the application you want to edit.
  2. Click the JSON Editor toggle (top-right). The UI reveals the raw JSON.
  3. Chose between the Admin and Core format to see and work with properties in the necessary format. Note: Core format view mode does not render the actual configuration stored in DIAL Core but the configuration in Admin service displayed in the DIAL Core format.
  4. Make changes and click Save to apply them.
  5. After making changes, the Sync with core indicator on the main configuration screen will inform you about the synchronization state with DIAL Core.

Delete

Use the Delete button in the Configuration screen toolbar to permanently remove the selected application.