{#snippet LabelSnippet()} {/snippet} {#if (!setting.cloudonly || isCloudHosted()) && showSetting(setting.key, $values) && !(setting.hiddenIfNull && $values[setting.key] == null) && !(setting.hiddenIfEmpty && !$values[setting.key]) && !(setting.hiddenInEe && $enterpriseLicense)} {#if setting.fieldType == 'select'}
{@render LabelSnippet()} {#snippet children({ item: toggleButton })} {#each setting.select_items ?? [] as item} {/each} {/snippet}
{:else if setting.fieldType == 'select_python'}
{@render LabelSnippet()} {#snippet children({ item: toggleButtonn })} {#each setting.select_items ?? [] as item} {/each} {#snippet trigger()} {#if setting.select_items?.some((e) => e.label == $values[setting.key] || e.value == $values[setting.key])} {:else} {/if} {/snippet} {#snippet content()} {#if isPyFetching}
{:else} {#snippet children({ item: toggleButtonn })} {#each pythonAvailableVersions as item} {/each} {/snippet} {/if} {/snippet}
{/snippet}
{:else} {#snippet settingContent()}
{#if setting.fieldType != 'smtp_connect'}
{setting.label} {#if setting.ee_only != undefined && !$enterpriseLicense} {#if setting.ee_only != ''} {setting.ee_only} {:else} {/if} {/if}
{/if} {#if setting.actionButton} {/if}
{#if setting.description} {@html setting.description} {/if}
{#if setting.tooltip} {setting.tooltip} {/if} {#if $values} {@const hasError = setting.isValid && !setting.isValid($values[setting.key])}
{#if loading} {:else if setting.fieldType == 'text'} {#if setting.advancedToggle}
{ if (setting.advancedToggle) { $values = setting.advancedToggle.onChange($values) } }} />
{/if} {:else if setting.fieldType == 'textarea'} {#if setting.key == 'saml_metadata'}
{/if} {:else if setting.fieldType == 'codearea'} {:else if setting.fieldType == 'license_key'} {@const { valid, expiration } = parseLicenseKey($values[setting.key] ?? '')}
{ licenseKeyChanged = true }} onBlur={() => { if ($values[setting.key] && typeof $values[setting.key] === 'string') { $values[setting.key] = $values[setting.key].trim() } }} bind:password={$values[setting.key]} />
{#if $values[setting.key]?.length > 0} {#if valid}
License key expires on {expiration ?? ''}
{:else if expiration}
{#if $values[setting.key]?.endsWith('__dev')} Dev license key expired on {expiration}.
If even after successful renewal, your dev license key is still expired, it means that your production key has expired due to unpaid invoices or excessive use of your production instance. {:else} License key expired on {expiration}. {/if}
{:else}
Invalid license key format
{/if} {/if} {#if latestKeyRenewalAttempt} {@const attemptedAt = new Date(latestKeyRenewalAttempt.attempted_at).toLocaleString()} {@const isTrial = latestKeyRenewalAttempt.result.startsWith('error: trial:')}
{#if latestKeyRenewalAttempt.result === 'success'} {:else} {/if} {#if latestKeyRenewalAttempt.result === 'success' && $values[setting.key]?.endsWith('__dev')} Latest dev key renewal succeeded on {attemptedAt}. The dev key expiry was updated to align with your current production key's expiration date. {:else} {latestKeyRenewalAttempt.result === 'success' ? 'Latest key renewal succeeded' : isTrial ? 'Latest key renewal ignored because in trial' : 'Latest key renewal failed'} on {attemptedAt} {/if}
{#snippet text()}
{#if latestKeyRenewalAttempt?.result === 'success'} Latest key renewal succeeded on {attemptedAt} {:else if isTrial} License key cannot be renewed during trial ({attemptedAt}) {:else} Latest key renewal failed on {attemptedAt}: {latestKeyRenewalAttempt?.result.replace( 'error: ', '' )} {/if}
As long as invoices are paid and usage corresponds to the subscription, the key is renewed daily with a validity of 35 days (grace period).
{/snippet}
{/if} {#if licenseKeyChanged && !$enterpriseLicense} {#if version.startsWith('CE')}
License key is set but image used is the Community Edition {version}. Switch image to EE.
{/if} {/if} {#if valid || expiration}
{/if}
{:else if setting.fieldType == 'email'} {:else if setting.key == 'critical_alert_mute_ui'}
{:else if setting.fieldType == 'critical_error_channels'} {:else if setting.fieldType == 'indexer_rates'}
{#if $values[setting.key]}
{ if (e.target instanceof HTMLInputElement) { if (e.target.valueAsNumber) { $values[setting.key].writer_memory_budget = e.target.valueAsNumber * (1024 * 1024) } } } }} value={$values[setting.key].writer_memory_budget / (1024 * 1024)} />
{ clearJobsIndexModalOpen = false }} on:confirmed={async () => { const r = await IndexSearchService.clearIndex({ idxName: 'JobIndex' }) sendUserToast(r) clearJobsIndexModalOpen = false }} > Are you sure you want to clear the jobs index? The service will start reindexing from scratch. Full text search might be down during this time. { clearServiceLogsIndexModalOpen = false }} on:confirmed={async () => { const r = await IndexSearchService.clearIndex({ idxName: 'ServiceLogIndex' }) sendUserToast(r) clearServiceLogsIndexModalOpen = false }} > Are you sure you want to clear the service logs index? The service will start reindexing from scratch. Full text search might be down during this time.

{ if (e.target instanceof HTMLInputElement) { if (e.target.valueAsNumber) { $values[setting.key].max_indexed_job_log_size = e.target.valueAsNumber * 1024 } } } }} value={$values[setting.key].max_indexed_job_log_size / 1024} />

{/if}
{:else if setting.fieldType == 'otel'}
{#if $values[setting.key]}
gRPC
{/if}
{:else if setting.fieldType == 'otel_tracing_proxy'} {@const tracingProxyVal = $values[setting.key] ?? { enabled: false, enabled_languages: [...OTEL_TRACING_PROXY_LANGUAGES] }}
{ $values[setting.key] = { ...tracingProxyVal, enabled: e.detail } }} options={{ right: 'Enabled' }} /> {#if tracingProxyVal.enabled}
{#each OTEL_TRACING_PROXY_LANGUAGES as lang (lang)} {@const isEnabled = (tracingProxyVal.enabled_languages ?? []).includes(lang)} {/each}
{/if}
{:else if setting.fieldType == 'object_store_config'}
{:else if setting.fieldType == 'critical_alerts_on_db_oversize'} {#if $values[setting.key]}
{#if $values[setting.key].enabled} GB {/if}
{/if} {:else if setting.fieldType == 'number'} {:else if setting.fieldType == 'password'} {:else if setting.fieldType == 'boolean'} {:else if setting.fieldType == 'seconds'}
{:else if setting.fieldType == 'select'} TODO {:else if setting.fieldType == 'smtp_connect'} {:else if setting.fieldType == 'secret_backend'} {/if} {#if hasError} {setting.error ?? ''} {/if} {:else} {/if} {/snippet}
{@render settingContent()}
{/if} {/if}