Skip to content
Praxis is in alpha. The supported API is praxis.io/alpha, and the contract can change while Praxis is in alpha.About the alpha contract

Lifecycle controls

Lifecycle policy lets a template state how Praxis should treat a resource after provisioning.

resources: database: {
apiVersion: "praxis.io/alpha"
kind: "RDSInstance"
metadata: {name: "payments-primary", labels: {}}
spec: {
// Resource fields omitted for clarity.
}
lifecycle: {
preventDestroy: true
managedDriftCorrection: true
ignoreChanges: ["spec.tags.external-controller"]
}
}

Blocks a delete or replacement that would destroy the external resource. Praxis reports the policy conflict instead of silently bypassing it.

Controls whether reconciliation writes changes back to AWS.

  • true: detected drift is corrected toward the declared specification.
  • false: detected drift is reported without writes. The resource remains healthy under the requested policy and carries drift context.

Excludes selected fields from desired-versus-observed comparison. Use it when another controller legitimately owns a field. Avoid broad ignore rules because they reduce the state Praxis can verify.

Some AWS fields are immutable. A plan reports when a change requires replacement. The user can explicitly target replacement or allow it for the deployment. Praxis does not infer permission to destroy protected infrastructure.