11package com.coder.toolbox.views
22
33import com.coder.toolbox.CoderToolboxContext
4+ import com.coder.toolbox.settings.HttpLoggingVerbosity.BASIC
5+ import com.coder.toolbox.settings.HttpLoggingVerbosity.BODY
6+ import com.coder.toolbox.settings.HttpLoggingVerbosity.HEADERS
7+ import com.coder.toolbox.settings.HttpLoggingVerbosity.NONE
48import com.jetbrains.toolbox.api.ui.actions.RunnableActionDescription
59import com.jetbrains.toolbox.api.ui.components.CheckboxField
10+ import com.jetbrains.toolbox.api.ui.components.ComboBoxField
11+ import com.jetbrains.toolbox.api.ui.components.ComboBoxField.LabelledValue
612import com.jetbrains.toolbox.api.ui.components.TextField
713import com.jetbrains.toolbox.api.ui.components.TextType
814import com.jetbrains.toolbox.api.ui.components.UiField
@@ -44,6 +50,18 @@ class CoderSettingsPage(private val context: CoderToolboxContext, triggerSshConf
4450 settings.fallbackOnCoderForSignatures.isAllowed(),
4551 context.i18n.ptrl(" Verify binary signature using releases.coder.com when CLI signatures are not available from the deployment" )
4652 )
53+
54+ private val httpLoggingField = ComboBoxField (
55+ ComboBoxField .Label (context.i18n.ptrl(" HTTP logging level:" )),
56+ settings.httpClientLogLevel,
57+ listOf (
58+ LabelledValue (context.i18n.ptrl(" None" ), NONE , listOf (" " to " No logs" )),
59+ LabelledValue (context.i18n.ptrl(" Basic" ), BASIC , listOf (" " to " Method, URL and status" )),
60+ LabelledValue (context.i18n.ptrl(" Header" ), HEADERS , listOf (" " to " Basic + sanitized headers" )),
61+ LabelledValue (context.i18n.ptrl(" Body" ), BODY , listOf (" " to " Headers + body content" )),
62+ )
63+ )
64+
4765 private val enableBinaryDirectoryFallbackField =
4866 CheckboxField (
4967 settings.enableBinaryDirectoryFallback,
@@ -80,6 +98,7 @@ class CoderSettingsPage(private val context: CoderToolboxContext, triggerSshConf
8098 enableBinaryDirectoryFallbackField,
8199 disableSignatureVerificationField,
82100 signatureFallbackStrategyField,
101+ httpLoggingField,
83102 dataDirectoryField,
84103 headerCommandField,
85104 tlsCertPathField,
@@ -103,6 +122,7 @@ class CoderSettingsPage(private val context: CoderToolboxContext, triggerSshConf
103122 context.settingsStore.updateEnableDownloads(enableDownloadsField.checkedState.value)
104123 context.settingsStore.updateDisableSignatureVerification(disableSignatureVerificationField.checkedState.value)
105124 context.settingsStore.updateSignatureFallbackStrategy(signatureFallbackStrategyField.checkedState.value)
125+ context.settingsStore.updateHttpClientLogLevel(httpLoggingField.selectedValueState.value)
106126 context.settingsStore.updateBinaryDirectoryFallback(enableBinaryDirectoryFallbackField.checkedState.value)
107127 context.settingsStore.updateHeaderCommand(headerCommandField.contentState.value)
108128 context.settingsStore.updateCertPath(tlsCertPathField.contentState.value)
0 commit comments