All Projects → toggler-io → toggler

toggler-io / toggler

Licence: AGPL-3.0 License
toggler is a feature flag service to decouple deployment, feature enrollment and experiments

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to toggler

Flipper
🐬 Beautiful, performant feature flags for Ruby.
Stars: ✭ 2,732 (+10018.52%)
Mutual labels:  feature-flags, feature-toggles, rollout, feature-toggle
laravel-rollout
A package to integrate rollout into your Laravel project.
Stars: ✭ 23 (-14.81%)
Mutual labels:  feature-flags, feature-toggles, rollout, feature-toggle
eight ball
Ruby gem for querying feature flags
Stars: ✭ 17 (-37.04%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
Unleash
Unleash is the open source feature toggle service.
Stars: ✭ 4,679 (+17229.63%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
featurehub
FeatureHub - cloud native feature flags, A/B testing and remote configuration service. Real-time streaming feature updates. Provided with Java, JavaScript, Go, .Net, Android and Flutter SDKs.
Stars: ✭ 136 (+403.7%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
ld-redux
A library to integrate launch darkly with react redux
Stars: ✭ 33 (+22.22%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
flagsmith-js-client
Javascript Client for Flagsmith. Ship features with confidence using feature flags and remote config. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 42 (+55.56%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
ld-scheduler
Schedule Launch Darkly flags on or off
Stars: ✭ 14 (-48.15%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
doorkeeper
A Feature Toggle for PHP
Stars: ✭ 16 (-40.74%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
flipper
Feature Flipper, Feature Flags, Rollout Flags, Feature Toggles for Crystal
Stars: ✭ 21 (-22.22%)
Mutual labels:  feature-flags, feature-toggles, rollout
php-client
PHP SDK client for Split Software
Stars: ✭ 14 (-48.15%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
ruby-client
Ruby SDK client for Split Software
Stars: ✭ 22 (-18.52%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
js-sdk
JavaScript frontend SDK for ConfigCat. ConfigCat is a hosted feature flag service: https://configcat.com. Manage feature toggles across frontend, backend, mobile, desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.
Stars: ✭ 21 (-22.22%)
Mutual labels:  feature-flags, feature-toggles, feature-toggle
PowerShell-FeatureFlags
PowerShell module containing a Feature Flags implementation based on a local config file.
Stars: ✭ 15 (-44.44%)
Mutual labels:  feature-flags, feature-toggles, rollout
react-client
React JS SDK client for Split Software
Stars: ✭ 23 (-14.81%)
Mutual labels:  feature-flags, feature-toggles
jest-launchdarkly-mock
Easily unit test LaunchDarkly feature flagged components with jest
Stars: ✭ 14 (-48.15%)
Mutual labels:  feature-flags, feature-toggles
YMFF
Feature management made easy.
Stars: ✭ 26 (-3.7%)
Mutual labels:  feature-flags, feature-toggles
CloudKitFeatureFlags
A library that lets you setup feature flagging for your iOS app using CloudKit
Stars: ✭ 91 (+237.04%)
Mutual labels:  feature-flags, feature-toggles
flagsmith-java-client
Java Client for Flagsmith. Ship features with confidence using feature flags and remote config. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 16 (-40.74%)
Mutual labels:  feature-flags, feature-toggles
unleash-docker
Docker container for unleash
Stars: ✭ 89 (+229.63%)
Mutual labels:  feature-flags, feature-toggles

Toggler.io

toggler is a Self hosted Feature and Release Management Service.

The service designed to be hosted on the public web. The service expects that public web request will be received from all kind of sources. Such case is the combined usage from SPA, lambda service and traditional backend services.

It is goal to provide a stable, reliable and free rollout management tooling for teams. By using release flags you can decouple the feature release from the deployment or config change process, also make it simple to keep feature states in sync for all your users.

The project aims only to be just barely enough for the minimal requirement that needed to do centralised feature release management.

Other than percentage based feature enrollment for piloting, every custom decision logic is expected to be implemented by your company trough an HTTP API.

railways-switch

Getting Started

Installation

Local Development

You need to ensure the following dependencies:

  • go compiler (must have)
  • bash (should have)
    • some script is written in bash
  • docker-compose/podman-compose (should have) * + docker/podman
  • direnv (nice to have)
    • alternatively you can just source the .envrc file at the project root directory.

To provision the project, execute the following command:

. .envrc
./bin/provision
docker-compose up --detach

To execute the tests:

go test ./...

With Container

You can build toggler from the master branch by using the Dockerfile:

docker build --tag toggler:latest .

or grab from hub.docker.com:

docker pull adamluzsi/toggler:latest

Configuration

The application can be configured trough either CLI option or with environment variables. It follows the convention that works easily with SaaS platforms or containerization based solutions.

Storage

The storage external resource will be used to persist data, and then using as source of facts.

The toggler doesn't depend on a certain storage system. It use behavior based specification, and has multiple implementation that fulfil this contract. This could potentially remove the burden on your team to introduce a new db just for the sake of the project.

You can choose from the following

  • Postgres
  • InMemory (for testing purposes only)

The Storage connection can be configured trough the DATABASE_URL environment variable or by providing the -database-url cli option to the executable.

To use one of the implementation, all you have to do is to provide the connection string in the CLI option or in the environment variable.

example connection string:

postgres://user:[email protected]:5432/dbname

export DATABASE_URL="postgres://user:[email protected]:5432/dbname"

Cache

Deployment

Usage

Security token creation

To gain access to write and update related actions in the system, you must create a security token that will be used even on the webGUI.

To create a token, execute the following command on the server:

./toggler -cmd create-token "token-owner-uid"

the uniq id of the owner could be a email address for example. The token will be printed on the STDOUT. The token cannot be regained if it is not saved after token creation.

API Documentation

  • HTTP API documentation
  • you can find the swagger documentation at the /swagger.json endpoint.
  • the webgui also provides swagger-ui out of the box on the /swagger-ui path

For Contributors

Feel free to open an issue if you see anything

Thank you for reading about this project! :)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].