DIAL Apps overview
DIAL is an application server for GenAI applications. Apps are first-class citizens on the platform — they are composable, discoverable, and governed by the same rules as language models. This page explains what DIAL apps are, how they relate to each other, and how the platform manages them.
What makes an app "DIAL-native"
A DIAL-native application is any service that speaks the Unified API — DIAL's extension of OpenAI Chat Completions for applications. Core also supports other model APIs; see AI API overview. Because every app speaks the same protocol:
- Any app can call any other app as an agent in a multi-agent workflow.
- Models and apps can share the chat-completion interface, subject to their supported features.
- Platform-level governance — authentication, rate limits, logging, load balancing — applies uniformly to all apps and models without extra integration work.
The Unified API supports tool calling, streaming, multi-modality, seeds, and token usage reporting. Apps built with the DIAL SDK get protocol compliance out of the box.
Two categories of apps
DIAL distinguishes between Schema-based apps and Custom Apps (apps without schemas).
Schema-based apps
Schema-based apps are defined by a JSON schema that describes their structure, properties, and endpoints. The schema enables:
- UI wizards — end users can create and configure app instances through DIAL Chat without writing code.
- API-driven configuration — developers and admins can create or modify instances through the DIAL Core API.
- Platform-managed hosting — a single runner container serves all instances of a given app type. The platform handles deployment, scaling, and lifecycle.
DIAL includes two standard application types:
| Application type | What it does |
|---|---|
| Quick App | No-code orchestrator that combines a model, instructions, and tools into a workflow |
| Code App | Python app written and deployed directly in the DIAL Chat browser editor |
Organizations can also define custom application types with their own schemas, UIs, and editors. For one such type, see Build a document Q&A app with Generic RAG.
DIAL can also run interactive knowledge-graph apps, called Mind Maps, built from documents and URLs. They are not covered in this documentation. For examples, see the demos.
Custom Apps
Custom Apps are not tied to any application type schema. You write the application code, containerize it, deploy it alongside DIAL Core, and register it by providing the endpoint URL. Business logic lives in the container — it cannot be modified through the DIAL Core API after deployment.
Custom Apps are the right choice when you need full control over dependencies, network access, infrastructure, and runtime behavior.
See Custom Apps: architecture and lifecycle for details.
The app lifecycle
Every DIAL app follows the same high-level lifecycle, regardless of type:
- Develop — Write code with the DIAL SDK, configure a schema-based app through the UI, or write Python in the Code App editor.
- Register — Schema-based apps are registered via the DIAL Core API or UI wizard. Custom Apps are registered in
config.jsonwith an endpoint URL. - Test — Use the app through DIAL Chat or the Unified API, or run a test suite against it in DIAL Admin evaluation.
- Share or publish — Share with specific users (READ or WRITE access) or publish to the Catalog for broader access. Publishing requires administrator approval.
- Operate — Monitor usage through DIAL Analytics and observability tools. Manage access, update configuration, and scale as needed.
The Catalog
The Catalog is where users discover and activate apps. Published apps appear in the Catalog alongside language models. Users can browse, search, and add apps to their workspace.
The publication workflow ensures quality: a developer submits a publication request, an administrator reviews and approves it, and the app becomes available to the designated audience (specific roles or all users).
Middleware and platform services
DIAL apps benefit from a shared middleware layer without additional integration:
- Language models — connect to OpenAI, Bedrock, Vertex AI, self-hosted models, and more through adapters.
- Interceptors — add custom logic to requests and responses (PII redaction, guardrails, safety checks).
- Access control — RBAC integrated with identity providers.
- Rate limits — per-key and per-role usage and cost controls.
- Load balancing — distribute requests across upstream resources with PTU support.
- Observability — OpenTelemetry-powered metrics, tracing, and logging.
- Evaluation — test suites in DIAL Admin score apps, including the retrieval and answer quality of RAG apps.