terradart_core 0.4.0-dev
terradart_core: ^0.4.0-dev copied to clipboard
terradart core runtime — Stack, Resource, Provider, Variable, Data, TfArg, TfRef, and LifecycleOptions for Dart-first Terraform synthesis.
Changelog #
0.4.0-dev - 2026-05-17 #
No user-facing API changes. Workspace consistency bump alongside terradart_codegen 0.4.0-dev (Plan 5.D: codegen correctness improvements — MM YAML deprecation parsing fix, encode skeleton fix + Gate 6, paramOrder measurement tool, min_items assert hints).
0.3.0-dev - 2026-05-16 #
No user-facing API changes. Workspace consistency bump alongside terradart_google 0.3.0-dev (Wave 4: 21 new GA resources across 6 Firebase / Cloud Functions / Firestore services).
0.2.1-dev - 2026-05-16 #
No API change since 0.2.0-dev. Workspace consistency bump after the 0.2.0-dev publish run partially failed; 0.2.1-dev republishes through a re-ordered publish pipeline.
0.2.0-dev - 2026-05-16 #
Added #
TfArg.duration(Duration)factory — converts a DartDurationto the"{seconds}s"form Terraform expects for duration-string fields (rotation_period,message_retention_duration, the's'-suffixed forms ofack_deadline_seconds, etc.). Sub-second precision and negative durations are rejected withArgumentError.
Fixed #
JsonEncoder.encodeArgMapWithSensitivenow masks sensitive paths through nested-block (List<Map>) structures. Previously, paths likecustomer_encryption.encryption_keywere left as plaintext intf-out/main.tf.jsonbecause the masker only walked top-level keys. Ref interpolations (${...}) continue to pass through unchanged so Terraform wiring is preserved.
0.1.0-dev - 2026-05-14 #
Added #
-
TfArg<MyEnum>.literal(MyEnum.foo)now encodes typed Dart enums to Terraform strings via a new.terraformValueconvention. Declare your enum as:enum MyEnum { foo('FOO'), bar('BAR'); const MyEnum(this.terraformValue); final String terraformValue; }and
TfArgLiteral.toTfJson()will serializeMyEnum.fooas the string"FOO". ThrowsArgumentError(not silent wrong-output) if you pass an enum value whose type does not implement the convention. -
String / int / num / bool literals continue to pass through
toTfJson()unchanged.
Notes #
- No breaking changes to
Stack/Resource/Data/StackSynth/Provider/Variable<T>/LifecycleOptions/AppExport/TfArg/TfRef.
0.0.4-dev - 2026-05-11 #
- No user-facing API changes. Version bumped for workspace consistency with Phase 4.1 (
terradart wrapsubcommand + DataSource emitters + 13terradart_googlewrappers migrated to generator output).
0.0.3-dev - 2026-05-09 #
- Fix: rename terradart_core main library file to match package name.
0.0.2-dev - 2026-05-09 #
- CI automated publishing via OIDC trusted publisher.
- Fix: prepare_publish.sh now syncs version from tag name.
0.0.1-dev - 2026-05-09 #
Added #
- Initial pre-alpha release of
terradartcore runtime. Stackabstract base — registerResource<S>/Data<S>instances viaadd(...)/addData(...).StackSynth.synth(stack)returningSynthResult(Terraform JSON + optional Dart constants).Resource<S>/Data<S>typed nodes;Provider,Variable<T>,LifecycleOptions,AppExport.TfArg.literal(...)/TfArg.ref(...)argument helpers.
Notes #
- Pre-alpha — surface and emitted Dart symbols may change between 0.0.x releases.