{"id":"6ab1c2aae712ab239bfc55df","title":"2026 09 18 Issue 362 Encrypt Environment Secrets At Rest And Tighten Platform 2","path":"how-to/committee/release-notes/2026-09-18-issue-362-encrypt-environment-secrets-at-rest-and-tighten-platform-2","contentMarkdown":"# 18-Sep-2026 — encrypt environment secrets at rest and tighten Platform Configuration Values [ref #362](https://github.com/nbarrett/ngx-ramblers/issues/362)\n\n## [build 959](https://github.com/nbarrett/ngx-ramblers/actions/runs/35668027577) — [commit 128cd60](https://github.com/nbarrett/ngx-ramblers/commit/128cd60945a249e846b53050967905aef3cf4721)\n\n_____\n\n## What's new\n\nThe environments document on the platform site holds every environment's credentials. Those secrets can now be stored encrypted, so reading the database directly no longer shows them, and Platform Configuration Values no longer reveals or exports them unless someone asks to see them. This prepares the estate for Head office taking ownership.\n\n## At a glance\n\n- Passwords, secret keys, tokens and each environment's secrets are stored encrypted once ENVIRONMENTS_ENCRYPTION_KEY is set on the platform site\n- Screens, deploys and the command line keep working with the real values; nothing changes for anyone using NGX normally\n- Platform Configuration Values shows only whether each secret is present, on screen and in the offline export\n- Every reveal of secret values is logged with the member who asked\n- There is a way back: a command stores the document unencrypted again\n\n## Where to find it\n\n- Admin → Platform → Environment management → Platform Configuration Values\n- ngx-cli environments-value and ngx-cli environments-decrypt on the command line\n\n## How it behaves\n\nEncryption only happens where ENVIRONMENTS_ENCRYPTION_KEY is set. The key lives on the platform site's Fly app, in the GitHub Actions secrets and in a developer's server/.env, and nowhere else. When the platform site starts with the key, it encrypts anything still stored in the clear once its startup migrations have finished. Identifiers such as hosts, database names, usernames and app names stay readable, so the inventory works without decrypting. System Logins notes are encrypted too.\n\nA document is only stored if decrypting it gives back exactly the original. If the key is missing where encrypted values are found, or is the wrong key, the error says so rather than reporting a missing configuration.\n\n## How to switch it off\n\nRemove the key from the platform site first, then run ngx-cli environments-decrypt --confirm with the key available. The document is stored with its secrets unencrypted again, and the command checks that what it wrote matches.","contentHtml":"<h1>18-Sep-2026 — encrypt environment secrets at rest and tighten Platform Configuration Values <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/362\">ref #362</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/35668027577\">build 959</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/128cd60945a249e846b53050967905aef3cf4721\">commit 128cd60</a></h2>\n<hr>\n<h2>What&#39;s new</h2>\n<p>The environments document on the platform site holds every environment&#39;s credentials. Those secrets can now be stored encrypted, so reading the database directly no longer shows them, and Platform Configuration Values no longer reveals or exports them unless someone asks to see them. This prepares the estate for Head office taking ownership.</p>\n<h2>At a glance</h2>\n<ul>\n<li>Passwords, secret keys, tokens and each environment&#39;s secrets are stored encrypted once ENVIRONMENTS_ENCRYPTION_KEY is set on the platform site</li>\n<li>Screens, deploys and the command line keep working with the real values; nothing changes for anyone using NGX normally</li>\n<li>Platform Configuration Values shows only whether each secret is present, on screen and in the offline export</li>\n<li>Every reveal of secret values is logged with the member who asked</li>\n<li>There is a way back: a command stores the document unencrypted again</li>\n</ul>\n<h2>Where to find it</h2>\n<ul>\n<li>Admin → Platform → Environment management → Platform Configuration Values</li>\n<li>ngx-cli environments-value and ngx-cli environments-decrypt on the command line</li>\n</ul>\n<h2>How it behaves</h2>\n<p>Encryption only happens where ENVIRONMENTS_ENCRYPTION_KEY is set. The key lives on the platform site&#39;s Fly app, in the GitHub Actions secrets and in a developer&#39;s server/.env, and nowhere else. When the platform site starts with the key, it encrypts anything still stored in the clear once its startup migrations have finished. Identifiers such as hosts, database names, usernames and app names stay readable, so the inventory works without decrypting. System Logins notes are encrypted too.</p>\n<p>A document is only stored if decrypting it gives back exactly the original. If the key is missing where encrypted values are found, or is the wrong key, the error says so rather than reporting a missing configuration.</p>\n<h2>How to switch it off</h2>\n<p>Remove the key from the platform site first, then run ngx-cli environments-decrypt --confirm with the key available. The document is stored with its secrets unencrypted again, and the command checks that what it wrote matches.</p>\n"}