Skip to content

Upgrading to 5.0: the rename to designIQ ​

5.0 renames the product to designIQ (repository Miragon/design-iq); the server keeps its name, the Live Host, and its LIVE_* variables. Your data stays where it is: live documents, workspaces, content repos, todos and BPMN files with sticky notes are read as before. What changes are the names the platform publishes and writes. Rationale: ADR 0008.

Order ​

  1. Bring every Live Host, CI validator and read-only MCP server that works on the same repositories to 4.3.1 or later first: 4.3.x already reads the contract file and the todo wording 5.0 writes. A host that shares its repositories with no other host can go from any 4.x straight to 5.0.
  2. Upgrade to 5.0 (below).
  3. Only then rename contract files in your content repos (Content repos).

Container image ​

4.x5.0
imageghcr.io/miragon/bpmiq-live-hostghcr.io/miragon/designiq-live-host
version variable (compose)BPMIQ_VERSIONDESIGNIQ_VERSION (BPMIQ_VERSION is still read; DESIGNIQ_VERSION wins)
  • The old image name is no longer published; 4.3.1 is its last release. A compose file, docker run or manifest that keeps it raises no error; it silently stays on 4.3.1, :latest included. Change the image: line, or take the new deploy/docker-compose.yml.
  • The new name starts at 5.0.0; earlier releases exist under the old name only. With the new compose file an existing BPMIQ_VERSION=v4.x pin asks for a tag the new image does not have: set DESIGNIQ_VERSION=v5.0.0 (or later) and delete the old line.
  • Keep your volume name. The docs now show -v designiq-data:/data; an install started from the older docs uses -v bpmiq-data:/data. Do not copy the new name into an existing docker run: a new name is a new, empty /data, and the host would come up without its live documents and unreleased edits. The compose file's ./data bind mount is unchanged.

Everyone signs in again once ​

The browser session and login cookies are renamed (bpm_live_sid, bpm_live_oauth, bpm_live_pkce, bpm_live_editor → designiq_sid, designiq_oauth, designiq_pkce, designiq_editor), and 5.0 reads only the new names: every browser is signed out once. A sign-in that is in flight during the deploy fails its state check. Start it again. Bearer tokens (MCP clients, CI) are not affected.

Keycloak quickstart ​

The realm shipped in deploy/keycloak/ is renamed:

4.x5.0
realm filerealm-bpmiq.jsonrealm-designiq.json
realmbpmiqdesigniq
browser clientbpmiq-webdesigniq-web
MCP clientbpmiq-mcpdesigniq-mcp
audiencebpmiqdesigniq

The Live Host does not care what the realm is called; it only reads LIVE_OIDC_*. Choose:

  • Keep your realm (do this when it holds real users): leave .env as it is and keep importing your own realm file: mount it where the compose file now mounts realm-designiq.json, or stop importing if your Keycloak keeps a database.
  • Move to the new realm: in .env, point LIVE_OIDC_ISSUER, LIVE_OIDC_JWKS_URL, LIVE_OIDC_AUTHORIZE_URL and LIVE_OIDC_TOKEN_URL at …/realms/designiq/…, set LIVE_OIDC_AUDIENCE=designiq and LIVE_OIDC_CLIENT_ID=designiq-web, and re-add MCP clients with --client-id designiq-mcp. The shipped dev-mode Keycloak keeps no state, so it imports the new realm on restart with the demo users only. Set github_login on your own users again, and repeat your realm edits: the redirect URI and web origin of designiq-web and the MCP callbacks of designiq-mcp (idp-quickstart §6), and the GitHub identity provider, whose OAuth App callback is now …/realms/designiq/broker/github/endpoint. A Keycloak with a database that still starts with --import-realm and the mounted file gets designiq as a second realm next to the old one; its users stay in the old realm.

Content repos: designiq.yml ​

  • designiq.yml is now the documented contract file. The legacy name bpmiq.yml stays readable for good, and so does the key processes:; nothing breaks if you keep it.
  • To rename, finish the order above first (older versions read only the legacy name), then git mv bpmiq.yml designiq.yml and add /designiq.yml to CODEOWNERS wherever /bpmiq.yml is listed, because the file decides what the platform serves. Do not keep both files naming different folders: designiq.yml wins and the validator warns.
  • The validator warns on a repo that carries only the legacy name: [WARN] bpmiq.yml: legacy contract file name — rename it to designiq.yml (git mv bpmiq.yml designiq.yml); still read. The exit code stays 0, but a CI step that fails on any warning will trip.
  • process-documentation-starter ships designiq.yml from now on; repos created from it need 4.3.1 or later.

Validator and read-only MCP server (npm) ​

4.x5.0
validator package/bin@bpmiq/validator / bpmiq-validate@miragon/design-iq-validator / designiq-validate
MCP package/bin@bpmiq/mcp / bpmiq-mcp@miragon/design-iq-mcp / designiq-mcp-server
MCP envBPM_CONTENT_ROOT, BPM_TODOS_REPO, BPM_TODOS_TOKENDESIGNIQ_CONTENT_ROOT, DESIGNIQ_TODOS_REPO, DESIGNIQ_TODOS_TOKEN
MCP serverInfo namebpm-architecturedesigniq-mcp

Run them as npx @miragon/design-iq-validator --root . and npx @miragon/design-iq-mcp --root <path>. The old env names are still read; when both are set, DESIGNIQ_* wins. The MCP bin is designiq-mcp-server, not designiq-mcp; that bare name belongs to an unrelated npm package.

@bpmiq/validator and @bpmiq/mcp get no release after 4.3.1 and are deprecated with a pointer to the new names. An unpinned npx @bpmiq/… raises no error; it silently stays on 4.3.1, so change the package name in CI and MCP client configs.

MCP connectors ​

Connectors keep working: the endpoint is still https://<host>/mcp and no tool was renamed. The Live Host now reports the serverInfo name designiq-live (was bpmiq-live) and the resource name "designIQ Live Host". The docs suggest designiq as the local alias (claude mcp add --transport http designiq https://<host>/mcp) where they said bpm-live; an existing connector does not need to be added again.

Contributors to this repository: .mcp.json names the read-only server designiq-content (was bpm-architecture), so Claude Code asks for approval once more, and permission entries mcp__bpm-architecture__* become mcp__designiq-content__*. It is no longer called like the suggested Live Host alias designiq, so a local claude mcp add … designiq does not shadow it.

VS Code extension ​

The extension (side-loaded, never on the Marketplace) is renamed:

  • id miragon-gmbh.design-iq (was miragon-gmbh.bpm-live): uninstall the old build;
  • documents designiq:/<owner>/<repo>/<path> (was bpm-live:/…): editors restored with the old scheme no longer open; reopen them with designIQ: Open Live Model;
  • setting designiq.serverUrl: a bpmLive.serverUrl value in user or workspace settings is copied once on the first start (never over a value already set); delete the old key afterwards;
  • commands designiq.*, shown as designIQ: … in the palette.

Sign in again: the stored session belongs to the old extension id. The browser sign-in needs a 5.0 host and a 5.0 extension: the host sends the callback to the extension id it knows. Against a mixed pair, use designIQ: Sign in with a session token….

GitHub App ​

create-app proposes the name designIQ <org> for a new app (GitHub app names are unique across all of GitHub). Existing apps, their names and slugs are untouched; GITHUB_APP_SLUG stays as it is.

What else you will notice ​

  • Todos filed by 5.0 end with "Created from the designIQ live model by @…" (close comments: "Closed from …"). Hosts from 4.3.1 on read both wordings; an older host on the same repo shows the line as part of the todo text. Labels the host creates get designIQ descriptions; existing todo and process:* labels keep theirs; edit them in GitHub if you like.
  • Release PRs say "opened by designIQ on behalf of the releaser".
  • "Not a content repo" now reads <repo> has no usable designiq.yml (or legacy bpmiq.yml) at its root — not a content repo in the Live Host's API and MCP errors and its boot line; the read-only MCP server and the CLIs (pnpm validate) word it alike. Codes and statuses are unchanged: match on the code (content/not-a-content-repo, …), not on the text.
  • Web app: the product name reads designIQ, the BPMN header toggle for t.BPM workshop mode is labelled "Workshop" (files are unchanged), and the cached repo list reloads once.
  • GITHUB_REPO default is now Miragon/design-iq (was Miragon/bpm-iq). A host that never set it keys its live documents by that name: release its unreleased edits before upgrading, or set GITHUB_REPO=Miragon/bpm-iq to keep them. Such a host also keeps a stale fallback entry under the old name in its repository list; remove it with sqlite3 <data>/live.db "DELETE FROM repos WHERE full_name='Miragon/bpm-iq' AND installation_id IS NULL".
  • "Analyse with AI" names the connector by its URL, so the prompt works whatever you called the connector.