Register an app in DIAL Core
This guide shows you how to register a Custom App in DIAL Core so it becomes discoverable through the Unified API and visible in the DIAL Chat Catalog. You should already have a running Custom App with an accessible HTTP endpoint.
Goal
Make your Custom App callable through the Unified API at POST /openai/deployments/<APP_NAME>/chat/completions and visible to users in DIAL Chat.
Prerequisites
- A running Custom App container with a reachable endpoint (see Getting started with DIAL SDK)
- Admin access to DIAL Core configuration or the Deployments API
Option 1: Add to config.json
Add your application to the applications section of DIAL Core's config.json file. This is the simplest approach for fixed deployments.
{
"applications": {
"my-app": {
"endpoint": "http://my-app:5000/openai/deployments/my-app/chat/completions",
"displayName": "My Application",
"description": "Brief description of what the app does"
}
}
}
The key (my-app) becomes the deployment name used in API calls: POST /openai/deployments/my-app/chat/completions.
Note
Applications registered in
config.jsonare immutable — they cannot be modified through the API or UI. This is suitable for production deployments managed by infrastructure-as-code.
Restart DIAL Core (or wait for config reload) to pick up the change.
Verify: Call the API and confirm a response:
curl http://localhost:8080/openai/deployments/my-app/chat/completions \
-H "Content-Type: application/json" \
-H "api-key: <YOUR_API_KEY>" \
-d '{"messages": [{"role": "user", "content": "hello"}]}'
Option 2: Use the Deployments API
Use the PUT /v1/deployments endpoint to register an application dynamically. Applications created this way can be updated or deleted via the API.
curl -X PUT http://localhost:8080/v1/deployments/my-app \
-H "Content-Type: application/json" \
-H "api-key: <YOUR_API_KEY>" \
-d '{
"my-app": {
"endpoint": "http://my-app:5000/openai/deployments/my-app/chat/completions",
"displayName": "My Application",
"description": "Brief description of what the app does"
}
}'
Verify: List deployments and confirm your app appears:
curl http://localhost:8080/openai/deployments \
-H "api-key: <YOUR_API_KEY>"
Restrict access with roles
By default, a registered application is available to all authenticated users. To restrict access, add userRoles:
{
"applications": {
"my-app": {
"endpoint": "http://my-app:5000/openai/deployments/my-app/chat/completions",
"displayName": "My Application",
"userRoles": ["dev-team"]
}
},
"roles": {
"dev-team": {
"limits": {
"my-app": {}
}
}
}
}
Only users with the dev-team role can access the application. The limits entry under the role grants usage permission — an empty object means no rate limit is imposed.
Configure optional features
Custom Apps support additional configuration attributes beyond the required endpoint. Add these to your application's JSON object:
| Attribute | Purpose |
|---|---|
inputAttachmentTypes | MIME types the app accepts (e.g., ["application/pdf", "image/png"]) |
maxInputAttachments | Maximum number of files per request |
forwardAuthToken | Pass the user's auth token to your app (true/false) |
features.rateEndpoint | URL for the rate/feedback endpoint |
features.configurationEndpoint | URL for the configuration UI endpoint |
interceptors | List of interceptor deployment names to apply |
defaults | Default parameters passed to the app on every request |
Example with attachments and interceptors:
{
"applications": {
"doc-qa": {
"endpoint": "http://doc-qa:5000/openai/deployments/doc-qa/chat/completions",
"displayName": "Document Q&A",
"description": "Ask questions about uploaded documents",
"inputAttachmentTypes": ["application/pdf", "text/plain"],
"maxInputAttachments": 5,
"forwardAuthToken": true,
"interceptors": ["pii-redactor"]
}
}
}
For the full attribute reference, see Applications configuration.
Verify in DIAL Chat
After registration:
- Open DIAL Chat in your browser.
- Open the Catalog.
- Confirm your application appears with the correct name and description.
- Start a conversation with the app and send a test message.
Result
Your Custom App is registered in DIAL Core, callable via the Unified API, and visible in the DIAL Chat Catalog. Users with appropriate roles can discover and interact with it.
Further reading
- Deploy a Custom App — package and run your app in Docker or Kubernetes
- Applications configuration — full reference for all application attributes
- DIAL Admin: Applications — add, import, and configure applications in DIAL Admin
- Getting started with DIAL SDK — build and run a first Custom App with DIAL SDK
- Configure and assign interceptors — declare an interceptor in Core and assign it to deployments