Prerequisites
Confirm the following before connecting:- A Snowflake account identifier (for example
xy12345.us-east-1), warehouse, database, username, and password for a user that’s allowed to connect from DualEntry’s network. If your Snowflake account uses network policies, your platform team may need to allow DualEntry’s egress IPs (the connection log records the egress IP that was attempted, so you can confirm the value with your platform team during failed attempts). - Optionally, a Snowflake role. If you omit it, DualEntry doesn’t send a
roleparameter to the Snowflake connector; an empty string is treated as unset. - Permission in DualEntry to create export destinations.
- Awareness that one active Snowflake export integration is allowed per organization. The same single-active rule applies to other export types (Qlik, Power BI, PostgreSQL).
How to connect
The connect flow is the same for every export destination: provide credentials, DualEntry validates them in the background, and on success the credentials land in AWS Secrets Manager and the integration shows as Connected.- In DualEntry, navigate to Configuration → Company → Integrations → Snowflake.
- Provide a display name for the destination, the integration type (
snowflake), and the credential fields from Prerequisites. - Choose Save. DualEntry returns immediately with the destination in Pending status; credential validation runs in the background.
- Wait for the destination to move from Pending to Testing to Validated. While testing, DualEntry opens a connection to Snowflake using your credentials with a 10-second login timeout, then closes it. A successful open/close counts as validation.
- On success, the destination shows Validated, the linked integration shows Connected, and the credentials are written to AWS Secrets Manager. On failure, the destination shows Failed with an error message and the linked integration is set to Error.
Credential schema
DualEntry validates the credential payload against a fixed schema before attempting to connect. Every field exceptrole is required.
The current schema doesn’t collect a Snowflake schema name; the connector uses Snowflake defaults for the given database and user.
Disconnect
Disconnecting a Snowflake destination archives the export-secret row, marks the integration as Disconnected, and schedules deletion of the AWS Secrets Manager entry (subject to AWS’s secret recovery window). One blocking condition: you can’t disconnect while an AWS Glue export job tied to the integration is in a Running state; the disconnect call returns an error with the active job ID. Wait for the job to complete (or cancel it if appropriate), then retry the disconnect.Troubleshoot connection errors
Validation runs in the background, so symptoms surface in the destination’s status field and the linked integration’s error message.FAQ
Does DualEntry sync data into Snowflake automatically as part of this flow?
No. The connect flow registers and tests credentials, then stores them so that downstream export infrastructure (typically AWS Glue jobs) can write data into your warehouse. The table layout, job cadence, and SQL for specific datasets are owned by your deployment’s export configuration, not by this integration.Where are passwords stored?
In AWS Secrets Manager, under a secret name that’s keyed to your organization and the destination’s identifier. The password never lands in DualEntry’s relational database.What other export destinations work the same way?
Qlik, Power BI, and PostgreSQL export destinations all share this connect flow, the same single-active-per-organization rule, and the same AWS Secrets Manager storage pattern. Only the credential schema differs per destination type.For maintainers
The details below describe the connect-flow plumbing, not user-facing features.- API endpoints (internal admin):
POST /api/integrations/exports/secrets/to create a destination.GET /api/integrations/exports/secrets/{secret_id}/to poll status.POST /api/integrations/exports/secrets/{secret_id}/disconnect/to disconnect.
- Credential schema class:
ExportSnowflakeCredentialsSchema. The schema’smetadataproperty exposesaccount,warehouse, anddatabaseas the non-sensitive fields stored on the export-secret row’sdestination_metadata. - Background validation: the
provision_export_secretCelery task parses credentials, callssnowflake.connector.connectwithaccount,user,password,warehouse,database,login_timeout=10, and optionalrole, then opens and closes the connection. A clean open/close counts as validation. - AWS Secrets Manager naming: secrets are stored at
dualentry/exports/org_{organization_id}/{name}_{secret_id}(built byExportSecret.build_secret_qual_name). If AWS reports the secret already exists, the task reuses the existing ARN and continues. - Disconnect uses AWS Secrets Manager’s scheduled deletion with the standard recovery window; reusing the same name within the recovery window will collide.
- Diagnostic log keys:
export_secret_provisioning_error(creation/validation failures),export_secret_ip_check(the egress IP DualEntry attempted from). Confirm with your platform team whether the IP-check path applies to your deployment. - Other export integration types (
qlik,power_bi,postgresql) follow the same lifecycle and share the single-active-per-organization rule.

