null is a valid both as a YAML value, and also as a key in a YAML mapping, but we don not support it.
https://yaml.org/type/null.html
I was hoping to avoid null entirely, but it looks like maybe we can't since lots of YAML in the wild contains null mappings. E.g. this example from the Score documentation
apiVersion: score.dev/v1b1
metadata:
name: backend
containers:
container-id:
image: busybox
command: ["/bin/sh"]
args: ["-c", "while true; do echo Hello $${FRIEND}!; sleep 5; done"]
variables:
CONNECTION_STRING: postgresql://${resources.db.username}:${resources.db.password}@${resources.db.host}:${resources.db.port}/${resources.db.name}
resources:
db:
type: postgres
properties:
host:
port:
default: 5432
name:
username:
secret: true
password:
secret: true
In it, resources.db.host, and resources.db.name are both null literals. These properties are equivalent to saying:
or
As much as I would like to not have null in PlatformScript at all, if we want all YAML values to be valid platform script, as well as to deserialize and serialize back all wild programs, we will need to support it.
I would love for someone to prove me wrong.
nullis a valid both as a YAML value, and also as a key in a YAML mapping, but we don not support it.https://yaml.org/type/null.html
I was hoping to avoid null entirely, but it looks like maybe we can't since lots of YAML in the wild contains null mappings. E.g. this example from the Score documentation
In it,
resources.db.host, andresources.db.nameare bothnullliterals. These properties are equivalent to saying:or
As much as I would like to not have
nullin PlatformScript at all, if we want all YAML values to be valid platform script, as well as to deserialize and serialize back all wild programs, we will need to support it.I would love for someone to prove me wrong.