Switching fast. Adapt everywhere.
Switcher API is a Feature Flag API with the main focus on decreasing the friction caused by changes while keeping control of what really matters.
Main features:
-
Easy to setup and seemless integration with your application using our lightweight Client SDKs.
-
Shareable Switchers can be used across multiple applications with high support to observability.
-
Multi-environment support. Create and manage features across different environments.
-
Add extra layer of verification with custom conditions using Strategies.
-
Delegate Switcher criteria decision to external services with Switcher Relay.
-
Support to multiple teams and granular access control.
-
Integrate with Slack usign Switcher Slack App to enable release flow requests.
-
Detailed metrics and logs to help you understand how your features are being used.
-
Open Source and free to use.
-
JS Client SDK: (https://github.com/switcherapi/switcher-client-js)
-
Deno Client SDK: (https://github.com/switcherapi/switcher-client-deno)
-
Java Client SDK: (https://github.com/switcherapi/switcher-client-java)
-
Switcher Management: (https://github.com/switcherapi/switcher-management)
-
Switcher Slack App: (https://github.com/switcherapi/switcher-slack-app)
- npm ci
- Add .env-cmdrc file into the project directory (use '.env-cmdrc-template')
- Replace values such as secret keys and URLs
This option leverages Switcher API and Switcher Management with minimum settings required.
- Modify the configuration file "config/.env.dev":
- JWT_SECRET: With your secure private key
- SWITCHERAPI_URL: The Switcher API URL that Switcher Management will use internally
- SM_IP: IP/DNS used by Switcher Management internal redirects
- Run:
docker-compose --env-file ./config/.env.dev up -d
- Open Switcher Management:
http://localhost
Open Swagger UI by accessing the URL: http://localhost:3000/api-docs
Or use Postman by importing either the OpenAPI json from http://localhost:3000/swagger.json or Postman Collection from "requests/Switcher API*"
Signing up an account to use Switcher API with an email/password or linking it to a GitHub or Bitbucket account.
- Singing up via email - Admin: /admin/signup [POST]
- Singing up via GitHub - Admin: /admin/github/auth?code= [POST]
- Singing up via Bitbucket - Admin: /admin/bitbucket/auth?code= [POST]
- Access confirmation - Admin: /admin/signup/authorization?code= [POST]
Domains are responsible for centralizing all settings and configurations.
It is equivalent to an organization that can manage multiple projects, users, and environments.
- New domain - Domain: /domain/create [POST]
Components are applications that are using Switcher API.
Each component has its own access token and needs to be linked to Switchers.
- Create a component - Component: /component/create [POST]
- Generating a new API Key - Component: /component/generateApiKey [GET]
Groups are used to organize Switchers that share the same feature scope.
- New Group - GroupConfig: /groupconfig/create [POST]
Switchers are the main entities to control features.
- New Switcher - Config: /config/create [POST]
Customize the behavior of the Switcher by including strategy rules to your Switchers.
- New Strategy - ConfigStrategy: /configstrategy/create [POST]
In order to use Switcher API, you need to authenticate the component before using it.
See also our SDKs to integrate Switcher API with your application.
- Auth - Client API: /criteria/auth [POST]
- Executing - Client API: /criteria?key=SWITCHER_KEY [POST]