0.1.2 • Published 1 year ago

postboard-lookup-service v0.1.2

Weekly downloads
-
License
PROPRIETARY
Repository
github
Last release
1 year ago

Postboard Lookup Service

Provides a lookup service for Postboard tokens.

Usage

This example configures the lookup service with its built-in Knex storage engine.

const Confederacy = require('confederacy')
const PostboardLookup = require('postboard-lookup-service')

// Define your knexfile, either by requiring it...
const knexfile = require('../location/of/knexfile.js')
// ...or by defining it directly
const knexfile = { // See the Example Knexfiles section
  client: 'sqlite3',
  connection: {
    // ...
  }
  // ...
}

const knex = require('knex')(knexfile)

const confederacy = new Confederacy({
  managers: {
    // ...
  },
  lookupServices: {
    Postboard: new PostboardLookup({
      storageEngine: new PostboardLookup.KnexStorageEngine({
        knex
      })
    })
  }
})

🔶 Create Your Migration

You will also need to create a new database migration in your application to allow the storage engine to create its table before use. Point your Knexfile to a directory in your source code where you will store your application's database migrations, if you do not have one already. Normally, this can just be src/migrations. Create a new knex database migration file with the following contents in your codebase:

// src/migrations/yyyy-mm-dd-001-add-uhrp-lookup.js
const PostboardLookup = require('postboard-lookup')
const engine = new PostboardLookup.KnexStorageEngine({
  knex
})

exports.up = async knex => {
  await engine.migrations[0].up(knex) // This sets up the UHRP service
}

exports.down = async knex => {
  await engine.migrations[0].down(knex) // This tears down the UHRP service
}

Example Knexfiles

Use these example knexfiles to connect to various database engines

mysql

{
  client: 'mysql',
  connection: {
    host: '10.0.0.1',
    port: 3306,
    user: 'user',
    password: 'changeme',
    database: 'example'
  },
  useNullAsDefault: true,
  migrations: {
    directory: './path/to/migrations'
  }
}

sqlite3 (so you can store headers in a local file)

{
  client: 'sqlite3',
  connection: {
    filename: './path/to/database.sqlite'
  },
  useNullAsDefault: true,
  migrations: {
    directory: './path/to/migrations'
  }
}
0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago