Repository navigation
feat(config)!: drop is_shared from IaC; ToBlockDefinitions replaces ToBlocks/ToBlock - #48
Merged
Merged
Conversation
…om false - yaml + config IsShared become *bool; nil means the file did not declare it - ToBlock still collapses nil to false for callers that only need the flat block - add EnvConfiguration.ToBlockDefinitions, which carries the tristate alongside each flattened block; ToBlocks is now a view over it
…efinitions One entry point for flattening config.yml blocks keeps every consumer on the same view; callers that only need the API shape read Block off each definition.
…inition ToBlockDefinitions is now the only public way to flatten config.yml blocks; the tristate is_shared is attached where the flat block is built.
Furion removed isShared from block sync in March 2025 (furion #135), so the yaml key has been parsed-and-ignored since. It was never documented. Removing it from the yaml and config layers makes that explicit; the lenient decoder still accepts a stray is_shared key without error. BlockDefinition stays as the ToBlockDefinitions element type so declared-only information can be added later without another API change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
nullfire's IaC block sync overwrote every block column from the parsed config.yml, including
is_shared. Because the yaml key parsed to a plainbool, a block shared in the UI was un-shared on the next sync unless the yml also saidis_shared: true.Furion had explicitly removed
isSharedfrom block sync in March 2025 (furion #135), so from then until the NUL-24 port the yaml key was parsed and ignored. It was never documented. Sharing is a UI decision (POST shared_blocks), not an IaC one.What
is_sharedis removed fromyaml.BlockConfigurationandconfig.BlockConfiguration. The decoder is lenient, so a strayis_shared:in an existing config.yml still parses; it just has no effect, as it had none in the furion era.EnvConfiguration.ToBlockDefinitionsis the single public way to flatten config.yml blocks. EachBlockDefinitionwraps the flattypes.Blockwith only IaC-governed fields set; it is a struct so declared-only information can be added later without another API change.EnvConfiguration.ToBlocksand the exported per-typeToBlockmethods are removed; per-type flattening is an unexportedtoBlockDefinition. Known callers (nullfire sync, CLIiac test) move in the PRs below.Consumers