Skip to main content

Install the Quick Apps feature

Enable Quick Apps (2.0) in your DIAL deployment by deploying the Quick Apps (2.0) Backend and registering it in DIAL Core as a schema-rich application type. This guide is for DevOps engineers running DIAL on Kubernetes. Once installed, users and developers can create Quick Apps 2.0 applications through the API or config.json — see What are Quick Apps for the authoring side.

This guide covers the backend service and its DIAL Core registration only. Quick Apps (2.0) also has a dedicated visual settings editor, Quick Apps Frontend, deployed and configured separately — see the note at the end of this guide.

Goal​

Deploy the Quick Apps (2.0) Backend and register it with DIAL Core so Quick Apps 2.0 applications become available platform-wide, authored via the API or config.json.

Prerequisites​

  • A DIAL deployment on Kubernetes with Helm access (see Helm chart overview)
  • Permission to deploy Helm charts and edit DIAL Core configuration in the cluster
  • DIAL Core version 0.41.0 or higher (required for the recommended application-schema-endpoint registration method)
  • A DIAL model deployment to use as the default orchestrator for Quick Apps

No DIAL Chat configuration changes are required: DIAL Core lists Quick Apps (2.0) as a schema-rich application type, which DIAL Chat surfaces generically — there are no Quick-Apps-specific DIAL Chat environment variables to set.

Step 1: Deploy the Quick Apps backend​

The backend is a container deployed with the generic dial/dial-extension chart. Create a values.yaml:

image:
pullPolicy: Always
registry: <REGISTRY>
repository: <QUICKAPPS_IMAGE_REPOSITORY>
tag: <QUICKAPPS_IMAGE_TAG>
pullSecrets:
- <PULL_SECRET_NAME>

fullnameOverride: quickapps

ingress:
enabled: false

serviceAccount:
create: true

env:
DIAL_URL: "http://dial-core.dial.svc.cluster.local"

The environment variables control backend behavior:

  • DIAL_URL — required; the in-cluster URL of DIAL Core.
  • DIAL_API_VERSION — optional; the unified protocol version used to call models. Defaults to 2025-01-01-preview.
  • APP_SCHEMA_ID — optional; overrides the schema $id the backend advertises to DIAL Core. Defaults to https://mydial.epam.com/custom_application_schemas/quickapps2; set it to match your own domain if you rely on the $id value elsewhere.
  • DEFAULT_ORCHESTRATOR_DEPLOYMENT_ID — optional; the DIAL deployment used as the orchestrator model when a Quick App manifest doesn't specify one.

See Quick Apps Backend configuration for the full list, including observability and tool-timeout settings.

Deploy the backend:

helm upgrade --install dial-quickapps dial/dial-extension \
-f ./values.yaml \
--version <CHART_VERSION> \
-n dial

Step 2: Registe Quick Apps in DIAL Core​

Quick Apps (2.0) exposes a schema endpoint that DIAL Core fetches from at startup, so the application type schema doesn't need to be maintained by hand. Add the following entry to the applicationTypeSchemas array in DIAL Core's configuration, replacing <QUICKAPPS_BASE_URL> with the in-cluster URL from Step 1 (http://quickapps.dial.svc.cluster.local):

{
"applicationTypeSchemas": [
{
"dial:applicationTypeDisplayName": "Quick App 2.0",
"dial:appendApplicationPropertiesHeader": false,
"dial:applicationTypeAssistantAttachmentsInRequestSupported": true,
"dial:applicationTypeCompletionEndpoint": "<QUICKAPPS_BASE_URL>/openai/deployments/quick_apps2/chat/completions",
"dial:applicationTypeConfigurationEndpoint": "<QUICKAPPS_BASE_URL>/openai/deployments/quick_apps2/configuration",
"dial:applicationTypeSchemaEndpoint": "<QUICKAPPS_BASE_URL>/v1/configuration-support/application-schema",
"dial:applicationTypeRoutes": {
"configuration_support_read": {
"dial:paths": ["/v1/configuration-support(/[^/]+)*$"],
"dial:methods": ["GET"],
"dial:rewritePath": true,
"dial:permissions": ["WRITE"],
"dial:upstreams": [
{"dial:endpoint": "<QUICKAPPS_BASE_URL>"}
]
},
"configuration_support_skill_validate": {
"dial:paths": ["/v1/configuration-support/skills/validate$"],
"dial:methods": ["POST"],
"dial:rewritePath": true,
"dial:permissions": ["WRITE"],
"dial:upstreams": [
{"dial:endpoint": "<QUICKAPPS_BASE_URL>"}
],
"dial:attachmentPaths": {
"dial:requestBody": ["@.url"]
}
}
},
"$id": "https://mydial.epam.com/custom_application_schemas/quickapps2",
"$schema": "https://dial.epam.com/application_type_schemas/schema#"
}
]
}

dial:applicationTypeRoutes exposes the backend's /v1/configuration-support/* endpoints — used by an editor UI to list predefined skills, prompts, toolsets, and tools — to DIAL clients through DIAL Core. Both routes are WRITE-gated, since configuration support is only useful to callers with edit access to the application.

note

DIAL Core also supports registering a full, hand-maintained application schema instead of an endpoint, but this requires manually keeping the schema in sync with the backend version — use the schema endpoint above unless you have a specific reason not to. See Quick Apps application schema for both options.

Step 3: Enable custom apps in DIAL Core​

Set the following environment variable for DIAL Core so it lists custom application types, including Quick Apps, in the OpenAI-compatible deployment listing:

core:
env:
aidial.applications.includeCustomApps: "true"

Apply the updated Helm values to DIAL Core to roll out the changes.

Result​

The Quick Apps (2.0) Backend runs in the cluster, and DIAL Core recognizes Quick Apps 2.0 as a schema-rich application type. Developers can now create Quick Apps 2.0 applications via the DIAL API or config.json.

note

Deploying the Quick Apps Frontend editor is out of scope for this guide. To add it, see Quick Apps in DIAL Core and DIAL Chat.

Further reading​