concourse / docs

concourse documentation and website

Home Page:https://concourse-ci.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

@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