Configurable schema followups
Opened this issue · 2 comments
msbarry commented
Master ticket to track followup tasks for #160 and #323:
expose planetiler functionality:
- #349
- #350
- #351
- #348
- Allow custom inputs (match_key/match_value/or an expression) as input to a match expression
- Ensure attribute min size working as intended
- #347
yaml config flexibility/ease of use:
- #352
- #353
- Expose all parsing functions to CEL/
type
coercions (wayzorder, round_int, long, double, bool, bool_int, directions, meters) - Let configs use CEL expressions (almost) everywhere
- Let configs reference other files so we can break up schema/test logic
- Handle
--only-layers
and--include-layers
arguments and limit the sources we process to only ones needed by those layers - Let attributes reference the value of other attributes or temporary vars to avoid repeating logic
- Let features perform more complex manipulation on input feature geometries
- Clean-up include_when/exclude_when (use require/reject filters like imposm3 or maplibre layer filter?
- Keep track of parsing context for better error messages
- Regex matching for structured boolean expressions
- More forgiving CEL expressions (automatic coercion, null chaining, ...)
- Pretty-print symmetric diff from validation failures
- Try to avoid collisions more with automatic download file names
- #233
- #179
code cleanup
- Verify configurable schemas work from CI
- Format YAML in addition to java files with prettier
- Run json schema validation in java
- Rename
Expression
toBooleanExpression
andMultiExpression
toMatchExpression
- Move
TagValueProducer
data types to anenum
wipfli commented
It is nice to have type hints when writing config. Maybe we could use something like https://github.com/aws/jsii to generate the yamls from typed languages like TypeScript?
msbarry commented
It is nice to have type hints when writing config. Maybe we could use something like https://github.com/aws/jsii to generate the yamls from typed languages like TypeScript?
I added json-schema definitions in #323 - you can use them in vscode by installing the YAML plugin then starting off a yaml file with:
# yaml-language-server: $schema=https://raw.githubusercontent.com/onthegomap/planetiler/main/planetiler-custommap/planetiler.schema.json