Skip to content

feat(deployer): fetch logo from the <name>_web child for Phoenix umbrella apps - #305

Merged
thiagoesteves merged 2 commits into
mainfrom
thiagoesteves/fetch-umbrella-logo
Aug 14, 2026
Merged

feat(deployer): fetch logo from the <name>_web child for Phoenix umbrella apps#305
thiagoesteves merged 2 commits into
mainfrom
thiagoesteves/fetch-umbrella-logo

Conversation

@thiagoesteves

@thiagoesteves thiagoesteves commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • The logo lookup only checked the catalog app's own priv directory, which fails for Phoenix umbrella apps where logo.svg lives in the <name>_web child
  • The <name>_web atom is not known on the DeployEx node, so it is discovered from :application.loaded_applications/0 on the monitored node and probed for the logo
  • The single-app path is unchanged; the umbrella fallback only fires when the main app has no logo, and the result is cached by the caller so the extra RPC happens once per node

Risk assessment

  • Impact: umbrella apps now show their logo in the dashboard instead of a blank image
  • Blast radius: Deployer.Status.Logo only; no other module is touched
  • Regression risk: low - the single-app path is unchanged and the umbrella path is purely additive, gated behind the main app returning no logo
  • Rollback: plain commit revert

Test plan

  • mix format --check-formatted passes
  • mix credo --strict passes (logo.ex)
  • mix dialyzer passes (0 errors)
  • mix test apps/deployer/test/status/logo_test.exs passes (11 tests)
  • Manual: verify logo renders for an umbrella app with logo.svg in <name>_web/priv/static/images/
  • Manual: verify logo still renders for a single-app release

🤖 Generated with Devin (GLM-5.2 High)

The logo lookup only checked the catalog app's own priv directory, which
fails for Phoenix umbrella apps where logo.svg lives in the <name>_web
child. The <name>_web atom is not known on the DeployEx node, so it is
discovered from :application.loaded_applications/0 on the monitored node
and probed for the logo.

The single-app path is unchanged: the catalog name is resolved to an atom
on the DeployEx node and its priv directory is read directly. The umbrella
fallback only fires when the main app has no logo, and the result is
cached by the caller so the extra RPC happens once per node.

Risk assessment:
- Impact: umbrella apps now show their logo in the dashboard instead of a
  blank image
- Blast radius: Deployer.Status.Logo only; no other module is touched
- Regression risk: low - the single-app path is unchanged and the umbrella
  path is purely additive, gated behind the main app returning no logo
- Rollback: plain commit revert

🤖 Generated with [Devin](https://devin.ai) (GLM-5.2 High)
@thiagoesteves
thiagoesteves merged commit 7137b58 into main Aug 14, 2026
3 checks passed
@thiagoesteves
thiagoesteves deleted the thiagoesteves/fetch-umbrella-logo branch August 14, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant