- Run preflight. Ardent checks your source without storing credentials or creating a connector.
- Apply the SQL Ardent generates for your database and schemas.
- Re-run preflight until it passes.
- Create the connector and let Ardent perform the initial sync.
Preflight is fast and non-destructive. Connector creation is the step that stores encrypted credentials and starts replication.
Allow inbound from Ardent
Ardent connects from a static egress IP for your environment. If your network restricts inbound traffic, allow that IP on the Postgres port, usually After editing Or from the shell:
5432. Ask your Ardent contact for the current egress IP if you do not already have it.Make sure ssl = on and pg_hba.conf accepts both regular SQL sessions and logical replication sessions from Ardent. PostgreSQL treats them as different connection types, so both lines matter:pg_hba.conf, reload Postgres so the new rules take effect. A reload is enough. No restart is needed for pg_hba.conf changes:pg_ctl reload -D <datadir> (or sudo systemctl reload postgresql on systemd installs).Hostnames must resolve to an IPv4 address. IPv6-only hosts are not supported today.Enable logical replication
Check the current values first:Ardent needs If you prefer to manage these by hand, run the
wal_level = logical, at least one free replication slot, and enough WAL sender capacity for Ardent plus anything else already replicating from your database. If your existing values are higher than Ardent’s minimums, keep the higher values.ALTER SYSTEM SET only accepts a literal value, not an expression, so running ALTER SYSTEM SET max_wal_senders = 10 on a server that already has max_wal_senders = 20 (for example, to support existing standbys) will lower it to 10 on the next restart and can start refusing connections from those standbys. The block below raises each parameter only when the current value is below Ardent’s minimum:SHOW queries above first and only ALTER SYSTEM SET the parameters whose current values are below 10.Install the wal2json output plugin
Ardent reads changes through the If your session is interrupted after the create statement, run the drop statement manually before continuing. An unconsumed logical slot retains WAL indefinitely and can fill the disk.Verify cleanup:No rows should be returned.
wal2json logical-decoding plugin. Install the package matched to your Postgres major version:- Debian and Ubuntu:
postgresql-<major>-wal2json - RHEL family:
wal2json_<major>
Create the Ardent role
GRANT CREATE ON DATABASE lets Ardent create its own pgstream bookkeeping schema and publication. It does not grant write access to your application schemas.For each schema you want replicated, run inside the matching database:ALTER DEFAULT PRIVILEGES lines are what keep future tables and sequences visible to replication. They only apply to objects created by the role that ran the ALTER. If your application creates tables as another role, repeat them with FOR ROLE:Run preflight until it passes
is writerfails: the URL points at a read replica. Use the writable primary.wal levelfails: enable logical replication and restart Postgres.wal2jsonis unverified or failed: install the plugin or ask Ardent to confirm provider support.can read tablesfails: run the generated grant script.duplicate sourcefails: this database is already connected to Ardent.
Create your connector
Once preflight passes, create the connector:Ardent stores the encrypted credentials, discovers the schema, performs the initial snapshot, and starts continuous replication. Initial sync time depends on data size, write rate, and network throughput; large databases can take much longer than a few minutes.
Every replicated table needs a stable way to identify rows in WAL: a primary key, a valid unique NOT NULL index (single- or multi-column, non-partial, non-deferrable, no nullable columns), or
REPLICA IDENTITY FULL. If a table has none of these, the CLI asks whether to exclude it, add a key yourself, or opt into REPLICA IDENTITY FULL. Ardent never runs DDL on your source automatically.