Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@packt/sequelize-service-model

Package Overview
Dependencies
Maintainers
6
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@packt/sequelize-service-model

Sequelize Service Model

  • 2.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
19
increased by216.67%
Maintainers
6
Weekly downloads
 
Created
Source

sequelize-service-model

Greenkeeper badge TypeScript

Requirements

  • Nodejs >= 8.10
  • Docker > 18

Publish

In order to publish the package and pass all the tests, you need to run docker-compose up to launch the postgres DB and in a separate window run npm publish. This will run the lint, tests and build the module.

Example

Importing the module

import ServiceModel from '@packt/sequelize-service-model`

Get a new service instance

const serviceModel = new ServiceModel(dbConfig);

[static] Validate a db config

const isConfigValid = ServiceModel.isValidDbConfig(dbConfig);

Once you create a new instance of the ServiceModel, internally it will instatiate a new DB instance.

Get the db instance

const db = serviceModel.getDb();

Close the db connection

serviceModel.closeDb();

Check db connectivity

serviceModel.checkDbConnectivity()
    .then(...)

[static] Get Sequelize Object (the library)

const Sequelize = ServiceModel.getSequelize();

[static] Get pagination links (next, prev)

const paginationOptions = {
    count - Required. Total number of results
    offset -  Optional, defaults to 0. The results offset currently being accessed
    limit - Required. The size of one page
    baseLink - Required. Link to the endpoint that needs pagination. Ex: https://services.packtpub.com/offers
};
const links = ServiceModel.generatePaginationLinks(paginationOptions);

Result will look like:

{
    prev: 'https://services.packtpub.com/offers?offset=20&limit=10',
    next: 'https://services.packtpub.com/offers?offset=40&limit=10',
}

[static] JSON parse

import ServiceModel from '@packt/sequelize-service-model';
ServiceModel.jsonParse(body, [statusCode], [errorCode])
    .then(body => do stuff);

OR

import jsonParse from '@packt/sequelize-service-model/jsonParse';
jsonParse(body, [statusCode], [errorCode])
    .then(body => do stuff);

dbConfig

The service model has beem built with postgres in mind. The default config looks similar to:

{
    dbName: 'databaseName',
    dbUser: 'postgres_user',
    dbPass: 'XXXXXX',
    dbHost: 'https://postgreslocation:6543'
}

This has also been extended to include sending audit logs of user interactions with the database. To use this feature you need to provide the users UUID and the URI for the ElasticSearch instance. The configuration object would look like:

{
    # Postgres Configuration
    dbName: 'databaseName',
    dbUser: 'postgres_user',
    dbPass: 'XXXXXX',
    dbHost: 'https://postgreslocation:6543',
    # Audit Log Configuration
    auditEs: `https://localhost:9200',
    userId: '9301bb15-b070-4e62-8f38-5fdae5a05678',
}

Auditing is run on creative or destructive query types, this means we log CREATE, UPDATE & DELETE (soft or hard) queries. The logged object itself will look like:

    userId: 'XXXX-XXXX-XXXX-XXXX',
    queryType: 'CREATE|UPDATE|DELETE',
    query: '<QUERY-RELATED-DATA>',

FAQs

Package last updated on 13 Sep 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc