The Frank API Gateway is based on Apache APISIX, see https://apisix.apache.org/ for an introduction to Apache APISIX.
The main characteristics of Apache APISIX are:
- Fully Open Source – part of the Apache foundation as a top level project with large contributor base
- Run everywhere (including ARM64)
- Bare metal
- Kubernetes
- Cloud
- VM
- Pluggable configuration based on a rich plugin ecosystem
- Top ranked for performance
The Frank API Gateway is a superset of Apache APISIX.
- Improved functionality for SOAP services
- Routing based on SOAP action
- Analytics based on SOAP action
- FSC NLX Inway
- Can act as a Inway in a FSC NLX group
- Can combine the FSC NLX Inway with different APISIX plugins
This repository contains two components:
- deployment configurations & examples which can be found on the directory
deployment-examples - source code for custom plugins
The Frank!Gateway can be built using the following command:
docker build --build-arg BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') -t frank-api-gateway .Minimum:
| Resource | Minimum |
|---|---|
| CPU | 1 vCPU |
| Memory | 256–512 MB RAM |
| Storage | 1+ GB container image + logs |
Recommended:
| Resource | Recommended |
|---|---|
| CPU | 2 vCPU |
| Memory | 1–2 GB RAM |
| Storage | 1+ GB container image + logs |
Versioning & Release Strategy
This project follows Semantic Versioning (SemVer):
MAJOR.MINOR.PATCH
Example:
v1.2.3
The directory deployment-examples contains four deployment scenarios for deploying APISIX. Note, this deploys vanilla APISIX without the FSC plugin.
The goal of these deployment examples is for experimenting with Apache APISIX in different deployment approaches.
Without any prior Apache APISIX experience it is recommended to start with the docker-compose deployment-example since this is the easiest one to get started.
The docker-compose deployment does contain the improved SOAP functionality mentioned above.
- docker-compose -> deploys APISIX via Docker compose instructions
- kind -> deploys APISIX in normal mode on a local Kubernetes cluster using Kind instructions
- kind-ingress -> deploys APISIX as a Kubernetes ingress on a local cluster using Kind instructions
- rancher -> deploys APISIX as a Kubernetes ingress on the WAF rancher cluster instructions
Custom plugins have been created for the Frank!Gateway enhancing the functionality.
The following plugins have been created:
- FSC
- SOAP action router
- OIDC client
- Generic OAuth client
- Limit size
- Response extractor
- Cert Auth
- Frank sender
- JWT client
- OPA