2.6.4 • Published 17 days ago

pg-connection-string v2.6.4

Weekly downloads
2,345,541
License
MIT
Repository
github
Last release
17 days ago

pg-connection-string

NPM

Build Status Coverage Status

Functions for dealing with a PostgresSQL connection string

parse method taken from node-postgres Copyright (c) 2010-2014 Brian Carlson (brian.m.carlson@gmail.com) MIT License

Usage

var parse = require('pg-connection-string').parse;

var config = parse('postgres://someuser:somepassword@somehost:381/somedatabase')

The resulting config contains a subset of the following properties:

  • host - Postgres server hostname or, for UNIX domain sockets, the socket filename
  • port - port on which to connect
  • user - User with which to authenticate to the server
  • password - Corresponding password
  • database - Database name within the server
  • client_encoding - string encoding the client will use
  • ssl, either a boolean or an object with properties
    • rejectUnauthorized
    • cert
    • key
    • ca
  • any other query parameters (for example, application_name) are preserved intact.

Connection Strings

The short summary of acceptable URLs is:

  • socket:<path>?<query> - UNIX domain socket
  • postgres://<user>:<password>@<host>:<port>/<database>?<query> - TCP connection

But see below for more details.

UNIX Domain Sockets

When user and password are not given, the socket path follows socket:, as in socket:/var/run/pgsql. This form can be shortened to just a path: /var/run/pgsql.

When user and password are given, they are included in the typical URL positions, with an empty host, as in socket://user:pass@/var/run/pgsql.

Query parameters follow a ? character, including the following special query parameters:

  • db=<database> - sets the database name (urlencoded)
  • encoding=<encoding> - sets the client_encoding property

TCP Connections

TCP connections to the Postgres server are indicated with pg: or postgres: schemes (in fact, any scheme but socket: is accepted). If username and password are included, they should be urlencoded. The database name, however, should not be urlencoded.

Query parameters follow a ? character, including the following special query parameters:

  • host=<host> - sets host property, overriding the URL's host
  • encoding=<encoding> - sets the client_encoding property
  • ssl=1, ssl=true, ssl=0, ssl=false - sets ssl to true or false, accordingly
  • sslmode=<sslmode>
    • sslmode=disable - sets ssl to false
    • sslmode=no-verify - sets ssl to { rejectUnauthorized: false }
    • sslmode=prefer, sslmode=require, sslmode=verify-ca, sslmode=verify-full - sets ssl to true
  • sslcert=<filename> - reads data from the given file and includes the result as ssl.cert
  • sslkey=<filename> - reads data from the given file and includes the result as ssl.key
  • sslrootcert=<filename> - reads data from the given file and includes the result as ssl.ca

A bare relative URL, such as salesdata, will indicate a database name while leaving other properties empty.

pg@balena/pinejsrelay-restreach-ad-analyserbatch-processing-servicepostgres-testing-libraryaloha.tech-backend@xavo/cli@mui/studiofaros-canonical-reportsunleash-server@everything-registry/sub-chunk-2429@heisian/knex@erdem3801/types-nodejs-orm@homebound/pg-structure@halkeye/hubot-postgres-brain@hotmig/hotmig-driver-pg@insidelabs/sqltyper@infurnia/sequelize@interactivethings/visualize-app@hyperjumptech/monika@infinitebrahmanuniverse/nolb-pg@ictu/testx-keywords-postgres@ff00ff/mammoth-cli@foodfresh/postgraphql@getodk/slonik@golemio/cli@graphprotocol/payments@dwwoelfel/postgraphile@embracesql/postgres@fdy/simple-postgres@jamesbeard/knex@lukeramsden/graphile-scheduler@playpauseandstop/postgraphqlitty-postgres@pirireis/knexunleash-server-openapi@pi-r/postgres@pk4media/knex@purnasatria/directus-extension-document-interface@pyramation/postgraphileutdelenitiunique-sdk@ponder/core@prosperitybot/database@qwick/migrate@qwick/postgraphilejigsaw-importer@sandbags-protocol/sequelizeknex-lukeknex-mssql-3-3-0knex-navistoneknex-next-railsknex-node-firebirdknex-oracledbknexxknex-pg-read-replicaknex-pg-rrknex-pgsql-edgeruntimeknex-redshiftknex-redshift-forkknex-ufgknex-unsorted-keysknex-upsert-pre-releaseknex-with-snowflake-latestknex_conn_releaseknex_custom@knorm/postgres@iwci/shopify-app-session-storage-postgresql@jonstuebe/knex@kapouer/knex@metis-data/slow-query-log@metis-data/prisma-interceptor@micburks/pg@makeen.io/run.pghfjy-knex@motiz88/pggvnn-postgraphql@mmoriarity/slonik@nger/orm-postgres@nger/orm.postgres@shellthor/semantic-demowebplatform@shiyuhao/fsdpdesktop@shotero/dbmigrator@shopify/shopify-app-session-storage-postgresql@silver0542/directus-extension-cma-components-editorinstant-local-db@oscarbarrett/sequelize-redshift@perdieminc/modelsinsights-core@resin/pinejs@rematter/sequelizejsqltestjoist-utilsuptime-kuma@onzag/knextwo-authturio-api--nodejstoolbox-backend
2.6.4

17 days ago

2.6.3

20 days ago

2.6.1

10 months ago

2.6.2

9 months ago

2.6.0

11 months ago

2.5.0

3 years ago

2.4.0

4 years ago

2.3.0

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.1.0

5 years ago

2.0.0

7 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago