Administration & Configuration
Setting Up LLM Connections
This page explains how to set up the LLM connections (AI services, endpoints, API keys, model lists) that AnyLLM uses: creating a connection, confirming Atlassian's approval dialog, testing the connection, changing or deleting an API key and removing a connection.
What this does
A connection is an AI service that you make available: an address (endpoint), a provider type, the names of the models your users may choose from and an API key. Up to 5 connections with up to 20 models each are possible per installation — a saved connection is available to the users of Jira and of Confluence alike. Only connections with a stored API key are offered to users; their models appear in the model selection of the chat, grouped under the connection name.
Who can do this
Product administrators (Jira or Confluence administration). The Connections page is the same in both products.
Before you start
- You have the address of the service, the API key and the exact model names at hand. For OpenAI-compatible services the address includes
/v1, for examplehttps://llm.my-company.com/v1. Onlyhttpsaddresses are accepted. - Saving a connection with a new address opens Atlassian's approval dialog — its consent counts only for the product you are working in. Plan to open the settings in the other product afterwards and approve the address there as well (see Managing Endpoint Approvals).
- Open Settings → Connections (route: Opening the Settings and Initial Setup).
Creating a connection
Purpose — make an AI service available to all users of the installation.
Steps
- Click + Add connection. A new card appears (titled Connection {n} until you enter a name).
- Fill in the fields of the card:
| Field | Required | Explanation |
|---|---|---|
| Name | yes | freely chosen, up to 40 characters; appears to users as the group name above the models |
| Provider type | preset | see the table below |
| Endpoint | yes | full address, https only; for OpenAI-compatible services including /v1. On saving, the address is tidied automatically: surrounding spaces and trailing slashes are removed and the host name is lower-cased; the path is kept as typed |
| API version (optional) | no | only shown for Azure OpenAI, e.g. 2024-10-21; up to 40 characters |
| Models (comma-separated) | yes | exactly as named by the service, e.g. gpt-4o, gpt-4o-mini; up to 20 per connection, each up to 100 characters, letters, digits and . - _ / : only |
| API key | technically no | at least 8 characters; stored encrypted and never shown again. You can save without a key, but the connection then stays invisible to users |
- Click Save connections.
- Confirm Atlassian's confirmation dialog AnyLLM: self-hosted LLM endpoints (…) — it lists all addresses of the app's approval group, also when you add only one.
- Switch to the other product with the product button at the top of the settings and grant the approval there too: Approve now in the Approval status per product table on the Endpoint approvals page.
Provider types
| Choice | When | Hint shown under the Endpoint field |
|---|---|---|
| OpenAI-compatible (default, LiteLLM, OpenRouter …) | the normal case | Endpoint incl. /v1, auth via Bearer token. |
| Self-hosted (OpenAI-compatible: vLLM, Ollama, LM Studio …) | your own server | Endpoint incl. /v1 of your self-hosted server, Bearer token. |
| Azure OpenAI | Azure | Endpoint = resource URL (https://<name>.openai.azure.com); "Models" = deployment names. |
| Anthropic (native /v1/messages) | Anthropic directly | Endpoint = https://api.anthropic.com; "Models" = e.g. claude-sonnet-4-20250514. |
Expected result — the message Saved. next to the button. The label of the API key field now reads API key (set — leave empty to keep, a new value rotates it), and the address appears as approved for this product under Endpoint approvals. Users see the models of the connection in their model selection; requests succeed once the approval exists in their product.
Notes
- If the dialog is declined, nothing is saved: the page reports Network approval for … was declined or failed — nothing was saved. (a technical failure of the dialog looks the same). Save again and confirm.
- The approval counts only for this product. Until you approve the address in the other product as well, the chat there answers The endpoint {host} is not approved for {p} yet — endpoint approvals apply per product. …
- Five connections are the maximum: once five cards exist, + Add connection disappears (an import keeps only the first five cards). Remove a connection to make room.
- Save on other pages also saves your cards: the Save buttons on Modules and General submit the whole configuration, including edited connection cards and keys typed there.
- Automatic clean-up: after a successful save, the app revokes approvals that no saved connection or search service uses any more.
- If the page reports Saved, but the network approval could not be requested — customer-managed egress is not available for this installation. … in red, the configuration was saved, but Atlassian's approval function is missing — see Managing Endpoint Approvals.
Testing a connection
Prerequisite — the connection is saved and has a key. Until the card is saved it says New — test available after saving.; Test connection stays disabled as long as the connection is unsaved or has no key.
Steps
- Click Test connection on the card. While the test runs, the card shows Testing connection ….
- Read the response:
| Response | Meaning |
|---|---|
| Connection ok — {n} model(s) at the endpoint. | address and key work; the service reported a model list |
| Connection ok. | address and key work; the service reports no model list |
| Visible for this key: … | the models the service reports for this key (at most 50 names) |
| Not in the list (may still work): … | a model you entered was not reported. Shown in red although the test succeeded — many services list only a subset; only an actual chat attempt gives certainty |
| Test failed. — alone or followed by a technical message | the test could not be carried out at all (for example the request to the app failed). The service-related reasons in the following rows appear on their own, without this prefix |
| Endpoint rejects the API key (401/403). | key wrong or expired |
| Endpoint responded with HTTP {status}. | the service answered with an error status other than 401/403 |
| Timeout after 10s. | the service did not answer within 10 seconds |
| Connection failed: … This endpoint needs a network approval: check that an administrator has approved it under Settings → Endpoint approvals. | the request did not reach the service — typically the address is not approved or not reachable |
| The request was blocked inside Atlassian before reaching {host} — the endpoint is not approved for {p} yet. Approvals apply per product; grant it on the {p} admin page under Endpoint approvals. If it already appears approved there, use "Re-approve in this product" — the list is shown installation-wide, but the admin consent counts per product. | the approval for the product you are in is missing; this test also records a "blocked" entry for the product |
| Connection not found — please save first. / No API key saved — please set a key and save. | the card is not saved or has no key (rare, because the button is disabled in that state) |
Expected result — a successful test in a product also clears a "blocked" entry of that product on the Endpoint approvals page. The test works regardless of the subscription state.
Changing or deleting an API key
Changing: enter the new key in the API key field — the field is empty and its label carries (set — leave empty to keep, a new value rotates it) — and click Save connections. The new key is used immediately; an empty field keeps the old key.
Deleting:
- Click Delete key on the card. The button changes to Really delete?.
- Click Really delete? to confirm. No further save is needed.
Expected result — the card reports API key deleted — connection is disabled until a new key is saved. On failure it shows Delete failed. or Connection not found.
⚠️ Warning: Without a key the connection is disabled immediately. Its models disappear from every user's selection. If one of them was the default model, users automatically get the first available model of another connection. If no usable connection is left, the chat reports Not configured yet … and the input field is locked.
Removing a connection
- Click Remove on the connection card (shown only while more than one card exists).
- Click Save connections.
Expected result — Saved. The connection and its stored key are gone; users lose that connection's models. Conversations already saved are kept; when continued, an available model is used instead. An approval that no other saved connection or search service uses is revoked automatically after the save.
Common problems
Server messages appear in English next to the Save connections button.
| Message | Cause | Solution |
|---|---|---|
| Add at least one connection. | all cards are empty | fill in at least one card |
| „X“: name missing or longer than 40 characters. | name empty or too long | enter a name of up to 40 characters |
| „X“: endpoint is not a valid URL. | the address cannot be parsed | enter the full address including https:// |
| „X“: endpoint must use https://. | http:// entered | use https |
| „X“: specify at least one model. | model list empty | enter at least one model name |
| „X“: at most 20 models. | more than 20 models | shorten the list |
| „X“: invalid model name „…“ | a name contains characters other than letters, digits and . - _ / :, or is longer than 100 characters | correct the name |
| "X": API key seems too short (at least 8 characters). | key shorter than 8 characters | paste the complete key |
| Default model must belong to one of the connections. | the default model on General points to a model that no longer exists | choose another default model on General |
| Network approval for … was declined or failed — nothing was saved. | dialog declined, cancelled or failed | save again and confirm the dialog |
| Saved, but the network approval could not be requested — customer-managed egress is not available for this installation. … | Atlassian's approval function is missing for the site | contact your vendor (maplee); see Managing Endpoint Approvals |
| Save failed. | the server rejected the request without details | reload the page and try again |
| + Add connection is missing | five connections exist | remove a connection first |
| Users see Not configured yet … although connections exist | no connection has a stored key | enter the key and save |
| The chat in the other product says The endpoint {host} is not approved for {p} yet … | the approval was granted in one product only | approve it in the other product |
| A model is not found | the model name differs from the service's | Test connection shows the visible model names |
Related topics
Rendered from the app’s own interface with sample data; the Jira/Confluence frame around it is not shown.
Documentation baseline: app version 0.2.0 · 2026-08-30