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"] }}preventDestroy
Section titled “preventDestroy”Blocks a delete or replacement that would destroy the external resource. Praxis reports the policy conflict instead of silently bypassing it.
managedDriftCorrection
Section titled “managedDriftCorrection”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.
ignoreChanges
Section titled “ignoreChanges”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.
Replacement
Section titled “Replacement”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.