diff --git a/packages/otelbin/src/components/validation/binding.ts b/packages/otelbin/src/components/validation/binding.ts index 78ca3e9f..0f2ddc3c 100644 --- a/packages/otelbin/src/components/validation/binding.ts +++ b/packages/otelbin/src/components/validation/binding.ts @@ -12,3 +12,9 @@ export const distroVersionBinding = { name: "distroVersion", fallback: null as string | null, } as const; + +export const envVarBinding = { + prefix: "", + name: "env", + fallback: Object.freeze({}) as Readonly<Record<string, string>>, +} as const; diff --git a/packages/otelbin/src/components/validation/useServerSideValidation.ts b/packages/otelbin/src/components/validation/useServerSideValidation.ts index 6c6c3b6d..4dbf98b8 100644 --- a/packages/otelbin/src/components/validation/useServerSideValidation.ts +++ b/packages/otelbin/src/components/validation/useServerSideValidation.ts @@ -5,7 +5,7 @@ import { debounce } from "lodash"; import { useUrlState } from "~/lib/urlState/client/useUrlState"; -import { distroBinding, distroVersionBinding } from "~/components/validation/binding"; +import { distroBinding, distroVersionBinding, envVarBinding } from "~/components/validation/binding"; import { editorBinding } from "~/components/monaco-editor/editorBinding"; import { useEffect, useMemo, useState } from "react"; import { type ServerSideValidationResult } from "~/types"; @@ -30,7 +30,12 @@ const initialValidationState: ValidationState = { }; export function useServerSideValidation(): ValidationState { - const [{ config, distro, distroVersion }] = useUrlState([distroBinding, distroVersionBinding, editorBinding]); + const [{ config, distro, distroVersion, env }] = useUrlState([ + distroBinding, + distroVersionBinding, + editorBinding, + envVarBinding, + ]); const [state, setState] = useState<ValidationState>(initialValidationState); const validate = useMemo( @@ -53,7 +58,7 @@ export function useServerSideValidation(): ValidationState { }, body: JSON.stringify({ config, - env: {}, + env, }), } ); @@ -93,7 +98,7 @@ export function useServerSideValidation(): ValidationState { trailing: true, } ), - [distro, distroVersion] + [distro, distroVersion, env] ); useEffect(() => {