Expose a ttl (or expires_at) property on Intent Projects with the following behavior:
Configuration — TTL can be set at project creation or updated later, expressed either as a duration (72h, 7d, 30d) or an absolute timestamp. It should be settable via UI, API, GraphQL, and the Terraform provider.
Default & policy control — Allow administrators to set a default TTL per space, and/or enforce a maximum TTL via an Intent policy (e.g., "all Intent Projects in the dev space must have a TTL ≤ 14 days").
Notifications — Send notifications (email/Slack via existing notification policies) to the project owner at configurable thresholds before expiration (e.g., 72h, 24h, 1h) with a one-click "extend TTL" action.
Expiration behavior — When the TTL elapses, Spacelift automatically performs a destroy of all resources managed by the project in dependency order, subject to existing Intent policies (so a policy denial on delete is still respected and surfaced). The full cleanup run is recorded on the project's History tab for auditability, matching how deletions are already tracked.
Project lifecycle after cleanup — Configurable: either archive the project (keeping history/receipts for audit) or fully delete it. Archive should be the default.
Lock & grace handling — If a project is actively locked by a user session when TTL expires, delay cleanup until the lock releases (or a configurable grace period elapses), and notify the lock holder.
Please authenticate to join the conversation.
👀 In Review
💡 Feature Requests
1 day ago
Get notified by email when there are changes.
👀 In Review
💡 Feature Requests
1 day ago
Get notified by email when there are changes.