terradart_core 0.0.1-dev
terradart_core: ^0.0.1-dev copied to clipboard
terradart core runtime — Stack, Resource, Provider, Variable, Data, TfArg, TfRef, and LifecycleOptions for Dart-first Terraform synthesis.
terradart #
Core runtime for terradart — a Dart-first authoring layer for Terraform that produces drop-in main.tf.json for the standard terraform CLI.
This package ships the small set of primitives every terradart Stack uses:
Stack— abstract base for your infrastructure module. You subclass it, registerResource<S>/Data<S>instances viaadd(...)/addData(...), and callStackSynth.synth(this)from your ownmain().Resource<S>/Data<S>— typed nodes whose genericSis a schema carrier supplied by Tier 1 factories (interradart_google) or generated bindings (fromterradart_codegen).TfArg.literal(...)/TfArg.ref(...)— the only two ways every settable field accepts input.LifecycleOptions—create_before_destroy,prevent_destroy,ignore_changes,replace_triggered_by.StackSynth.synth(stack)returning aSynthResultwithtfJson(Terraform JSON map) and optionaldartConstants(typed Dart constants for the IaC ↔ application seam).
This package is the runtime layer only. It is intentionally small and dependency-free. The companion packages are:
terradart_codegen— the Stage 1 codegen /terradartCLI that turnsterraform providers schema -jsoninto typed Dart bindings.terradart_google— hand-written Tier 1 GCP factory wrappers (Pub/Sub, Cloud Tasks, Secret Manager, Cloud Scheduler, IAM members, service accounts, project service enablement) plus generated schema carriers.
For project-level documentation, see the terradart repo README.
Installation #
terradart v0.0.x is a pre-alpha (SemVer pre-release). By default, dart pub get skips pre-release versions. Opt in explicitly in your pubspec.yaml:
dependencies:
terradart: ^0.0.1-dev