nCodefresh / tweek

Tweek - an open source feature management solution

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Codefresh build status License Dependency Status
tweek@soluto.com

What is Tweek?

Tweek is an open source feature management solution for customizing applications and system behavior without deploying new code.

Tweek aims to be a complete open-source alternative to other industry feature/configuration/experiment management solutions such as Facebook's Gatekeeper, LinkedIn's XLNT, Dropbox's Stormcrow and other commercial SaaS solutions...

Features

  • Feature toggles, gradual release
  • Multi-variant experiments, A/B testing
  • Built-in Editor with user friendly UI
  • Hierarchical configurations
  • Advanced targeting of users/groups
  • Dependencies between features
  • Customizable schema/domain model
  • Auditing
  • Integrated storage for saving context
  • Container friendly
  • Integrated OAuth support
  • Pluggable storage backend
  • Simple RESTful api for fetching configurations
  • Scalable

Getting Started

The easiest way to start evaluating Tweek is to run it locally on docker, make sure you have the latest docker (for windows/mac/etc..) version installed (17-06+).

Running Tweek

  • clone the repo (git clone https://github.com/Soluto/tweek.git)
  • go to deployments/dev (cd tweek/deployments/dev)
  • (optional) pull the images instead of building (docker-compose pull --parallel)
  • run (docker-compose up)

Edit your first key

  • Open http://editor.dev.local.tweek.fm:81 in browser.
  • Go to keys page.
  • Click on "Add New Key"
  • Type my_app/sign_button/color
  • Set value type to String
  • Add default value "red"
  • Save changes
  • Click on "Add Rule"
  • Set Property to Country (user) and set "=" and "Canada" in the other fields
  • In Rule value set the value "blue"

Querying Tweek

Use curl/postman/chrome to fire GET Request:

More on Tweek Rest api. (link)

Adding context data

Using the API, use curl/postman to fire POST Request:

After that, we can query Tweek API with:

More on Context.

Gradual Feature Release

Create new key in the editor "my_app/sign_button/is_enabled" with value type "boolean" and default value False.
Add new rule, remove all conditions, set the the rule value to gradual release with 50%. Try querying configuration with different users and You'll have different results.

More on how multi-varaint keys work in Tweek. (link)

Deployment to production

FAQ

  • Who's using Tweek?
    Tweek is been used in large scale production deployment in Soluto.

Related projects

Tweek.JPad - Tweek's internal rules engine

Additional Resources

About

Tweek - an open source feature management solution

License:MIT License


Languages

Language:JavaScript 44.8%Language:CSS 32.3%Language:C# 22.6%Language:HTML 0.2%Language:Shell 0.1%