{"product":"cli","releases":[{"date":"2026-09-03","entries":[{"areas":["developers"],"breaking":true,"content_html":"\u003cp\u003eEvery Edge App in your Screenly account has an ID, and it\u0026rsquo;s how the CLI knows which app to publish\nto when you run \u003ccode\u003escreenly edge-app deploy\u003c/code\u003e. Until now that ID lived in the \u003ccode\u003eid\u003c/code\u003e field of\n\u003ccode\u003escreenly.yml\u003c/code\u003e, next to your code. The CLI now looks for it in the \u003ccode\u003eEDGE_APP_ID\u003c/code\u003e environment\nvariable first, so whatever runs the deploy decides where it goes: a secret in your GitHub Actions\nworkflow, or a variable in your own shell.\u003c/p\u003e\n\u003cp\u003eThat matters as soon as more than one person or more than one account deploys the same code. An ID\nin \u003ccode\u003escreenly.yml\u003c/code\u003e belongs to one account but gets committed to a repository other people clone, so\nteams end up deploying over each other\u0026rsquo;s app or editing the file back and forth. With the ID in the\nenvironment, the manifest is the same for everybody, and the\n\u003ca href=\"/releases/edge-apps-actions/26.9.0/edge-app-id-input/\"\u003eGitHub Actions take it as an input\u003c/a\u003e for the\nsame reason.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eid\u003c/code\u003e field in \u003ccode\u003escreenly.yml\u003c/code\u003e still works when \u003ccode\u003eEDGE_APP_ID\u003c/code\u003e isn\u0026rsquo;t set, but the CLI prints a\ndeprecation warning each time it falls back to it, and it will go away.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003escreenly edge-app create\u003c/code\u003e respects the variable too, including \u003ccode\u003e--in-place\u003c/code\u003e. With \u003ccode\u003eEDGE_APP_ID\u003c/code\u003e\nset, create checks that the app exists and targets it rather than making a new one, and writes\nnothing into \u003ccode\u003escreenly.yml\u003c/code\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eIf you script \u003ccode\u003ecreate\u003c/code\u003e with a name:\u003c/strong\u003e the name no longer decides which app you get while\n\u003ccode\u003eEDGE_APP_ID\u003c/code\u003e is set. The deploy that follows republishes over the app the variable names, so a\nnew name gives you a new revision of the existing app rather than a new app. Unset the variable\nwhere you actually want a new one.\u003c/p\u003e\n\u003c/blockquote\u003e\n","description":"The CLI reads the app's ID from the EDGE_APP_ID environment variable first, so a GitHub Actions secret or your own shell picks where a deploy lands and screenly.yml stays the same for everyone.","title":"Your CI decides which Edge App a deploy goes to, not screenly.yml","type":"improvement","url":"https://www.screenly.io/releases/cli/26.9.0/edge-app-id-from-the-environment/"}],"json":"https://www.screenly.io/releases/cli/26.9.0/v1.json","product":"cli","product_label":"Screenly CLI","url":"https://www.screenly.io/releases/cli/26.9.0/","version":"26.9.0"}],"title":"Screenly CLI 26.9.0","url":"https://www.screenly.io/releases/cli/26.9.0/","version":1}