Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
96f204a
init
lovincyrus Jan 13, 2026
0462e75
rm yupSchema
lovincyrus Jan 13, 2026
15f58ae
rm references
lovincyrus Jan 13, 2026
ce650b2
rm clickhouse form, clean up
lovincyrus Jan 13, 2026
eff5441
ts fix
lovincyrus Jan 13, 2026
d00865a
add connector schemas, duh
lovincyrus Jan 13, 2026
cdd7af4
clean up
lovincyrus Jan 13, 2026
0a52733
rm unused
lovincyrus Jan 13, 2026
45c3e9f
e2e fix
lovincyrus Jan 13, 2026
f4c27f1
step 2 form reset
lovincyrus Jan 14, 2026
e5a5f2b
connector instance name for create secrets from connectors
lovincyrus Jan 14, 2026
847f238
test for model reset e2e
lovincyrus Jan 14, 2026
7a2c548
snowflake e2e
lovincyrus Jan 14, 2026
4a6607b
e2e test for create secrets from connectors
lovincyrus Jan 14, 2026
2d7c51a
reset error on input change
lovincyrus Jan 14, 2026
f6b8bff
bigquery nit
lovincyrus Jan 14, 2026
93bfc90
remove clickhouse form
lovincyrus Jan 16, 2026
a7b5541
remove ref for connector driver property in form renderer
lovincyrus Jan 16, 2026
faae590
Revert "remove clickhouse form"
lovincyrus Jan 16, 2026
97b8ab0
clickhouse revert
lovincyrus Jan 16, 2026
f9be8de
tabs and clickhouse renderer changes
lovincyrus Jan 16, 2026
93bd44e
clickhouse grouped fields, renderer
lovincyrus Jan 16, 2026
5936983
prettier
lovincyrus Jan 16, 2026
ebbdb88
remove configProperties/sourceProperties references
lovincyrus Jan 16, 2026
056f7bd
no longer gets initial values from drivers props
lovincyrus Jan 16, 2026
ddcb892
set internals in schemas
lovincyrus Jan 16, 2026
cf550d6
lint, prettier
lovincyrus Jan 16, 2026
7e54392
fallback secret_secrets_from_connectors
lovincyrus Jan 16, 2026
a84972e
explorer init
lovincyrus Jan 17, 2026
d1e847e
input for sql block, preview
lovincyrus Jan 17, 2026
e6b810f
explorer connector conditions
lovincyrus Jan 17, 2026
e0795d2
gcp credentials secret type
lovincyrus Jan 17, 2026
d06c686
input multiline placeholder
lovincyrus Jan 17, 2026
78338d5
remove unused
lovincyrus Jan 17, 2026
abd969e
prettier
lovincyrus Jan 17, 2026
ae344aa
re-order
lovincyrus Jan 17, 2026
d0eb8b4
e2e fix
lovincyrus Jan 17, 2026
8e22b56
clickhouse cta and orders fix
lovincyrus Jan 17, 2026
be7e526
clean up
lovincyrus Jan 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion web-common/src/components/forms/Input.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@
contenteditable
class="multiline-input"
class:pointer-events-none={disabled}
{placeholder}
data-placeholder={placeholder}
aria-label={label || title || placeholder}
role="textbox"
tabindex="0"
aria-multiline="true"
Expand Down Expand Up @@ -327,6 +328,11 @@
word-wrap: break-word;
}

.multiline-input:empty:before {
content: attr(data-placeholder);
@apply text-gray-400;
}

.input-wrapper:focus-within {
@apply border-primary-500;
@apply ring-2 ring-primary-100;
Expand Down
48 changes: 20 additions & 28 deletions web-common/src/features/connectors/code-utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { QueryClient } from "@tanstack/svelte-query";
import { get } from "svelte/store";
import {
ConnectorDriverPropertyType,
type V1ConnectorDriver,
type ConnectorDriverProperty,
getRuntimeServiceGetFileQueryKey,
Expand Down Expand Up @@ -37,9 +36,18 @@ export function compileConnectorYAML(
connector: V1ConnectorDriver,
formValues: Record<string, unknown>,
options?: {
fieldFilter?: (property: ConnectorDriverProperty) => boolean;
orderedProperties?: ConnectorDriverProperty[];
fieldFilter?: (
property:
| ConnectorDriverProperty
| { key?: string; type?: string; secret?: boolean; internal?: boolean },
) => boolean;
orderedProperties?: Array<
| ConnectorDriverProperty
| { key?: string; type?: string; secret?: boolean }
>;
connectorInstanceName?: string;
secretKeys?: string[];
stringKeys?: string[];
},
) {
// Add instructions to the top of the file
Expand All @@ -50,31 +58,19 @@ type: connector

driver: ${getDriverNameForConnector(connector.name as string)}`;

// Use the provided orderedProperties if available, otherwise fall back to configProperties/sourceProperties
let properties =
options?.orderedProperties ??
connector.configProperties ??
connector.sourceProperties ??
[];
// Use the provided orderedProperties if available.
let properties = options?.orderedProperties ?? [];

// Optionally filter properties
if (options?.fieldFilter) {
properties = properties.filter(options.fieldFilter);
}

// Get the secret property keys
const secretPropertyKeys =
connector.configProperties
?.filter((property) => property.secret)
.map((property) => property.key) || [];
const secretPropertyKeys = options?.secretKeys ?? [];

// Get the string property keys
const stringPropertyKeys =
connector.configProperties
?.filter(
(property) => property.type === ConnectorDriverPropertyType.TYPE_STRING,
)
.map((property) => property.key) || [];
const stringPropertyKeys = options?.stringKeys ?? [];

// Compile key value pairs in the order of properties
const compiledKeyValues = properties
Expand All @@ -100,11 +96,12 @@ driver: ${getDriverNameForConnector(connector.name as string)}`;

const isSecretProperty = secretPropertyKeys.includes(key);
if (isSecretProperty) {
return `${key}: "{{ .env.${makeDotEnvConnectorKey(
const placeholder = `{{ .env.${makeDotEnvConnectorKey(
connector.name as string,
key,
options?.connectorInstanceName,
)} }}"`;
)} }}`;
return `${key}: "${placeholder}"`;
}

const isStringProperty = stringPropertyKeys.includes(key);
Expand All @@ -126,6 +123,7 @@ export async function updateDotEnvWithSecrets(
formValues: Record<string, unknown>,
formType: "source" | "connector",
connectorInstanceName?: string,
opts?: { secretKeys?: string[] },
): Promise<string> {
const instanceId = get(runtime).instanceId;

Expand All @@ -147,13 +145,7 @@ export async function updateDotEnvWithSecrets(
}

// Get the secret keys
const properties =
formType === "source"
? connector.sourceProperties
: connector.configProperties;
const secretKeys = properties
?.filter((property) => property.secret)
.map((property) => property.key);
const secretKeys = opts?.secretKeys ?? [];

// In reality, all connectors have secret keys, but this is a safeguard
if (!secretKeys) {
Expand Down
Loading
Loading