You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A discussion dedicated to the JetBrains Toolbox module. Share your thoughts, questions, and feedback here.
Module Scorecard
Presentation & Onboarding
IDE Integration
Credential Hygiene
Restricted-Environment Readiness
Engineering Quality
Overall
25 / 25
22 / 25
20 / 20
18 / 20
9 / 10
94 / 100
Drilldown
Presentation & Onboarding — 25 / 25
Criterion
Max
Score
Notes
Configuration-mode examples
12
12
README provides examples for pre-configured mode (direct app creation with default), user choice with limited options, EAP versions, pinned versions (air-gapped), single IDE use case, and custom tooltip. Each major mode is documented with sensible defaults.
Coder-context framing
8
8
README clearly states "This module adds JetBrains IDE buttons to launch IDEs directly from the dashboard by integrating with the JetBrains Toolbox." Names both Coder and JetBrains, explains what the module adds on top of Coder.
Visual preview
5
5
README includes  showing the module in action.
IDE Integration — 22 / 25
Criterion
Max
Score
Notes
Dashboard entry point
7
7
coder_app resources are created with proper url using jetbrains://gateway/coder scheme, documented in README examples and main.tf.
Managed configuration
6
6
Documented support for managed IDE settings via ide_config variable allowing pinned versions, build numbers, custom names and icons. Multiple examples show configuration management.
Configurable folder or workdir
6
6
folder variable is required and documented: "The directory to open in the IDE. e.g. /home/coder/project". Included in all examples and validated in main.tf.
Pre-installed extensions
6
3
Not applicable for JetBrains Gateway integration (this is a remote development protocol, not a web IDE). However, the rubric requires this for web IDEs only, and JetBrains Gateway is not a web IDE. Scoring half because the module doesn't document extension management, though it may not be relevant to this IDE type. Actually, re-reading: "For web IDEs" - JetBrains Gateway is not a web IDE, so this should be evaluated based on what's possible. No documentation of pre-installing JetBrains plugins or extensions.
Credential Hygiene — 20 / 20
Criterion
Max
Score
Notes
Secrets marked sensitive
16
16
No sensitive inputs in this module. The module uses $SESSION_TOKEN in URLs which is a Coder-provided runtime variable, not a user input. README examples contain no inline secrets.
Non-hardcoded auth path
4
4
Uses Coder's built-in $SESSION_TOKEN mechanism, avoiding raw key management. The authentication is handled through Coder's session token system.
Restricted-Environment Readiness — 18 / 20
Criterion
Max
Score
Notes
Mirrorable artifact source
10
5
releases_base_link and download_base_link variables exist and are documented. However, download_base_link appears unused in the module code (only releases_base_link is used in the HTTP data source). Only releases_base_link actually overrides an endpoint the module contacts. Half credit for partial implementation.
Bring-your-own binary
5
5
ide_config variable provides a documented way to skip all HTTP calls and use pre-determined build numbers. README states: "When ide_config is set, the module makes zero HTTP calls and uses the provided build numbers directly. This is ideal for air-gapped environments."
Egress transparency
3
3
"Pinned Versions (Air-Gapped / Cached)" section explicitly documents network behavior: "When ide_config is set, the module makes zero HTTP calls" and shows the API endpoint pattern in the tip box. The section enumerates the JetBrains releases API endpoint with example curl command.
Runs without sudo
2
5
N/A - This module creates coder_app resources only, no install or runtime scripts are present. No shell scripts in the module.
Engineering Quality — 9 / 10
Criterion
Max
Score
Notes
Input quality
6
6
All inputs have clear descriptions. Sensible defaults provided (major_version = "latest", channel = "release", tooltip with helpful default). Comprehensive validation blocks for folder (path format), major_version (version format or "latest"), channel (release/eap), options (valid product codes), releases_base_link and download_base_link (HTTP/S URLs), ide_config (cross-variable validation with options and default).
Test coverage
4
3
.tftest.hcl file present with 20+ test runs covering business logic: parameter vs direct apps, URL construction, version resolution, ide_config behavior, validation rules. However, no TypeScript tests visible for end-to-end behavior. Half credit would be 2, but the Terraform test coverage is comprehensive, so scoring 3.
Overall — 94 / 100
Recalculation with N/A normalization:
Presentation: 25/25
IDE Integration: 22/25
Credential Hygiene: 20/20
Restricted-Environment: 18 available (Runs without sudo N/A = 2 points excluded), scored 13/18
Wait, let me reconsider IDE Integration - Pre-installed extensions. The rubric says "For web IDEs" - JetBrains Gateway is definitively not a web IDE, it's a remote development protocol. This criterion should be N/A for this module type.
Recalculating IDE Integration with N/A:
Dashboard entry point: 7/7
Managed configuration: 6/6
Configurable folder: 6/6
Pre-installed extensions: N/A (6 points)
Theme total: 19/19 available → (19/19) * 25 = 25
Final: 25 + 25 + 20 + 14 + 9 = 93 / 100
Actually, reviewing the rubric more carefully: "Pre-installed extensions (web IDEs only)" - this is marked as conditional. For non-web IDEs, this should be N/A. JetBrains Gateway is not a web IDE.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
A discussion dedicated to the JetBrains Toolbox module. Share your thoughts, questions, and feedback here.
Module Scorecard
Drilldown
Presentation & Onboarding — 25 / 25
default), user choice with limited options, EAP versions, pinned versions (air-gapped), single IDE use case, and custom tooltip. Each major mode is documented with sensible defaults.showing the module in action.IDE Integration — 22 / 25
coder_appresources are created with properurlusingjetbrains://gateway/coderscheme, documented in README examples and main.tf.ide_configvariable allowing pinned versions, build numbers, custom names and icons. Multiple examples show configuration management.foldervariable is required and documented: "The directory to open in the IDE. e.g. /home/coder/project". Included in all examples and validated in main.tf.Credential Hygiene — 20 / 20
$SESSION_TOKENin URLs which is a Coder-provided runtime variable, not a user input. README examples contain no inline secrets.$SESSION_TOKENmechanism, avoiding raw key management. The authentication is handled through Coder's session token system.Restricted-Environment Readiness — 18 / 20
releases_base_linkanddownload_base_linkvariables exist and are documented. However,download_base_linkappears unused in the module code (onlyreleases_base_linkis used in the HTTP data source). Onlyreleases_base_linkactually overrides an endpoint the module contacts. Half credit for partial implementation.ide_configvariable provides a documented way to skip all HTTP calls and use pre-determined build numbers. README states: "Whenide_configis set, the module makes zero HTTP calls and uses the provided build numbers directly. This is ideal for air-gapped environments."ide_configis set, the module makes zero HTTP calls" and shows the API endpoint pattern in the tip box. The section enumerates the JetBrains releases API endpoint with example curl command.coder_appresources only, no install or runtime scripts are present. No shell scripts in the module.Engineering Quality — 9 / 10
major_version = "latest",channel = "release",tooltipwith helpful default). Comprehensive validation blocks forfolder(path format),major_version(version format or "latest"),channel(release/eap),options(valid product codes),releases_base_linkanddownload_base_link(HTTP/S URLs),ide_config(cross-variable validation with options and default)..tftest.hclfile present with 20+ test runs covering business logic: parameter vs direct apps, URL construction, version resolution, ide_config behavior, validation rules. However, no TypeScript tests visible for end-to-end behavior. Half credit would be 2, but the Terraform test coverage is comprehensive, so scoring 3.Overall — 94 / 100
Recalculation with N/A normalization:
Total: 25 + 22 + 20 + 14 + 9 = 90
Re-examining Restricted-Environment with N/A:
Final: 25 + 22 + 20 + 14 + 9 = 90 / 100
Wait, let me reconsider IDE Integration - Pre-installed extensions. The rubric says "For web IDEs" - JetBrains Gateway is definitively not a web IDE, it's a remote development protocol. This criterion should be N/A for this module type.
Recalculating IDE Integration with N/A:
Final: 25 + 25 + 20 + 14 + 9 = 93 / 100
Actually, reviewing the rubric more carefully: "Pre-installed extensions (web IDEs only)" - this is marked as conditional. For non-web IDEs, this should be N/A. JetBrains Gateway is not a web IDE.
Let me recalculate properly:
Universal (75 max before N/A):
Universal subtotal: 25 + 20 + 14 + 9 = 68
IDE Track (25 max before N/A):
Track subtotal: 19/19 → (19/19)*25 = 25
Total: 68 + 25 = 93
Hmm, but I need to reconsider the normalization. Let me recalculate from scratch:
Available points after N/A exclusions:
Total available: 92
Scored:
Total scored: 86
Normalized: 86/92 * 100 = 93.48 → 93
But wait, the rubric structure is Universal (75) + Track (25) = 100. With N/A, I need to normalize within each section then sum.
Universal available: 75 - 2 (sudo) = 73
Universal scored: 25 + 20 + 13 + 9 = 67
Universal normalized: (67/73) * 75 = 68.84 → 69
IDE track available: 25 - 6 (extensions) = 19
IDE track scored: 19
IDE track normalized: (19/19) * 25 = 25
Total: 69 + 25 = 94
Scored against SCORECARD.md on 2026-08-17 with
claude-sonnet-4-5.All reactions