saasify-faas-proxy

1.20.0 • Public • Published

Saasify Logo

saasify-faas-proxy

Customizable FaaS proxy which can be deployed in front of a Saasify FaaS.

NPM Build Status JavaScript Style Guide

Install

npm install --save saasify-faas-proxy

Intro

This package is meant for advanced customization of Saasify FaaS where you want to hide the Saasify API in your own white-labeled API endpoints.

As an example, instead of your API users's referencing: https://ssfy.sh/username/project/servicePath, you could have them reference https://myapi.io/servicePath.

This is useful for two main reasons:

  1. It's shorter than the default Saasify FaaS URLs.
  2. It doesn't reference Saasify at all so your API can stay on-brand.

It also allows you to add additional custom servicePath transformations like forwarding https://myapi.io to some default service https://ssfy.sh/username/project/defaultServicePath.

Koa

This package requires you to use Koa, but it should be easy to convert the logic to work with other Node.js webservers.

Usage

This example forwards all requests to the default faasUrl (https://ssfy.sh), without changing the URL path.

const Koa = require('koa')
const proxy = require('saasify-faas-proxy')
 
const app = new Koa()
 
app.use(proxy())
 
app.listen(3000)

This example forwards all requests to the default faasUrl (https://ssfy.sh), prefixing the URL path via our deployment's identifier foo/hello-world.

In this example, foo would be the username and hello-world would be the project name. The deployment version would implicitly be the latest published version.

const Koa = require('koa')
const proxy = require('saasify-faas-proxy')
 
const app = new Koa()
 
app.use(
  proxy({
    getPath: (ctx) => `foo/hello-world/${ctx.req.path}`
  })
)
 
app.listen(3000)

API

getSaasifyFaasProxy

Koa proxy middleware meant for easily setting up custom API proxies in front of Saasify.

By default, opts.getPath = (ctx) => ctx.req.path which uses the incoming request's path as the target path without any transforms.

  • opts object? Config options.
    • opts.faasUrl string Base URL to proxy FaaS requests downstream. (optional, default 'https://ssfy.sh')
    • opts.logger object Logger (console or winston instancd). (optional, default console)
    • opts.getPath object? Function to extract the target URL's path from the given request context.

Related

  • saasify - Saasify is the easiest way to launch your own SaaS.

License

MIT © Saasify

Package Sidebar

Install

npm i saasify-faas-proxy

Weekly Downloads

0

Version

1.20.0

License

MIT

Unpacked Size

9.52 kB

Total Files

5

Last publish

Collaborators

  • fisch0920