You know what?.. given the “immutable” horse has bolted, what might be really cool is another descriptor type, maybe called “descriptor-ref” which would allow you to point to another descriptor defined on the SG database in a field, on a text entity.
you have a new custom text field on the pipeline-config entity called “my-app-release”. In this field, you put the descriptor pointing to the latest release of your tool (just as you currently do in the env yamls)
The descriptor in your pipeline config for the app location might take the form :
entity_type: PipelineConfiguration, # entity type
field: my-app-release, # attachment field where payload can be found
# entity_id : 123 # … in this example, it would default to the pipeline config entity this setting lives in; eg a parent - child relationship. If you wanted to set the studio config in another entity then you’d supply the specific id here. Perhaps an odd use-case.
and then the text you enter in the
my-app-release field on your
pipeline configuration entity would be a normal descriptor pointing to the specific release :- eg
The result being you could have a shared pipeline config used by multiple projects, but you would still be able to version-up/set-version on a per-pipeline config (entity) or per-project basis, if you so wanted. It would solve the OPs issue as their config would point to a single entity field, that could then be update to point to any specific uploaded file as required.
Theres an obvious health warning about storing configuration data in the database… but given we pretty much do this anyway with descriptor based pipeline configs, it feels like this old rule of thumb is more of a moot point… is it not? Configuring app versions would be much easier via the spreadsheet gui of the website than having to fork configs, edit text files, etc. Pipeline Configuration entity Descriptors are such an awesome way to configure the location of actual pipeline configs, it’s a shame the same approach isn’t yet available for confiuguring the apps the config uses.