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

```js 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:

Connection Strings

The short summary of acceptable URLs is:

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:

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.