@thzero/library_server

0.18.16 • Public • Published

GitHub package.json version David License: MIT

library_server

An opinionated library of common functionality to bootstrap an API application using MongoDb and Firebase. Currently either Fastify or Koa can be used as the web server; Fastify will be the focus going forward due to lack of support and updates with the Koa stack.

Requirements

NodeJs

Requires NodeJs version 18+.

Installation

NPM

Mongo

Mongo is the only currently supposed option as the server side data source.

.\bin\mongorestore --host <mongodb host name> --ssl --username <mongo user name> --password <mongo user password> --authenticationDatabase admin -d production <location of default database>

Recommended tools for managing Mongo database

Firebase

Google Firebase (https://firebase.google.com) provides the social based authentication; currently only Google social accounts are supported.

  • Add a new project
  • Setup Authentication, enabled Google in the Sign-in method.
  • Get the Firebase SDK configuration
    • Go to Project Overview->Settings->Service accounts
    • Select Node.js option
    • Click Generate new private key

Configuration

The following setup for configuration is required for an application using this library_server dependency

  • Setup the configuration found in the config\development.json
    • Note that this is ignored in the .gitignore
  • Configuration looks like the following
{
    "app": {
        "auth": {
          "apiKey": "<generate a GUID as key in standard nomeclature '#######-####-####-####-############'>",
          "claims": {
            "check": false,
            "useDefault": false
          }
        },
        "cors": {
            "origin": "*"
        },
        "db": {
            "atlas": {
                "connection": "<mongo connection string>",
                "name": "<environment name>"
            }
        },
        "logging": {
            "level": <see https://github.com/pinojs/pino/issues/123 for logging levels>,
            "prettify": <true of false if you want prettify, if true requres 'pino-prettify' as a dependency>
        },
        "port": <port to run the server on>
    }
}
Development Tool Configuration
  • Include the following in the package.json for the application.
  "version_major": #,
  "version_minor": #,
  "version_patch": #,
  "version_date": "MM/DD/YYYY",

Dependencies (6)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i @thzero/library_server

    Weekly Downloads

    266

    Version

    0.18.16

    License

    MIT

    Unpacked Size

    89.6 kB

    Total Files

    53

    Last publish

    Collaborators

    • thzero