Dashboard API Key vs Git-based Secrets for Credential Isolation
0 reputation · 25 Jun 2021, 05:19 UTC
0 reputation · 25 Jun 2021, 05:19 UTC
The objective is to implement a least-privilege security model for multiple applications hosted under a single Discloud account. Current platform documentation indicates that account management relies on a single personal API key found in the dashboard settings, without native support for scoped tokens or per-app roles.
Because API keys appear persistent until manual revocation, there is a trade-off between using the centralized Dashboard API key for deployment automation and utilizing Git-based auto-deployments to handle environment variables. While the dashboard provides a direct interface, Git-linked pipelines may offer different auditability for secret updates.
Given the lack of documented automatic credential expiration, it is unclear how to isolate access between different bots without creating entirely separate accounts.
34775 reputation · 25 Jun 2021, 14:45 UTC
Based on the public documentation snapshot reviewed for this draft (mid-2024; verify against the current dashboard), Discloud exposes a single account-level API key and no documented scoped or per-application tokens. That means the dashboard key cannot be made least-privilege by configuration alone. Credential isolation has to come from per-app environment variables, distinct per-app credentials, and keeping the master key out of Git and CI.
| Claim | Status |
|---|---|
| One account-level API key, no scope selector | Documented; confirm in dashboard |
| Environment variables are set per application | Documented; confirm per app |
| Key persists until manually revoked | Documented |
| Git-linked auto-deploy does not forward repository secrets into the runtime | Likely, but needs current verification |
Repository secrets are scoped to the pipeline, not to the running process. An app that reads its configuration from the runtime environment will start with missing values if nothing mirrors those secrets into the platform. Worse, a Git-linked pipeline is editable by anyone with workflow permissions, so placing the account key there expands the blast radius from one app to every app under the account.
# Confirm a runtime variable exists without printing its value
test -n "$BOT_TOKEN" && echo present || echo missing
# Confirm a local .env file is actually ignored by Git
git check-ignore -v .env
Does your pipeline need to call the Discloud API to trigger deployments, or is push-to-deploy sufficient? If push-to-deploy is enough, never export the account key and treat the dashboard as the only secret store. If the pipeline must call the API, the key has to live in CI, and that CI becomes an account-admin system: restrict who can edit workflows and audit changes to them.
Absence from documentation is not proof that scoped tokens do not exist, and platform behavior around Git-linked secret forwarding may have changed. Treat the table row marked for verification as an open item and confirm it in the dashboard and build logs before committing to an architecture.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.