• Stars
    star
    123
  • Rank 288,481 (Top 6 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 8 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An API Management system based on Mashape Kong

Wicked Good API Management!

wicked.haufe.io Logo

General information can be seen at the wicked microsite over at wicked.haufe.io. If you want to see how the API Portal looks like, check out wicked-demo.haufe.io. You may also want to try out our Gitter Chatroom.


tl;dr: Getting Started (kicking the tires)

Install the wicked CLI:

$ npm install -g wicked-cli

Create a directory for the wicked configuration repository:

$ mkdir wicked-test
$ cd wicked-test

Specify you want to use the latest stable release and start the kickstarter (you will need Docker installed):

$ wicked tags set latest
$ wicked kickstart --new .

Now press Ctrl-C to stop the configuration. Then run a Postgres instance and Wicked-in-a-box:

$ wicked postgres start
$ wicked box start .

Wait around 10 seconds, then open the API portal at http://localhost:3000. You can play around with the user [email protected] and password wicked.

Still interested? Good. Now you can continue reading on this page.


What's this?

wicked.haufe.io is an open source API Management solution with a slightly different design focus in mind than most other API Management systems:

  • Deploy your API Management using your own deployment pipelines, you have full control
  • Store your API configuration in source control and do CI/CD with your API Gateway
  • Run your API Management on any premises you want, as long as docker is supported

We wrote wicked.haufe.io because we wanted an open source API Management solution we can just "drop in" everywhere. We believe that each team which operates a service should also operate their own API Gateway and Portal, to make it easier for others to consume their services. Most commercial solutions are too pricey not to deploy centrally, but we believe in decentralization also with API Management, and that's what wicked.haufe.io can do: API Management for everyone, for free, anywhere (where you can run docker), with a small footprint.

What's in the box?

When you use wicked.haufe.io, you get the following things out of the box:

  • A great API Gateway (this is Mashape Kong underneath! Good stuff!)
  • A developer portal which enables your developers to sign up for an API by themselves
    • Supports ADFS, Google and Github logins
    • Support for SAML2 login
    • Support for generic OAuth2 logins (also with user_info profile loading)
    • Local accounts (managed by wicked)
    • API for arbitrary username/password checking, e.g. against legacy databases
    • LDAP
  • Integrated Swagger (OpenAPI) support
  • A lightweight CMS based on your static configuration, coming straight from source control
  • Support for API Keys and most of OAuth 2.0, out of the box.
    • Client Credentials Flow
    • Authorization Code Grant Flow, including PKCE extension, with any supported identity provider (same as for portal login)
    • Implicit Grant Flow
    • Resource Owner Password Grant, for those Identity Providers supporting it (local login, OAuth2, external sources)
  • Most visual things can be fully customized by configuration, including logos and stylesheets
  • A stringent deployment strategy, enforcing immutable servers and infrastructure as code (leveraging docker)

And much more... what's your main reason to use wicked.haufe.io? Tell us!

What's your main reason not to use wicked.haufe.io? Then we're even more curious!

What's not in the box?

The following things which you might expect from an API Management System are explicitly not in the box:

  • API Analytics
  • Log Aggregation

This does not mean it's not possible to do this with wicked, it's just that we decided not to include a prebuilt solution for these things. As the API Gateway is based on a plain vanilla docker image of Mashape Kong, anything you can hook up to Kong, or plain Docker log forwarding will also work with wicked.haufe.io, including e.g. DataDog, Runscope or Loggly.

Is this for me?

If you are looking for a SaaS API Management do-it-all-for-me type of solution, wicked.haufe.io is not for you.

If you are looking for a super flexible and extensible API Management suite which will tie in with any environment and any type of deployment, wicked.haufe.io is very much for you.

Getting Started

Related repositories

The following folders contain the actual source code (this repo contains mostly documentation):

  • wicked.ui: The API Portal UI
  • wicked.api: The API Portal backend API
  • wicked.auth: The wicked Authorization Server implementation, using different social logins or SAML to authorize API usage and Portal login
  • wicked.kong-adapter: The API Portal's Kong Adapter service
  • wicked.mailer: The API Portal's Mailer service
  • wicked.chatbot: The API Portal' Chatbot service
  • wicked.kickstarter: The API Portal's Configuration Editor and Kickstarter
  • wicked.tools: Developer Tooling and sample integration code
  • wicked.test: The Integration Test Suite
  • wicked.kong: The Kong Docker image used by the API Portal, based on the official Kong docker images, kong
  • wicked.k8s-init: A dedicated wicked init container for Kubernetes to automatically provision client credentials to applications
  • wicked.k8s-tool: A tool container for special purposes when deploying the Kubernetes

Most wicked components (at least the ones written in node.js) also rely on the wicked SDK for node.js:

More documentation

Screenshots

Home page

Logged in

API screen

More Repositories

1

api-style-guide

Haufe API Style Guide
229
star
2

docker-style-guide

Haufe Docker Style Guide
CSS
51
star
3

gocd-plugins

A collection of our OSS plugins for use with Go.CD
Java
36
star
4

azure-apim-deployment-utils

Python utilities to extract, update and deploy to and from Azure API Management instances
Python
14
star
5

haufe.no-frills-transformation

No frills transformation engine, just does the bare necessities. And a little bit more perhaps.
C#
10
star
6

Logging---Best-Practices

... in the era of devops, log information and other machine data (e.g. runtime metrics, ...) are even more important when combined with automatic processing, analytics and alerting for service/support and product development. Here are some guidelines to make life a bit easier.
10
star
7

pushgateway-pruner

Pruning Groupings for the Prometheus Pushgateway - You will not want to use this, but if you do, it might suit you well
JavaScript
9
star
8

eloqua-contract-to-form-action-service

Offers the possibility to the marketer to choose and configure a form with contact information.
JavaScript
6
star
9

roham

Save AWS costs by stopping/terminating/starting Instances on schedules defined by you
Python
6
star
10

open-source

Haufe-Lexware Open Source Policy
5
star
11

hlro.condica

Worktime tracking web app.
JavaScript
4
star
12

demo-authorized-spring-config-server

Demo of a Spring Cloud Config server that requires basic authentication. Clients read the credentials from vault and configure their config client by facilitating Spring Cloud Config's auto-discovery support.
Java
3
star
13

hl.plone.boardnotifications

Python
2
star
14

k8s-deploy-env

A base docker image for creating Kubernetes Deployment using node.js scripting and kubectl
2
star
15

demo-spring-boot-tls-material-from-vault

Java
2
star
16

wicked.auth-passport

ADFS and Social Authentication for securing your APIs using the OAuth 2.0 Implicit or Authorization Code Grants
JavaScript
2
star
17

acs-engine-runtime

Utility to create a minimal docker runtime image for acs-engine
Shell
2
star
18

PrintMonitor

Rich Text Format
1
star
19

octane-gocd-plugin

This plugin integrates GoCD with HPE ALM Octane. Making GoCD pipelines accessible in HPE ALM Octane and allowing to analyze build quality and test results.
Java
1
star
20

hl.pas.samlplugin

Python
1
star
21

wicked.mobile-auth-template

Template for creating an OAuth2.0 Resource Owner Password Grant type Authorization Server, suitable for a Mobile API Gateway
JavaScript
1
star
22

wicked.auth-saml

Authorization Server with flexible configuration suited for SAML SSO for wicked.haufe.io
JavaScript
1
star