Template terms of usage
- Dominant language
- HCL
- Stars
- 79
- Forks
- 161
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 38
Description
We can add a little module that adds a required terms of service for template usage:
```hcl
data "coder_parameter" "terms_of_use" {
name = "terms-of-use"
display_name = "Terms of use"
description = "Please type \"yes\" to accept the [data privacy agreement](https://coder.com/) before using this template. Otherwise, **the workspace build will fail**."
type = "string"
}
```
Then users can use a precondition in their resource lifecycle:
```hcl
lifecycle {
# The user must accept a
precondition {
condition = regex("(?i)^\\s*yes\\s*$", data.coder_parameter.terms_of_use.value)
error_message = "Build prevented. You must accept the terms of use before creating a workspace from this template."
}
}
```
Once https://github.com/coder/coder/issues/12686 is shipped, we can make it fully contained within the module and prevent workspace creation if it's not accepted.
Contributor guide
Assessment
This issue has not been assessed yet.