1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
Unleash is the open source feature toggle service.
Go to file
Ivar 0cb45f110c Add support for aggregate_strategies in the API.
This commit changes the features-tables:
- drop columns 'strategy' and 'parameters'
- add column 'strategies' of type json.
- migrates existing strategy-mappings in to the new format.

The idea is that the 'strategies' column should contain a json-array
of strategy-configuration for the toggle:

```
[{
 "name" : "strategy1",
 "parameters": { "name": "vale" }
}]

```

To make sure to not break exiting clients the api is extended with a
mapping layer (adding old fields to the json-respons, and mapping
to the new format on create/update a feature toggle.

this commit is first step in solving #102
2020-02-20 08:30:27 +01:00
packages Add support for aggregate_strategies in the API. 2020-02-20 08:30:27 +01:00
.editorconfig eslint config 2020-02-20 08:30:26 +01:00
.eslintignore add eslintignore 2020-02-20 08:30:27 +01:00
.eslintrc eslint config 2020-02-20 08:30:26 +01:00
.gitignore fix frontend and fix deploy to dev-master with lerna 2020-02-20 08:30:27 +01:00
.travis.yml use lerna for multipackaging 2020-02-20 08:30:26 +01:00
lerna.json use lerna for multipackaging 2020-02-20 08:30:26 +01:00
LICENSE Initial commit 2014-09-29 14:50:46 +02:00
package.json Use latest (hopefully last) alpha of eslint config 2020-02-20 08:30:27 +01:00
Procfile fix frontend and fix deploy to dev-master with lerna 2020-02-20 08:30:27 +01:00
README.md Fix linting errors (#145) 2020-02-20 08:30:27 +01:00

unleash

__Warning: We are in the process of splitting up unleash into multiple packages in this repository, if you want to test the previous package see previous tag __

Build Status Code Climate Coverage Status Dependency Status devDependency Status

Admin UI

Demo instance on Heroku

This repo contains the unleash-server, which contains the admin UI and a place to ask for the status of features. In order to make use of unleash you will also need a client implementation.

Known client implementations:

Run with docker

We have set up docker-compose to start postgres and the unleash server together. This makes it really fast to start up unleash locally without setting up a database or node.

You find the docker files inside the packages/unleash-docker folder

$ docker-compose build
$ docker-compose up

Development

Create a local unleash databases in postgres

$ psql postgres <<SQL
CREATE USER unleash_user WITH PASSWORD 'passord';
CREATE DATABASE unleash;
GRANT ALL PRIVILEGES ON DATABASE unleash to unleash_user;
CREATE DATABASE unleash_test;
GRANT ALL PRIVILEGES ON DATABASE unleash_test to unleash_user;
SQL

Then set env vars:

export DATABASE_URL=postgres://unleash_user:passord@localhost:5432/unleash
export TEST_DATABASE_URL=postgres://unleash_user:passord@localhost:5432/unleash_test

Commands

// Install dependencies
npm install

// Run migrations in your local DBs (via unleash-api)
npm run db-migrate
DATABASE_URL=$TEST_DATABASE_URL npm run db-migrate

// Start server
npm start

// Admin dashboard
http://localhost:4242

// Feature API:
http://localhost:4242/features

// Execute tests in all packages:
npm test

Making a schema change

  1. Create migrations/sql/NNN-your-migration-name.up.sql with your change in SQL.
  2. Create migrations/sql/NNN-your-migration-name.down.sql with the rollback of your change in SQL.
  3. Run db-migrate create your-migration-name and edit the generated file to have this line: module.exports = require('../scripts/migration-runner').create('NNN-your-migration-name');
  4. Run db-migrate up.
  5. Generate LB artifact using scripts/generate-liquibase-artifact (TODO: make this internal)

Publishing / Releasing new packages

Please run npm run nsp nad npm run lint checks before publishing.

Run npm run publish to start the publishing process. Lerna is setup with independent versioning so you will be prompted with version per package, and lerna will update all the versions across packages.

npm run publish:dry