-
Notifications
You must be signed in to change notification settings - Fork 164
Add two-step HTTPS form with headers support #8780
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Enable HTTP headers configuration on the HTTPS connector through a two-step form: - Step 1 (connector): Headers textarea to specify custom HTTP headers - Step 2 (source): URI and model name for the data source Updates: - Extended isMultiStepConnector() to detect schemas with both connector and source steps, enabling multi-step flow for HTTPS - Added formatHeadersAsYamlMap() to parse textarea headers into YAML map format (Header: value per line) - Updated HTTPS schema with headers field on connector step, URI and model name on source step - Fixed AddDataModal to recognize multi-step HTTPS connector and use connector form type - Made headers a required field for validation
royendo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see above
- Replace contenteditable div with native <textarea> for proper copy/paste support and input event handling - Update YAML preview to use 4-space indentation, quoted header keys, and inline description comment - Widen event handler types from HTMLDivElement to HTMLElement Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When users paste headers with existing quotes like "Authorization": "Bearer token", they were getting double-quoted in the preview. Now we strip leading/trailing quotes before wrapping them in the YAML output.
Replace the textarea-based HTTP headers input with a dynamic key-value pair component. Users can now add/remove headers individually instead of typing raw "Header-Name: value" text.
- New KeyValueInput.svelte component with add/remove rows and duplicate detection
- Add "key-value" to x-display type union for form schema system
- Wire KeyValueInput through SchemaField.svelte renderer
- Update formatHeadersAsYamlMap to accept array of {key, value} objects
- Initialize key-value form fields to empty arrays
- Add wildcard support to schema button labels
- Change HTTPS connector button from "Test and Connect" to "Continue" (Ping is a no-op)
- Headers field is now optional in HTTPS schema
|
Latest demo:
CleanShot.2026-02-06.at.10.40.04.mp4 |
|
love the new layout, Tokens generally should be hidden in the .env and not in raw text, anyway to make the string after Bearer become '{{ .env.connector.https/token}}' @lovincyrus |
Header values (e.g., Bearer tokens) are now stored in .env and
referenced via {{ .env.connector.https.<key> }} in the connector YAML,
preventing secrets from being exposed in configuration files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Header values are now stored in For example, entering Connector YAML: headers:
"Authorization": "{{ .env.connector.https.authorization }}".env: |
Non-sensitive headers (e.g., Content-Type, Accept) remain as plain text in the connector YAML. Only headers matching known sensitive patterns (Authorization, API keys, tokens) are stored in .env. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The CI Svelte parser does not support Tailwind modifier syntax (e.g. hover:text-fg-primary) inside @apply directives. Use standard CSS :hover pseudo-selectors instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Idk if its possible but can we separate Bearer and token? |
We shouldn't do that. Headers should be a key value pair. |
|
Separate it meaning For HTTPS auth, the wire format is:
Bearer is protocol syntax, not part of the token itself.
|




This PR adds headers support to the HTTPS connector by turning it into a two-step form. Step 1 collects HTTP headers (e.g., Authorization: Bearer ), and step 2 collects the URI and model name. Headers entered in the connector form are written to the connector YAML as a map, which the existing create_secrets_from_connectors bridge translates into DuckDB EXTRA_HTTP_HEADERS secrets at query time — no backend changes required.
Checklist: