Skip to content

Bug: Secret references to non-string fields are injected as strings, causing validation failuresΒ #852

@devin-ai-integration

Description

@devin-ai-integration

Description

When a secret reference is used to point to a non-string field (such as 'port'), the value is injected as a string. This can cause validation to fail due to type mismatch.

Example

If a connector config has a numeric field like port and it's provided via secret reference:

{
  "host": "localhost",
  "port": "secret_reference::MY_PORT_SECRET"
}

The secret value is injected as a string (e.g., "5432") instead of being cast to the correct type (e.g., 5432), causing JSON schema validation to fail.

Proposed Solution

Use the connector's JSON schema (from connectionSpecification) to infer when a secret reference needs to be cast to a numeric type rather than keeping it as a string.

For now, we can focus on the generic numeric type and ignore other types.

Context

This is relevant to the work in #850 and PR #851, where we're adding the ability to fetch connector specs from the registry. Having access to the JSON schema enables proper type casting of secret references without requiring local connector execution.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions