Arcade 1.9.4
App version 5e662d5 · released 2026-07-17 · previous 1.9.3
Release notes
This release adds chart capabilities for private-registry and Gateway-API installs, refreshes the bundled application images (appVersion 491dd65 → 5e662d5), and rolls up two weeks of application fixes. A standard helm upgrade rolls out the new images. All new chart values are opt-in and default to the previous behavior — no secrets, RBAC, or migration changes are required.
Added
- Configurable init-container support images. New
supportImages.busyboxandsupportImages.curl(repository/tag/pullPolicy) let air-gapped and private-registry installs mirror the init images off Docker Hub. Defaults unchanged. - Gateway API health checks for the engine, dashboard, and experience-api. The chart now renders a
TargetGroupConfigurationfor each (previously only the coordinator); set the path via<service>.service.healthCheckPath(defaults: engine/v1/health, dashboard/health, experience-api/). - Per-worker extra environment variables via
workers[].extraEnv(a rawEnvVarlist, defaulting fromworkerDefaults.extraEnv), appended last to the worker container — e.g. to scope a worker to a single tool package. - Gmail toolkit gains message tools (
get_email,forward_email,untrash_email) and label / conversation tools (update_label,delete_label,set_thread_trash_status). - Linear toolkit gains a
list_project_updatesread tool.
Changed
- Excel
create_or_edit_workbooknow produces formatted workbooks by default (number formats, native tables, fonts) instead of raw values, matching the Google Sheets tool. No new tools or schema changes.
Fixed
- Login and registration no longer loop back to the sign-in page or require a second sign-in when the identity (OIDC) session and the dashboard session diverge.
- The dashboard no longer crash-loops on hardened non-root deployments (
containerSecurityContext.enabled: true): the nginx config-render step gets writable volumes so/healthis created and the liveness probe passes. - First-time
rbac.enabledupgrades no longer stall: the coordinator DB-migration and seed hooks stop referencing the not-yet-created OpenFGA token secret. Non-RBAC installs are unaffected. - Jira create-issue validation failures now return a clean error envelope instead of crashing on inaccessible parent issues or inflating fatal-error counts.
Security
- Disabled gateways now block tool access. A gateway set to
inactiverejects bothtools/listandtools/call; previously, existing sessions and allow-list-only gateways could still list and call its tools. - Postgres SELECT toolkit hardened: assembled queries are validated against a parsed AST and rejected if they carry any DML / DDL, stacked statements, or data-modifying CTEs. Results stream with a row cap and connections no longer persist across calls. Tool names, parameters, and return shapes are unchanged.
- Operator RBAC, when enabled, is now enforced on the org-level plugin, hook, and auth-provider read endpoints, matching their create / update / delete siblings. Affects only organizations with operator RBAC enabled.
Operator impact
appVersionmoves to5e662d5, shipping current coordinator / engine / worker / dashboard / experience-api (and OpenFGA) images.- Private-registry / air-gapped installs (optional). Set
supportImages.*to mirror the init-container images (busybox,curlimages/curl) into your registry — required to keep the migration / seed / reconcile Helm hooks off Docker Hub. - Gateway API health checks. When
gateway.enabled, the engine, dashboard, and experience-api now get aTargetGroupConfigurationwith a sensible default health path. Override per service with<service>.service.healthCheckPath. - Per-worker env (optional).
workers[].extraEnv(orworkerDefaults.extraEnv) appends raw env vars to a worker container. - Hardened deployments. If you run
containerSecurityContext.enabled: truewithreadOnlyRootFilesystem: false, the dashboard crash-loop is fixed — no action required. - Operator RBAC (optional). First-time
rbac.enabledupgrades no longer need the manual OpenFGA-secret pre-create workaround. When RBAC enforcement is enabled for an org, org-level plugin / hook / auth-provider reads now requireorg_admin.
API & behavior
- An
inactivegateway rejectstools/listandtools/call. - Gmail, Linear, and Jira gain or refine tools; Excel workbooks are formatted by default.