pg-access-apply
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

pg-access-apply

Idempotent postgres database and role management

Docs

npm version

Loosely, this manages resources that are configured and then handed over to an application to use. Eg: you create a database and a role, then pass this configuration over to an application which creates and manages tables etc within that database. The goal of this library is to manage things like databases and roles.

Getting started

import { Client } from 'pg';
import { pg_applier } from 'pg-access-apply';

// Create a database client and connect
const client = new Client({ ... });
client.connect();
try {
    // Pass a 'query' function to pg_applier
    const applier = pg_applier({
        query: client.query.bind(client),
    });

    // Ensure database 'mydatabase' exists
    await applier.database({
        name: 'mydatabase',
    });

    // Ensure role 'myrole' exists and has password 'mypassword'
    await applier.role({
        name: 'myrole',
        properties: {
            password: 'mypassword',
            login: true,
        },
    });

    // Ensure role 'myrole' has all privileges on database 'mydatabase'
    await applierDb.grantOnDatabase({
        roles: ['myrole'],
        properties: {
            allPrivileges: true,
            databases: ['mydatabase'],
        },
    });
} finally {
    client.end();
}

Supported Postgres resources

Readme

Keywords

Package Sidebar

Install

npm i pg-access-apply

Weekly Downloads

1

Version

0.1.5

License

MIT

Unpacked Size

59.2 kB

Total Files

4

Last publish

Collaborators

  • plumdog