1
1
---
2
- display_name : JetBrains IDEs
2
+ display_name : JetBrains Toolbox
3
3
description : Add JetBrains IDE integrations to your Coder workspaces with configurable options.
4
4
icon : ../.icons/jetbrains.svg
5
- maintainer_github : coder
6
- partner_github : jetbrains
7
5
verified : true
8
6
tags : [ide, jetbrains, parameter]
9
7
---
@@ -22,6 +20,9 @@ module "jetbrains" {
22
20
}
23
21
```
24
22
23
+ > [ !NOTE]
24
+ > This module requires Coder version 2.24+ to use the ` multi-select ` form type.
25
+
25
26
> [ !WARNING]
26
27
> JetBrains recommends a minimum of 4 CPU cores and 8GB of RAM.
27
28
> Consult the [ JetBrains documentation] ( https://www.jetbrains.com/help/idea/prerequisites.html#min_requirements ) to confirm other system requirements.
@@ -89,7 +90,7 @@ module "jetbrains" {
89
90
"GO" = {
90
91
name = "GoLand"
91
92
icon = "/custom/icons/goland.svg"
92
- build = "251.25410.140" # Note: build numbers are fetched from API, not used
93
+ build = "251.25410.140"
93
94
}
94
95
"PY" = {
95
96
name = "PyCharm"
@@ -105,7 +106,11 @@ module "jetbrains" {
105
106
}
106
107
```
107
108
108
- ### Offline Mode
109
+ ### Air-Gapped and Offline Environments
110
+
111
+ This module supports air-gapped environments through automatic fallback mechanisms:
112
+
113
+ #### Option 1: Self-hosted JetBrains API Mirror
109
114
110
115
For organizations with internal JetBrains API mirrors:
111
116
@@ -125,6 +130,42 @@ module "jetbrains" {
125
130
}
126
131
```
127
132
133
+ #### Option 2: Fully Air-Gapped (No Internet Access)
134
+
135
+ The module automatically falls back to static build numbers from ` ide_config ` when the JetBrains API is unreachable:
136
+
137
+ ``` tf
138
+ module "jetbrains" {
139
+ count = data.coder_workspace.me.start_count
140
+ source = "registry.coder.com/coder/jetbrains/coder"
141
+ version = "1.0.0"
142
+ agent_id = coder_agent.example.id
143
+ folder = "/home/coder/project"
144
+
145
+ default = ["GO", "IU"]
146
+
147
+ # Update these build numbers as needed for your environment
148
+ ide_config = {
149
+ "GO" = {
150
+ name = "GoLand"
151
+ icon = "/icon/goland.svg"
152
+ build = "251.25410.140" # Static build number used when API is unavailable
153
+ }
154
+ "IU" = {
155
+ name = "IntelliJ IDEA"
156
+ icon = "/icon/intellij.svg"
157
+ build = "251.23774.200" # Static build number used when API is unavailable
158
+ }
159
+ }
160
+ }
161
+ ```
162
+
163
+ ** How it works:**
164
+
165
+ - The module first attempts to fetch the latest build numbers from the JetBrains API
166
+ - If the API is unreachable (network timeout, DNS failure, etc.), it automatically falls back to the build numbers specified in ` ide_config `
167
+ - This ensures the module works in both connected and air-gapped environments without configuration changes
168
+
128
169
### Single IDE for Specific Use Case
129
170
130
171
``` tf
@@ -152,8 +193,9 @@ module "jetbrains_goland" {
152
193
153
194
### Version Resolution
154
195
155
- - Build numbers are always fetched from the JetBrains API for the latest compatible versions
156
- - ` major_version ` and ` channel ` control which API endpoint is queried
196
+ - Build numbers are fetched from the JetBrains API for the latest compatible versions when internet access is available
197
+ - If the API is unreachable (air-gapped environments), the module automatically falls back to build numbers from ` ide_config `
198
+ - ` major_version ` and ` channel ` control which API endpoint is queried (when API access is available)
157
199
158
200
## Supported IDEs
159
201
0 commit comments