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 to2025-01-01-preview.APP_SCHEMA_ID— optional; overrides the schema$idthe backend advertises to DIAL Core. Defaults tohttps://mydial.epam.com/custom_application_schemas/quickapps2; set it to match your own domain if you rely on the$idvalue 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.
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.
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
- What are Quick Apps — the authoring model this feature enables
- Create a Quick App via the API — provision Quick Apps 2.0 programmatically
- Create a Quick App via config.json — provision Quick Apps as infrastructure-as-code
- Quick Apps Backend configuration — deployment-wide defaults and limits for the backend
- Quick Apps Frontend configuration — settings of the visual Quick App editor
- Extension chart configuration — shared workload and Secret-reference values