v4.2 upgrade tracker: settings as diffed fields, destinations resolver, read:sensitive token, OpenAPI re-vendor #77
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:apply
scope:capture
scope:coolify-api
scope:fleet
scope:manifest
scope:secrets
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/cast#77
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Tracker for everything cast does when the box's Coolify moves from 4.1.2 to v4.2 (the
nextbranch, release train coollabsio/coolify#10872). Per the #72 audit, v4.2 dissolves three of cast's manual-UI steps and changes the API's read semantics out from under the current client. Blocked until v4.2 is released and the box upgrades — nothing here is actionable against 4.1.2.What v4.2 changes (verified on
upstream/nextas of 2026-07-16,7d699818e)34e6a6dd5):GET /applications/{uuid}returns a nestedsettingsobject (ApplicationSetting row minus ids/timestamps); create/PATCH accept ~13 more settings fields incl.include_source_commit_in_build,disable_build_cache,is_gzip_enabled,stop_grace_period, …GET /destinations,GET/DELETE /destinations/{uuid},GET/POST /servers/{server_uuid}/destinations. Create provisions the real Docker network on the host (StandaloneDockercreatedhook) and connects the proxy. Response carries theuuidthatenvironments.yaml'sdestination_uuidneeds.GET/PATCH /services/{uuid}/applications/{app_uuid}(PATCH takesurl→ stored as fqdn), plus service-database endpoints (908b5cc09) and logs/start/stop per container.custom_labels,http_basic_auth_password,dockerfile,docker_compose(_raw), webhook secrets move behindread:sensitive/roottoken abilities, model-level (8b7dbbafb,9a2c432c7). New routes are gated byapi.ability:read/writemiddleware. A pre-upgrade token without these abilities silently loses fields on reads — cast must detect this, not guess.POST /{resource}/{uuid}/move(between environments), tags API,GET /databases|services/{uuid}/logs, backup executions list,docker_compose_domainspopulated for API-created compose apps (#9300).Upgrade checklist (in order)
reference/, diff againstcoolify-openapi-4.1.2.json, re-runinfra smoke(thereference/README.mdstanding rule)read:sensitive+ write abilities; add a preflight that detects an under-privileged token instead of reading absent fields as absent stateinclude_source_commit_in_build(delete the dockercompose warn inresolve.ts~L555),is_staticun-degrades (verify per #70's remaining checklist — the response shape is a nestedsettingsobject,projectLiveFieldspredates it), and decide which other toggles enter the manifest vocabularyenvironments.yamldestination_uuidstops being a hand-copied value; per-project network separation becomes a bootstrap act, not a UI acturlsreplace — but #73 should already work on 4.1.2 and keeps working)s3_storage_id, #72 feature-request 2)Refs
#72 (the audit) · #70 (is_static residuals) · #73 (service urls — 4.1.2-actionable, not gated on this) · #74 · #76
Triage status, 2026-08-17 — half the gate has resolved: Coolify v4.2.0 released 2026-07-21 (release tag; upstream is already at v4.3.1 as of 2026-08-12).
The tracker stays
blocked: the condition is "v4.2 is released and the box upgrades", nothing on this board records the fleet moving off 4.1.2, and that upgrade is operator-owned infrastructure work outside this repo. Two things turn concrete now, worth having on record before the upgrade happens:v4.2.0(or whichever tag the fleet actually adopts, upstream is past it already) and diff againstcoolify-openapi-4.1.2.json;read:sensitivetoken before pointing cast at an upgraded instance, or reads silently lose fields exactly as the body warns.Labels normalized to the board taxonomy:
enhancement,scope:coolify-api,blocked. Flips when the fleet's instances actually move.