> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://apidocs.polytomic.com/2024-02-08/guides/configuring-your-connections/connections/neon/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://apidocs.polytomic.com/_mcp/server. # Neon Supports: * ✅ Models * ✅ Model sync destination * ✅ Bulk sync source * ✅ Bulk sync destination ## Connection ### Configuration
NameTypeDescriptionRequired
change_detection boolean Use logical replication for bulk syncs ↓ optional
client_certs boolean Use client certificates ↓ optional
database string Database required
hostname string Hostname required
password string Password required
port integer Port required
ssh boolean Connect over SSH tunnel ↓ optional
ssl boolean Use SSL optional
username string Username required
#### `change_detection` When `change_detection` is `true`:
NameTypeDescriptionRequired
publication string Publication required
```json { "name": "Neon connection", "type": "neon", "configuration": { "change_detection": true, "client_certs": false, "database": "sampledb", "hostname": "database.example.com", "password": "password", "port": 5432, "publication": "polytomic", "ssh": false, "ssl": true, "username": "postgres" } } ``` #### `client_certs` When `client_certs` is `true`:
NameTypeDescriptionRequired
ca_cert string CA certificate required
client_certificate string Client certificate required
client_key string Client key required
```json { "name": "Neon connection", "type": "neon", "configuration": { "ca_cert": "", "change_detection": false, "client_certificate": "", "client_certs": true, "client_key": "", "database": "sampledb", "hostname": "database.example.com", "password": "password", "port": 5432, "ssh": false, "ssl": true, "username": "postgres" } } ``` #### `ssh` When `ssh` is `true`:
NameTypeDescriptionRequired
ssh_host string SSH host required
ssh_port integer SSH port required
ssh_private_key string Private key required
ssh_user string SSH user required
```json { "name": "Neon connection", "type": "neon", "configuration": { "change_detection": false, "client_certs": false, "database": "sampledb", "hostname": "database.example.com", "password": "password", "port": 5432, "ssh": true, "ssh_host": "bastion.example.com", "ssh_port": 22, "ssh_private_key": "", "ssh_user": "root", "ssl": true, "username": "postgres" } } ``` #### Example ```json { "name": "Neon connection", "type": "neon", "configuration": { "change_detection": false, "client_certs": false, "database": "sampledb", "hostname": "database.example.com", "password": "password", "port": 5432, "ssh": false, "ssl": true, "username": "postgres" } } ``` ## Model Sync ### Source #### Configuration
NameTypeDescriptionRequired
query string optional
table string Table optional
view string View optional
#### Example ```json { ... "configuration": { "query": "SELECT * from users", "table": "users", "view": "active_users" } } ``` ### Target Neon connections may be used as the destination in a model sync. #### All targets ##### Configuration
NameTypeDescriptionRequired
created_column string 'Created at' timestamp column optional
preserve_table_on_resync boolean Preserve destination table when resyncing optional
updated_column string 'Updated at' timestamp column optional
write_null_values boolean Copy null values

When enabled updates will set fields to NULL when the source value is null
optional
write_record_timestamps boolean Write row timestamp metadata optional
##### Example ```json { ... "target": { "configuration": { "created_column": "", "preserve_table_on_resync": false, "updated_column": "", "write_null_values": false, "write_record_timestamps": false } } } ``` ### Target creation Neon connections may be used to create a new target for a model sync. The following parameters are required to create a new target:
NAME DESCRIPTION ENUM
name Table name false
## Bulk Sync ### Source #### Configuration
NameTypeDescriptionRequired
automatically_add_new_fields boolean Automatically add new fields on selected tables optional
automatically_add_new_objects boolean Automatically add new tables optional
mirror_publication_selections boolean Mirror table and column selection with database publication optional
mirror_tables_without_unique_id boolean Mirror table without a unique identifier

If set to true
optional
replication_slot string Replication slot

Leave blank to allow Polytomic to manage a replication slot for this sync.
optional
#### Example ```json { ... "source_configuration": { "automatically_add_new_fields": false, "automatically_add_new_objects": false, "mirror_publication_selections": false, "mirror_tables_without_unique_id": false, "replication_slot": "polytomic" } } ``` ### Destination #### Configuration
NameTypeDescriptionRequired
advanced object optional
mirror_schemas boolean Mirror schemas optional
schema string Output schema optional
#### Example ```json { ... "destination_configuration": { "advanced": { "empty_strings_null": true, "hard_deletes": false, "initial_execution": "rebuild", "table_prefix": "", "truncate_existing": false }, "mirror_schemas": false, "schema": "schema" } } ``` ## Type handling ### Destination types | POLYTOMIC TYPE | NEON TYPE | |-----------------------------|----------------------------| | `array<>` | `JSON` | | `bigint` | `INT8` | | `boolean` | `BOOL` | | `date` | `DATE` | | `datetime` | `TIMESTAMP` | | `decimal(precision, scale)` | `NUMERIC(precision,scale)` | | `double` | `DOUBLE PRECISION` | | `int` | `INT4` | | `json` | `JSON` | | `jsonarray` | `JSON` | | `number` | `NUMERIC` | | `object{}` | `JSON` | | `single` | `REAL` | | `smallint` | `INT2` | | `string` | `TEXT` | | `time` | `TIME` | ### Source types | NEON TYPE | POLYTOMIC TYPE | |-----------------------------|-----------------------------| | `ANYARRAY` | `jsonarray` | | `CIDR` | `string` | | `CSTRING` | `string` | | `DATE` | `date` | | `DOUBLE PRECISION` | `double` | | `FLOAT` | `single` | | `FLOAT4` | `single` | | `FLOAT8` | `double` | | `INET` | `string` | | `INT` | `int` | | `INT2` | `smallint` | | `INT4` | `int` | | `INT8` | `bigint` | | `INTERVAL` | `string` | | `JSON` | `json` | | `JSONB` | `json` | | `MACADDR` | `string` | | `MONEY` | `number` | | `NAME` | `string` | | `NUMERIC(precision, scale)` | `decimal(precision, scale)` | | `REAL` | `single` | | `TEXT` | `string` | | `TIME` | `time` | | `TIMESTAMP` | `datetime` | | `TIMESTAMPTZ` | `datetime_tz` | | `TIMETZ` | `time` | | `UUID` | `string` | | `_BOOL` | `jsonarray` | | `_BPCHAR` | `jsonarray` | | `_BYTEA` | `jsonarray` | | `_CHAR` | `jsonarray` | | `_CSTRING` | `jsonarray` | | `_DATE` | `jsonarray` | | `_FLOAT4` | `jsonarray` | | `_FLOAT8` | `jsonarray` | | `_INT2` | `jsonarray` | | `_INT2VECTOR` | `jsonarray` | | `_INT4` | `jsonarray` | | `_INT8` | `jsonarray` | | `_JSON` | `jsonarray` | | `_JSONB` | `jsonarray` | | `_LSEG` | `jsonarray` | | `_MONEY` | `jsonarray` | | `_NAME` | `jsonarray` | | `_NUMERIC` | `jsonarray` | | `_PATH` | `jsonarray` | | `_TEXT` | `jsonarray` | | `_TIME` | `jsonarray` | | `_TIMESTAMP` | `jsonarray` | | `_TIMESTAMPTZ` | `jsonarray` | | `_TIMETZ` | `jsonarray` | | `_UUID` | `jsonarray` | | `_VARCHAR` | `jsonarray` | | `_XML` | `jsonarray` |