Feature Requests

Got an idea for a feature request? Let us know! Share your ideas on improving existing features or suggest something new. Vote on ideas you find useful!

Make sure to read our guidelines before posting 📖

Redact Terraform-sensitive resource attributes in run plan/apply diffs

## Summary When Terraform marks a resource attribute as Sensitive (e.g. okta_app_oauth.client_secret, using the Okta provider), Spacelift run UI still shows the plaintext value in the resource create/update diff. We expected the same redaction the tofu CLI uses: (sensitive value). ## Why it matters OIDC client secrets (and similar provider-computed secrets) are visible to anyone who can view the Spacelift run. That expands the blast radius beyond state access and makes it harder to share run links / screenshots safely. Our module already marks the output as sensitive; the gap is in the resource attribute diff rendering. ## Reproduction 1. Apply a stack that creates okta_app_oauth (confidential client; omit_secret left at default false). 2. Open the Spacelift run and inspect the resource changes for the OIDC app. 3. Observe client_secret shown as a raw string in the diff, e.g.: + client_secret: "..." instead of: + client_secret: (sensitive value) ## Expected Any attribute Terraform reports as sensitive should be redacted in: - plan diffs - apply diffs - related run log / change views in the Spacelift UI State may still contain the value (Terraform limitation), but the UI should not display it in plaintext when sensitivity metadata is present. ## Ask Please redact Sensitive resource attributes in Spacelift run diffs/logs using Terraform’s sensitivity metadata, consistent with terraform plan/apply CLI behavior.

💡 Feature Requests

about 20 hours ago

Support multiple tenants under one Spacelift account

Today a Spacelift account is single-tenant: one root space, one set of account-level settings (SSO, audit trail, billing, login-policy ownership), and spaces as the only isolation boundary inside it. Spaces are excellent for team/project segregation, but they are not a hard tenant boundary, since root/account admin remains all-powerful across every space, and several controls stay account-wide. We need the same pattern GitHub provides with Enterprise → multiple Organizations: one commercial / SSO / billing substrate, with multiple tenants underneath as first-class isolation units. Each tenant would own its own admin boundary, spaces tree, integrations, and audit delivery, without requiring a fully separate Spacelift account per regulated entity. Analogy: GitHub: Enterprise → Org A / Org B / Platform Org Spacelift: Account → Tenant A / Tenant B / Platform Tenant └── spaces… └── spaces… That would let us keep a shared paved path (modules/policies consumed across tenants) while giving each regulated entity a native isolation unit stronger than a space subtree, without the cost and duplication of N independent Spacelift accounts. Related: we are also requesting per-space audit trail endpoints (link after posting) for the spaces-only model; multi-tenant accounts would preferably include per-tenant audit trail as part of the tenant boundary.

💡 Feature Requests

about 22 hours ago

Allow configuring audit trail endpoints per space

Today the audit trail webhook is account-wide: one endpoint for the whole account (docs, config under Audit trail → Configuration). Spaces already isolate almost everything else: RBAC, VCS integrations, worker pools, cloud integrations, policies. We would like to use a space-per-entity topology for regulatory / conflict-of-interest separation, but for this each entity needs its audit events delivered only to its own immutable sink (SIEM / Object-Lock bucket), under its own keys and access controls. It would be very helpful if audit trail webhooks could be configured per space (optionally with inheritance to child spaces), so events for resources in space A go only to space A’s endpoint. Account/root-level events could still use a root webhook. Terraform/API parity (space_id on spacelift_audit_trail_webhook) would be ideal. Related but different: Multiple Audit Trail Configurations asks for multiple account-level endpoints so several teams can ingest the same stream. We need space-scoped delivery so each entity’s sink receives only that space’s events — not a shared fan-out of the full account trail.

💡 Feature Requests

about 23 hours ago

⬆️ Gathering votes

Make user GitHub teams available at PR creation and comment events

We are currently tightening our security policies on certain actions in Spacelift. One of our focus is to reach the plan phase of a proposed run only after an approval of a codeowner. So far we succeeded testing adding a label on a stack that basically contains a list of GitHub teams based off of the actual CODEOWNERS, this way Spacelift on any action in the stack can access to the GitHub team that owns the stack and the code it tracks. Then we created an approval policy that waits for an approval from the codeowners. Once a PR is created and thus a proposed run is triggered and starts, then evaluates something in the lines of: requires_approval if { not creator_is_codeowner } ## Creator is a code owner if their GitHub teams overlap with codeowner_teams creator_is_codeowner if { some session_team in input.session.teams some codeowner_team_group in codeowner_teams session_team in codeowner_team_group } ## Auto-approve: creator is code owner approve if not requires_approval ## Approve: someone from the owning team reviewed in Spacelift approve if { count(input.reviews.current.rejections) == 0 requires_approval some review in input.reviews.current.approvals some session_team in review.session.teams some codeowner_team_group in codeowner_teams session_team in codeowner_team_group } TL;DR if the author of the PR is not a codeowner (i.e. doesn't belong to a github team the the stack is labeled with), then requires an approval of a codeowner. The parts that work: The approval policy is evaluated before the plan phase The approval policy lets the run continue and finish only after a codeowner approval The parts that we would like to have but are not supported by Spacelift (to the best of our knowledge) At the PR creation event and evaluation of the approval policy this block is in the approval policy: ... "commit": { "author": "AUTHOR_USERNAME", "branch": "BRANCH_NAME", "created_at": 1785152807000000000, "exist_on_tracked_branch": false, "hash": "HASH", "message": "Test codeowners approval", "tag": "", "url": "https://github.com/ORG/REPO/commit/COMMIT_HASH" }, ... "creator_session": { "admin": "", "creator_ip": "", "idp_subject": "", "login": "", "machine": true, "name": "", "teams": [] } ... No way of getting author teams

💡 Feature Requests

9 days ago

1

Burstable/scaleable public workers for high load periods

Currently my company is on the Starter plan which comes with two public workers. 90% of the time, that is more than enough for our day to day operations. However, it would be amazing and also something I would be completely onboard with paying a premium price on if we could dynamically scale up even a couple workers on occasion. The scenario where we may want something like that would be in the case where we are affecting a change across a module with many stacks, like ECS or Lambdas. The two worker limitation on Starter becomes a bottleneck. While I know Enterprise has the ability to auto scale, we just don’t need that big of a contract or that many workers on a regular cadence for it to make sense to sign onto that. But I would be more than willing to pay a per-min compute price for a few extra workers on demand or when our queue of jobs gets to a certain depth.

💡 Feature Requests

16 days ago

2