Expand description
Per-env values: template + values separation for Braze resources.
Implements RFC docs/local/feat-per-env-values.md Phase 1: schema +
placeholder resolver. Phase 2 (apply integration), Phase 3 (export),
Phase 4 (diff), Phase 6 (plan-lock) wire this module into the
existing CLI surface.
§Module shape
schema:values/<env>.yamldeserialization and built-in shape validation (lid format, cb_id format, key naming).placeholder: extract and resolve__BRAZESYNC.<type>.<key>__tokens in a body string. Resolution takes a flat(type, key) -> valuelookup so it stays resource-shape-agnostic.
Re-exports§
pub use correlation::extract_cb_id_values;pub use correlation::extract_html_lid_values;pub use correlation::extract_plaintext_lid_values;pub use correlation::normalize_url;pub use correlation::slug_for_cb_id;pub use correlation::slug_for_lid;pub use correlation::CbIdCorrelation;pub use correlation::LidCorrelation;pub use exporter::refresh_content_block_values;pub use exporter::refresh_email_template_values;pub use exporter::ExportUpdates;pub use integration::compute_values_input_hashes;pub use integration::format_failures;pub use integration::load_values_for_env;pub use integration::preflight_values;pub use integration::resolve_content_block_in_place;pub use integration::resolve_email_template_in_place;pub use integration::values_file_path;pub use integration::PreflightArgs;pub use integration::ResolutionFailure;pub use placeholder::extract_placeholders;pub use placeholder::find_suspicious_placeholders;pub use placeholder::resolve_placeholders;pub use placeholder::LookupKey;pub use placeholder::Placeholder;pub use placeholder::PlaceholderType;pub use placeholder::ResolutionError;pub use schema::default_values_path;pub use schema::CbIdEntry;pub use schema::ContentBlockValues;pub use schema::CustomEntry;pub use schema::EmailTemplateValues;pub use schema::FieldValues;pub use schema::Globals;pub use schema::LidEntry;pub use schema::ValuesFile;pub use schema::SUPPORTED_VERSION;
Modules§
- correlation
- Remote-body correlation primitives for
export(RFC §2.5). - exporter
- Per-export-run values updates (RFC §2.5 “既存リソース” path).
- integration
- Wiring layer between
crate::values(Phase 1) and the diff / apply pipeline. - placeholder
- Placeholder extraction and resolution for
__BRAZESYNC.<type>.<key>__. - schema
- YAML schema types for
values/<env>.yamlper RFC §2.2. - templatize
- Migration pass: raw-lid / raw-cb_id bodies → templated bodies + values.