Skip to content

Destination setup guides

Each guide below follows the same order: what to install, how to create the database and a user that can only do what SPSync needs, how to let SPSync reach it, how to encrypt the connection, which sign-in methods work today, how to connect from the desktop app, the CLI or an AI assistant, what the connection test proves, and the errors people hit.

  • SQL Server: on-premises, an Azure virtual machine, Azure Arc-enabled SQL Server, and Amazon RDS for SQL Server.
  • Azure SQL: Azure SQL Database and Azure SQL Managed Instance.
  • PostgreSQL: self-hosted, Azure Database for PostgreSQL, Supabase, Neon, Amazon RDS and Aurora, Google Cloud SQL and AlloyDB, and Heroku Postgres.
  • MySQL and MariaDB: self-hosted, Azure Database for MySQL, Amazon RDS and Aurora, and Google Cloud SQL.
  • Oracle Database: including the two-schema requirement.
  • SQLite: one local file, no server.
  • DuckDB and MotherDuck: one local file or a MotherDuck database, plus the Parquet export.
  • Google BigQuery: a dataset and a service account with two roles.
  • Databricks: Unity Catalog grants, the SQL warehouse HTTP path, and a personal access token or OAuth service principal.
  • ClickHouse: ClickHouse Cloud and self-hosted, the two ports, and secure=1.
  • Azure Data Lake Storage Gen2: Parquet files in a container, with a SAS token or an Entra identity.
  • Delta Lake: Delta tables on local disk, Amazon S3 or Azure storage.
  • Apache Iceberg: tables through a REST catalog.
  • Microsoft Dataverse: an Entra app registered as an application user.
  • Elasticsearch: an API key or user, https, and Elastic Cloud traffic filters.
  • OpenSearch: a security-plugin role, a VPC domain, and AWS request signing.
  • Azure AI Search: the admin key, index names and an optional vector field.
  • PostgreSQL with pgvector: the extension, PostgreSQL 15 and embedding providers.
  • Qdrant: self-hosted or Qdrant Cloud, with an API key.
  • Weaviate: the REST and gRPC ports.
  • LanceDB: a local folder or an object store.

Relational and ClickHouse destinations take a username and password in a connection string. SPSync never writes that string to the replication config: the config names an environment variable that holds it. Warehouse and lake destinations use a service-account key (BigQuery), a token or service principal (Databricks), a SAS token or Entra identity (Azure storage), storage keys (Delta Lake on S3) or a client secret (Dataverse), and each guide says which. Microsoft Entra ID sign-in and cloud IAM database tokens are not supported for any relational destination today.

The search and vector destinations take an API key (Elasticsearch, OpenSearch, Azure AI Search, Qdrant and Weaviate) or a user name and password (Elasticsearch and OpenSearch). They keep a small local state file to send only changed rows, and the config names an environment variable for the key as well. pgvector takes a PostgreSQL connection string, and LanceDB takes a folder or an object-store location.