Meanwhile, the documentation for command steps (and many other step types, for that matter) mention the attribute key, and that identifier is a valid alias for key, while not mentioning id.
My understanding of the current state
I believe the doc is correct, as it matches the behavior we see in practice.
My guess is that maybe (?) key was named id/identifier a long time ago, but Buildkite changed it to key since, and kept the identifier as an alias for backwards compatibility… while making id private because it would probably now be a generated UUID (the one corresponding to the BUILDKITE_STEP_ID env var value?) instead of a user-provided one. So they updated the docs accordingly… but forgot to fully update the schema in line, only adding a definition for the key attribute but not updating the schema definition to remove id nor to make identifier backwards-compat alias now point to #/definitions/commonOptions/key instead of #/definitions/commonOptions/identifier?
The inconsistency
#/definitions/commonOptions/identifier
(whose description is"A string identifier"
), that is then used as reference for both attributesid
andidentifier
in steps#/definitions/commonOptions/key
(whose description is"A unique identifier for a step, must not resemble a UUID"
), that is used as reference for thekey
attribute in stepskey
, and thatidentifier
is a valid alias forkey
, while not mentioningid
.My understanding of the current state
I believe the doc is correct, as it matches the behavior we see in practice.
My guess is that maybe (?)
key
was namedid
/identifier
a long time ago, but Buildkite changed it tokey
since, and kept theidentifier
as an alias for backwards compatibility… while makingid
private because it would probably now be a generated UUID (the one corresponding to theBUILDKITE_STEP_ID
env var value?) instead of a user-provided one. So they updated the docs accordingly… but forgot to fully update the schema in line, only adding a definition for thekey
attribute but not updating the schema definition to removeid
nor to makeidentifier
backwards-compat alias now point to#/definitions/commonOptions/key
instead of#/definitions/commonOptions/identifier
?