## Summary
- Updated `required_version` constraint from `>= 1.0` to `>= 1.9` in
jetbrains module
- Added inline comment explaining the cross-variable validation
requirement
- Bumped module version from `1.1.0` to `1.1.1` (patch version)
## Issue
The jetbrains module uses cross-variable validation at line 169-171
where `var.options` is referenced within the `var.ide_config` validation
block:
```tf
validation {
condition = alltrue([
for code in var.options : contains(keys(var.ide_config), code)
])
error_message = "The ide_config must be a superset of var.options."
}
```
This pattern requires Terraform 1.9+ and fails on earlier versions with:
```
Error: Invalid reference in variable validation
The condition for variable "ide_config" can only refer to the variable itself, using var.ide_config.
```
## References
- Terrafomr release blog that talks abut this feature:
https://www.hashicorp.com/en/blog/terraform-1-9-enhances-input-variable-validations
- Terraform PR that added this feature:
https://github.com/hashicorp/terraform/pull/34955
- HashiCorp Support Article:
https://support.hashicorp.com/hc/en-us/articles/43291233547027
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: DevCats <christofer@coder.com>
| display_name | description | icon | verified | tags | |||
|---|---|---|---|---|---|---|---|
| JetBrains Toolbox | Add JetBrains IDE integrations to your Coder workspaces with configurable options. | ../../../../.icons/jetbrains.svg | true |
|
JetBrains IDEs
This module adds JetBrains IDE buttons to launch IDEs directly from the dashboard by integrating with the JetBrains Toolbox.
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
# tooltip = "You need to [Install Coder Desktop](https://coder.com/docs/user-guides/desktop#install-coder-desktop) to use this button." # Optional
}
Important
This module requires Coder version 2.24+ and JetBrains Toolbox version 2.7 or higher.
Warning
JetBrains recommends a minimum of 4 CPU cores and 8GB of RAM. Consult the JetBrains documentation to confirm other system requirements.
Examples
Pre-configured Mode (Direct App Creation)
When default contains IDE codes, those IDEs are created directly without user selection:
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["PY", "IU"] # Pre-configure GoLand and IntelliJ IDEA
}
User Choice with Limited Options
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
# Show parameter with limited options
options = ["IU", "PY"] # Only these IDEs are available for selection
}
Early Access Preview (EAP) Versions
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["IU", "PY"]
channel = "eap" # Use Early Access Preview versions
major_version = "2025.2" # Specific major version
}
Custom IDE Configuration
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/workspace/project"
# Custom IDE metadata (display names and icons)
ide_config = {
"IU" = {
name = "IntelliJ IDEA"
icon = "/custom/icons/intellij.svg"
build = "251.26927.53"
}
"PY" = {
name = "PyCharm"
icon = "/custom/icons/pycharm.svg"
build = "251.23774.211"
}
}
}
Single IDE for Specific Use Case
module "jetbrains_pycharm" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/workspace/project"
default = ["PY"] # Only PyCharm
# Specific version for consistency
major_version = "2025.1"
channel = "release"
}
Custom Tooltip
Add helpful tooltip text that appears when users hover over the IDE app buttons:
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.1.1"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["IU", "PY"]
tooltip = "You need to [Install Coder Desktop](https://coder.com/docs/user-guides/desktop#install-coder-desktop) to use this button."
}
Behavior
Parameter vs Direct Apps
default = [](empty): Creates acoder_parameterallowing users to select IDEs fromoptionsdefaultwith values: Skips parameter and directly createscoder_appresources for the specified IDEs
Version Resolution
- Build numbers are fetched from the JetBrains API for the latest compatible versions when internet access is available
- If the API is unreachable (air-gapped environments), the module automatically falls back to build numbers from
ide_config major_versionandchannelcontrol which API endpoint is queried (when API access is available)
Tooltip
tooltip: Optional markdown text displayed when hovering over IDE app buttons- If not specified, no tooltip is shown
- Supports markdown formatting for rich text (bold, italic, links, etc.)
- All IDE apps created by this module will show the same tooltip text
Supported IDEs
All JetBrains IDEs with remote development capabilities:
