bin | ||
docs | ||
lib | ||
migrations | ||
scripts | ||
test | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc | ||
.gitignore | ||
.travis.yml | ||
app.js | ||
LICENSE | ||
migrator.js | ||
package.json | ||
Procfile | ||
README.md | ||
server-dev.js | ||
server-impl.js |
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 __
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:
Project details
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
// Build unleash-frontend
// (yes this is a bit wierd and be easier when we have a release of the frontend artifact).
// You can of course "npm link unleash-frontend" instead
cd node_modules/unleash-frontend && npm install
// Start server in development
npm start:dev
// Admin dashboard
http://localhost:4242
// Feature API:
http://localhost:4242/api/features
// Execute tests in all packages:
npm test
Making a schema change
- Create
migrations/sql/NNN-your-migration-name.up.sql
with your change in SQL. - Create
migrations/sql/NNN-your-migration-name.down.sql
with the rollback of your change in SQL. - 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');
- Run
db-migrate up
. - 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