More info on the use of 'params' in resource_type declaration
kdvolder opened this issue · comments
I am looking at this: https://concourse-ci.org/resource-types.html#resource-type-params
It says there that this is just an 'arbitrary' object. So this suggest that the concourse editor (https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-concourse) which I am maintaining should not attempt the validate the contents of the 'params'?
However, I suspect that these params actually are a lot less arbitrary than the doc suggests. Are the parameters in fact used in the same way as would be the parameters in a get
step? If so then I guess it makes sense for our editor to validate them in the same way? (i.e. for resource type like 'registry_image' we know what to expect there and so we can actually validate it.
Anyhow. The docs may not need to actually be modified (consider doing that at your own discretion), but I would like to be sure I am understanding things correctly before adding validation logic to our editor. So I would appreciate at least an answer here.
Related issue: spring-projects/sts4#382
@kdvolder That's pretty cool that your editor is going that far to validate!
tl;dr - I think if your editor knows about the params
that a resource type will accept, then you can look up the rule for the type:
field on a resource type and validate the given params against that.
My understanding of params:
on a resource type is pretty much what you said. Every resource type has a base type that it's constructed from, and the params:
that you pass to the resource_types:
config are the ones that get passed to the underlying type when concourse pulls it (concourse will check for versions of the custom resource type the same way it checks for concrete resources, and pull when it needs to construct a resource-related container for the custom resource). In the vast majority of cases, the base type is registry-image
or docker-image
, and so those params will be handled the same way those resource types normally handle params on a get.
Given how brief the current doc is, I could imagine expanding it a bit to make the connection with the params
that get passed to a get
. It strikes me as an important insight.
Okay thanks for confirming my guess about the 'params' being handled just like the params on a get step.
if your editor knows about the params that a resource type will accept ...
It does but only for a supported set of 'built-in' resource types. But since registry_image
is one of those supported resources, I think it makes sense for our editor to validate the params here.
Totally agree, and let's leave this issue open to help fill that gap for future doc readers