Public Repository

Last pushed: 2 months ago
Short Description
Short description is empty for this repo.
Full Description

<img src="https://soluto.github.io/docs.tweek.fm/assets/logo-with-background.png" width="400" />

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 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 security@soluto.com.

Related projects

Tweek.JPad - Tweek's internal rules engine

Additional Resources

Docker Pull Command
Owner
soluto

Comments (0)