GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - 3scale/APIcast: 3scale API Gateway

BranchesTags
Open more actions menu

Latest commit

 

History

4,119 Commits
4,119 Commits

Folders and files

NameName
Last commit message
Last commit date
.circleci
.circleci
 
 
.github
.github
 
 
benchmark
benchmark
 
 
bin
bin
 
 
dependencies
dependencies
 
 
dev-environments
dev-environments
 
 
doc
doc
 
 
examples
examples
 
 
fixtures
fixtures
 
 
gateway
gateway
 
 
script
script
 
 
spec
spec
 
 
t
t
 
 
.busted
.busted
 
 
.codeclimate.yml
.codeclimate.yml
 
 
.codecov.yml
.codecov.yml
 
 
.dockerignore
.dockerignore
 
 
.env
.env
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
.lgtm
.lgtm
 
 
.luacheckrc
.luacheckrc
 
 
.luacov
.luacov
 
 
.mailmap
.mailmap
 
 
3scale-gateway-openshift-template.yml
3scale-gateway-openshift-template.yml
 
 
3scale-portal-endpoint-secret.yml
3scale-portal-endpoint-secret.yml
 
 
Brewfile
Brewfile
 
 
CHANGELOG.md
CHANGELOG.md
 
 
Containerfile
Containerfile
 
 
Dangerfile
Dangerfile
 
 
Dockerfile
Dockerfile
 
 
Dockerfile.devel
Dockerfile.devel
 
 
LICENSE
LICENSE
 
 
MAINTAINERS
MAINTAINERS
 
 
Makefile
Makefile
 
 
NOTICE
NOTICE
 
 
README.md
README.md
 
 
Vagrantfile
Vagrantfile
 
 
config-5.1.lua
config-5.1.lua
 
 
docker-compose-devel-volmount-default.yml
docker-compose-devel-volmount-default.yml
 
 
docker-compose-devel-volmount-mac.yml
docker-compose-devel-volmount-mac.yml
 
 
docker-compose-devel.yml
docker-compose-devel.yml
 
 
docker-compose.benchmark.yml
docker-compose.benchmark.yml
 
 
docker-compose.prove.yml
docker-compose.prove.yml
 
 
docker-compose.yml
docker-compose.yml
 
 
luarocks.config
luarocks.config
 
 
markdown-lint-check-config.json
markdown-lint-check-config.json
 
 
openresty.repo
openresty.repo
 
 
package.json
package.json
 
 
rockspec
rockspec
 
 
schema.json
schema.json
 
 
site_config.lua
site_config.lua
 
 
yarn.lock
yarn.lock
 
 

Repository files navigation

APIcast

CircleCI Docker Repository on Quay codecov

APIcast is an API gateway built on top of NGINX. It is part of the Red Hat 3scale API Management Platform.

  • Getting started
  • Features
  • Development
  • Documentation
  • License

Getting started

master branch is not recommended for production use. For the latest release, go to the Releases page

Docker

You need to specify an ACCESS_TOKEN, that you can get from the 3scale admin portal, and also your ADMIN_PORTAL_DOMAIN. If you are using SaaS, it is YOUR_ACCOUNT-admin.3scale.net.

docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://ACCESS_TOKEN@ADMIN_PORTAL_DOMAIN quay.io/3scale/apicast:master

You can use a JSON configuration file instead:

docker run --name apicast --rm -p 8080:8080 -v $(pwd)/config.json:/opt/app/config.json:ro -e THREESCALE_CONFIG_FILE=/opt/app/config.json quay.io/3scale/apicast:master

In this example config.json is located in the same directory where the docker command is executed, and it is mounted as a volume at /opt/app/config.json. :ro indicates that the volume will be read-only.

The JSON file needs to follow the schema, see an example file with the fields that are used by APIcast.

Openshift

You need to create a secret with your ACCESS_TOKEN and your ADMIN_PORTAL_DOMAIN:

oc create secret generic apicast-configuration-url-secret \
   --from-literal=password=https://ACCESS_TOKEN@ADMIN_PORTAL_DOMAIN \
   --type=kubernetes.io/basic-auth
oc new-app -f https://raw.githubusercontent.com/3scale/apicast/master/openshift/apicast-template.yml

Features

  • Performance: it is fast because it's built on top of NGINX and uses LuaJIT.
  • Scalability: APIcast is stateless, so it scales horizontally.
  • Request transformation: allows to modify the headers, the path and the arguments of a request.
  • Rate-limit: can apply limits based on a header, JWT claims, the IP of the request and many more.
  • Modular and extensible: thanks to the APIcast policies framework.
  • Monitoring with Prometheus.
  • NGINX instrumentation using OpenTelemetry. Works with Jaeger.
  • Can be deployed in Openshift.
  • Integrates with IDPs like Keycloak to provide authentication based on OIDC.

Development

Using Docker you just need to run:

make development

That will create a Docker container and run bash inside it. The project's source code will be available in the container and sync'ed with your local apicast directory, so you can edit files in your preferred environment and still be able to run whatever you need inside the Docker container.

To install the dependencies inside the container run:

make dependencies

To run the unit tests inside the container:

make busted

To run the integration tests inside the container:

make prove

To learn about the other available make targets:

make help

APIcast uses:

  • OpenResty: a platform that includes NGINX, LuaJIT and Lua modules.
  • busted: for the unit tests.
  • Test::Nginx: for the integration tests.

More info can be found in the development specific doc.

Documentation

  • Configuration parameters
  • Get started with Lua and OpenResty
  • Learn about policies and write your own
  • Available Prometheus metrics
  • Management API
  • Contribute

License

Apache 2.0

About

3scale API Gateway

Topics

3scaleapi-gatewayopenresty

Resources

Readme
Apache-2.0 license

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

323 stars

Watchers

32 watching

Forks

175 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.