{"version":"2.1.248","anchor":"config-values-declared-through-a-typed-schema-with-a-three-s","canonical_anchor":"config-values-declared-through-a-typed-schema-with-a-three-s","heading":"Config values declared through a typed schema, with a three-state boolean","tier":"internal","area":"Configuration","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248\/e\/config-values-declared-through-a-typed-schema-with-a-three-s","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248","markdown":"### Config values declared through a typed schema, with a three-state boolean\n\nConfig values now parse through a typed schema that can tell \"off\" apart from \"never set\".\n\n**What**\n\nSeveral hundred environment and config values are now declared with typed constructors instead of ad-hoc parsing. One of them, a three-state boolean, returns true, false, or nothing at all when the variable is unset, so a setting that is explicitly off can be told apart from one that was never set and should defer to a remote or policy default.\n\n**Details**\n\n- The other constructors cover strings, integers and enumerations; the string coercion turns text into a boolean, and the enumeration trims the value and rejects anything not on its list.\n\n**Evidence**\n\n`triBool: () => f(),`\n\n- Area: Configuration\n- Tier: Under the hood\n- Useful: 3\/5\n- Signal: 3\/5"}