Git Product home page Git Product logo

tweek's Introduction

Codefresh build status License Slack CircleCIcode style: prettier

[email protected]

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)
  • run (yarn start) - this might take a few minutes for the first time

Edit your first key

After setting up our environment, we're going to create our first key. Keys in tweek are the most basic building blocks and they reperesent a container for dynamic value that affect feature behaviors. Our first key, will be a key that responsible for the the color of a "sign up" button.

  • Open http://editor.dev.tweek.localtest.me:81 in browser.
  • Go to keys page.
  • Click on "Add 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"
  • Click "Save changes"

More on keys and paths

Querying Tweek

Use curl/postman/chrome to fire GET Request:

Using the rest api, an application can query Tweek for getting the right set of values for each specific user. More on Tweek Rest api.

Adding context data

Tweek provide's REST api for saving 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 at Soluto.
  • How do I generate ssh keys and a pfx file for use in production?
    There's a script for this purpose in utils/generate_keys.sh
  • I found a security vulnerability, should I open an issue about it?
    No. Please send an email to [email protected].

Related projects

Tweek-Clients - Tweek REST clients
Tweek.JPad - Tweek's internal rules engine

Additional Resources

tweek's People

Contributors

alef83 avatar amirpupkosoluto avatar asafkotzer avatar brandonevansasurion avatar bryan-hunter avatar daonb avatar dvirsh avatar eyal-levy avatar gilm123 avatar michaelkruglos avatar nataly87s avatar nogashimoni avatar omerlh avatar orrosenblatt avatar rosensj avatar shayams avatar snyk-bot avatar talarari avatar talgsoluto avatar tweek-renovate avatar yaron-idan avatar yshayy avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.