Switching fast. Adapt everywhere.
Switcher API is a Feature Manager that allows you to control your application features using feature flags, also known as feature toggles, feature switches, or feature flippers. It is a cloud-based solution that provides a simple and efficient way to manage your features, enabling you to release new features to your users with confidence.
Main features:
- Easy to setup and seamless integration with your application using our lightweight Client SDKs.
- Distributed Switchers can be used across multiple applications allowing you to control features in a centralized fashion.
- 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 specialized application with Switcher Relay.
- Support to multiple teams and granular access control.
- Integrate with Slack usign Switcher Slack App to enable approval workflows.
- Integrate with your CI/CD pipeline to automate feature releases and centralize feature management with Switcher GitOps.
- Detailed metrics and logs to help you to track and monitor your features.
- 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]