Skip to content

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 08:55

Added

  • just secrets-pull dev|prod and just secrets-push dev|prod: sync an environment's app secrets (the app group in infra/secrets.manifest.yaml) between its Key Vault and .env.<env> / config/admins.<env>.yaml. A push reads the live vault, shows what would change by name and length (never a value; admins.yaml as a diff, checked against that env's members.yaml), pushes on a yes only if the vault hasn't changed meanwhile, reads it back, and offers to restart. just restart dev|prod restarts the Container App so it reads its secrets again. Needs Key Vault Secrets Officer. See the runbook's "Sync secrets with Key Vault" and ADR 0016.
  • /spacestate set state:open|close: members with the new spacestate capability can set the space open or closed from Discord. Pixel POSTs to the space's state API (SPACESTATE_API_URL, with the user and token from SPACESTATE_USER and SPACESTATE_TOKEN, which are Key Vault secrets spacestate-user and spacestate-token on Azure) and tells the person nothing changed if the API doesn't answer SUCCESS. The three settings go together or not at all; without them the command says it isn't set up. Grant the capability with /admin capabilities grant, and run just register dev / just register prod after deploying to add the command. Terraform gets a spacestate_api_url variable and the two write-only secrets.
  • Website: each command on the commands page has a Copy button for its name. Public and private replies, and the capabilities a command needs, now look different from each other, and a tooltip explains each one when you hover over, tap or tab to it. Home Assistant and Scheduled posts sit under Members.
  • Website: every command, admin ones included, is now a card of its own in the commands page's outline, with a link you can share (such as /commands#ha-set). Links opened straight to a heading no longer land under the top bar.
  • Privacy notice (docs/privacy.md) linked from /help, with log and Sentry retention and the access/deletion process in the runbook (#7).
  • Website: the privacy notice is on the docs site, linked from the guide, the sidebar and the maintainers overview.

Changed

  • Secrets: infra/secrets.manifest.yaml is now the one list of the secrets Pixel keeps in Azure Key Vault (names, environment variables, what turns each on; never values). Terraform derives its Key Vault secrets and the Container App's secret environment variables from it, with the same result as before, and a test fails if config.ts, .env.example, the Terraform variables or the docs disagree with it. just validate-secrets checks the file and lists the secrets. This is groundwork for a Key Vault sync tool (ADR 0015). Nothing to apply or redeploy.
  • Website: the /feedback card now says that your message and username may be made public, so you shouldn't include anything private.
  • /feedback now says, in its description and its reply, that your message and username may be made public, and the reply links the privacy notice. /help links the privacy notice on the website (https://pixelbar.nl/pixel/privacy) instead of GitHub. Run just register dev / just register prod after deploying so Discord shows the new /feedback description.