Pub Sub Security API Developer Guide

Install / Repository

Follow instructions of the

Technology Stack

  • Typescript (Javascript Superset)
  • NestJS (Node.js Framework)
    • Swagger (Documentation)
    • Mongoose (MongoDB ODM)
  • MongoDB (Document-Database)


  • abstract-pub-sub
    • Abstracts interaction with own db for topics/permissions/credentials
  • authentication
    • Handles initial rabbitmq account creation
  • message-bus
    • Abstracts and wrapps rabbitmqs http endpoint
  • resource
    • Handles interaction with own db for resources
  • service-registry
    • Handles interaction with the external service registry

Every part has (most of the time) a controller (for handling the request), a service (for handling the overall work), a module (for grouping everything into one “thing”) and interfaces. The interfaces can be of different type: dto (information that is passed by the request), entities (information about the db structure)

Database Structures

  • Resource is a thing that might include multiple
    • Topics are for the given machine etc and have
      • credentials contain information about consume/produce

Style / Lint

Basic JS styling and linting rules are used. These are enforced by prettier and eslint.

Just run npm run format and npm run lint to automatically apply them and see other warnings.