Data Connectivity Proxy reference

This page summarizes Data Connectivity Proxy (DCP) SQL syntax, INFORMATION_SCHEMA table functions, agent CLI flags, and limitations. Dedicated SQL command and function reference pages will replace these summaries after syntax is finalized.

SQL commands

CREATE DATA CONNECTIVITY PROXY

CREATE [ OR REPLACE ] DATA CONNECTIVITY PROXY [ IF NOT EXISTS ] <name>
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
  [ NETWORK_POLICY = <policy_name> ]
  [ ENABLED = { TRUE | FALSE } ]
  [ COMMENT = '<comment>' ]

Associate at least one external access integration whose network rules use MODE = DATA_CONNECTIVITY_PROXY_EGRESS. You can set this at create time or later with ALTER.

ALTER DATA CONNECTIVITY PROXY

ALTER DATA CONNECTIVITY PROXY <name> SET
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
  [ NETWORK_POLICY = <policy_name> ]
  [ ENABLED = { TRUE | FALSE } ]
  [ COMMENT = '<comment>' ]

ALTER DATA CONNECTIVITY PROXY <name> UNSET
  [ EXTERNAL_ACCESS_INTEGRATIONS ]
  [ NETWORK_POLICY ]
  [ COMMENT ]

ALTER DATA CONNECTIVITY PROXY <name> RENAME TO <new_name>

DESCRIBE DATA CONNECTIVITY PROXY

Returns one row with the current configuration and agent status for a DCP client. Requires USAGE on the object.

DESCRIBE DATA CONNECTIVITY PROXY <name>

Key columns: NAME, ENABLED, EXTERNAL_ACCESS_INTEGRATIONS, NETWORK_POLICY, COMMENT, AGENT_STATUS, BOOTSTRAP_STATUS, BOOTSTRAP_FAILURE_REASON, LAST_BOOTSTRAP_AT, CERT_ROTATION_STATUS, LAST_CERT_ROTATION_AT, OPERATIONAL_CERT_EXPIRES_AT, LAST_AUTH_FAILURE_REASON, LAST_AUTH_FAILURE_AT, DATA_PATH_STATUS, AGENT_HEALTH, AGENT_VERSION, LAST_HEARTBEAT_AT, POLICY_APPLIED_EPOCH, AUTH_TOKEN_EXPIRES_AT, POLICY_EPOCH, REACHABLE_DESTINATIONS.

AGENT_HEALTH is derived (HEALTHY, DEGRADED, or DOWN). See Describe a DCP client.

DROP DATA CONNECTIVITY PROXY

DROP DATA CONNECTIVITY PROXY [ IF EXISTS ] <name>

SHOW DATA CONNECTIVITY PROXIES

SHOW DATA CONNECTIVITY PROXIES [ LIKE '<pattern>' ]

SQL functions

Setup also requires SYSTEM$ISSUE_PER_ACCOUNT_CERTIFICATES. See the note in the setup topic.

SYSTEM$GENERATE_DATA_CONNECTIVITY_PROXY_BOOTSTRAP_TOKEN

Generates a bootstrap JWT for an agent to authenticate with the DCP control plane.

SYSTEM$GENERATE_DATA_CONNECTIVITY_PROXY_BOOTSTRAP_TOKEN(
  '<dcp_client_name>',
  <validity_days>
)

Arguments:

ArgumentTypeDescription
dcp_client_nameVARCHARName of the DCP object to generate a token for
validity_daysINTEGERToken validity in days (maximum: 90)

Returns a VARCHAR containing the bootstrap JWT. Write this value to the credentials file on the agent host.

Required privilege: ACCOUNTADMIN, or OWNERSHIP on the DCP object.

INFORMATION_SCHEMA table functions

These functions take AGENT_ID as the DCP client name. You need USAGE on that client (the same privilege DESCRIBE requires). If you don’t have it, Snowflake treats the object as not existing.

DCP_CLIENT_EVENT_HISTORY

Returns one row per recorded status transition for a DCP client. A row is the status entered at OCCURRED_AT, not the current state.

TABLE(INFORMATION_SCHEMA.DCP_CLIENT_EVENT_HISTORY(
  AGENT_ID => '<dcp_client_name>'
))

Output columns: AGENT_ID, OCCURRED_AT, EVENT_TYPE, STATUS, REASON, RECORDED_AT

EVENT_TYPE: BOOTSTRAP, CONTROL_PLANE, CERT_ROTATION, DATAPLANE_CERT_ROTATION, DATA_PATH

STATUS: SUCCESS, FAILURE, PENDING, IN_PROGRESS

DCP_CLIENT_CONNECTION_HISTORY

Returns one row per closed connection from agent telemetry. TIME_RANGE_HOURS is optional (default 24, minimum 1, maximum 2160). The window is on recorded time.

TABLE(INFORMATION_SCHEMA.DCP_CLIENT_CONNECTION_HISTORY(
  AGENT_ID => '<dcp_client_name>'
  [ , TIME_RANGE_HOURS => <hours> ]
))

Output columns: AGENT_ID, CONNECTION_ID, WORKLOAD_ID, DESTINATION_HOST, DESTINATION_PORT, STATUS, REASON, STARTED_AT, ENDED_AT, RECORDED_AT, SETUP_DURATION_MS, BYTES_TO_DESTINATION, BYTES_FROM_DESTINATION

STATUS: SUCCESS, FAILURE, UNKNOWN

DCP_CLIENT_ROUTE_CHECK

Evaluates the live route from Snowflake through a DCP client to a destination. DESTINATION is host:port. Returns one row per stage.

TABLE(INFORMATION_SCHEMA.DCP_CLIENT_ROUTE_CHECK(
  AGENT_ID => '<dcp_client_name>',
  DESTINATION => '<host>:<port>'
))

Output columns: AGENT_ID, STAGE_ORDER, STAGE, STATUS, DETAIL, REASON, CHECKED_AT

STAGE: EGRESS_CONFIG, POLICY, BOOTSTRAP, CONTROL_PLANE, CERTIFICATES, DATA_PATH, SNOWFLAKE_INTERNAL, DESTINATION

STATUS: SUCCESS, FAILURE, IN_PROGRESS, SKIPPED, UNKNOWN

Agent CLI reference

FlagDefaultDescription
--sf-bootstrap-credentials/etc/dcp-agent/secrets/dcp-bootstrap-tokenPath to the bootstrap JWT. Re-read on certificate rotation. Omit this flag if you mount the token at the default path.
--metrics-addr127.0.0.1:9092Address for the Prometheus metrics endpoint and the /ready health probe
--drain-timeout-secs300Seconds to wait for active tunnels to finish on SIGTERM
--health-checkNoneRun bootstrap validation and exit without starting workers
--log-levelinfoLog verbosity: error, warn, info, debug, trace

Agent environment variables

Each variable below is an alternative to the equivalent flag. Where both are supplied, the flag wins.

VariableFlag equivalentDescription
DCP_BOOTSTRAP_TOKEN--sf-bootstrap-credentialsThe bootstrap JWT itself, or a path to a file containing it. Prefer mounting the token as a file: a value supplied inline isn’t re-read on certificate rotation and is visible in the container environment.
DCP_METRICS_ADDRESS--metrics-addrFull host:port for the metrics and /ready endpoints. Default 127.0.0.1:9092. An empty value disables both endpoints.
DCP_METRICS_PORTNoneBare port that binds 0.0.0.0:<port> — the usual way to expose metrics from a container. Ignored when DCP_METRICS_ADDRESS or --metrics-addr is set.
DCP_LOG_LEVEL--log-levelLog verbosity: error, warn, info, debug, trace. Default info.

Limitations

  • DCP is available for use with Snowflake Openflow. Support for additional services is planned.
  • A single DCP object corresponds to one network scope. For data sources in isolated networks, deploy a separate agent and DCP object per network.
  • Corporate HTTP proxy support (routing the agent’s outbound traffic through an enterprise-managed forward proxy) isn’t supported.
  • Active-active load-balancing across agent instances for the same destination isn’t supported.
  • Hitless agent-process upgrade (live TCP session handoff on agent restart) isn’t supported.
  • Agent telemetry shipping to a Snowflake event table is available on AWS. Azure support follows in a subsequent release.