mirror of
https://github.com/Unleash/unleash.git
synced 2024-10-18 20:09:08 +02:00
0c78980502
* wip: environment for permissions * fix: add migration for roles * fix: connect environment with access service * feat: add tests * chore: Implement scaffolding for new rbac * fix: add fake store * feat: Add api endpoints for roles and permissions list * feat: Add ability to provide permissions when creating a role and rename environmentName to name in the list permissions datastructure * fix: Make project roles resolve correctly against new environments permissions structure * fix: Patch migration to also populate permission names * fix: Make permissions actually work with new environments * fix: Add back to get permissions working for editor role * fix: Removed ability to set role type through api during creation - it's now always custom * feat: Return permissions on get role endpoint * feat: Add in support for updating roles * fix: Get a bunch of tests working and delete a few that make no sense anymore * chore: A few small cleanups - remove logging and restore default on dev server config * chore: Refactor role/access stores into more logical domains * feat: Add in validation for roles * feat: Patch db migration to handle old stucture * fix: migration for project roles * fix: patch a few broken tests * fix: add permissions to editor * fix: update test name * fix: update user permission mapping * fix: create new user * fix: update root role test * fix: update tests * feat: Validation now works when updating a role * fix: Add in very barebones down migration for rbac so that tests work * fix: Improve responses from role resolution - getting a non existant role will throw a NotFound error * fix: remove unused permissions * fix: add test for connecting roles and deleting project * fix: add test for adding a project member with a custom role * fix: add test for changing user role * fix: add guard for deleting role if the role is in use * fix: alter migration * chore: Minor code cleanups * chore: Small code cleanups * chore: More minor cleanups of code * chore: Trim some dead code to make the linter happy * feat: Schema validation for roles * fix: setup permission for variant * fix: remove unused import * feat: Add cascading delete for role_permissions when deleting a role * feat: add configuration option for disabling legacy api * chore: update frontend to beta version * 4.6.0-beta.0 * fix: export default project constant * fix: update snapshot * fix: module pattern ../../lib * fix: move DEFAULT_PROJECT to types * fix: remove debug logging * fix: remove debug log state * fix: Change permission descriptions * fix: roles should have unique name * fix: root roles should be connected to the default project * fix: typo in role-schema.ts * fix: Role permission empty string for non environment type * feat: new permission for moving project * fix: add event for changeProject * fix: Removing a user from a project will now check to see if that project has an owner, rather than checking if any project has an owner * fix: add tests for move project * fix: Add in missing create/delete tag permissions * fix: Removed duplicate impl caused by multiple good samaritans putting it back in! * fix: Trim out add tag permissions, for now at least * chore: Trim out new add and delete tag permissions - we're going with update feature instead * chore: update frontend * 4.6.0-beta.1 * feat: Prevent editing of built in roles * fix: Patch an issue where permissions for variants/environments didn't match the front end * fix: lint Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com> Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
201 lines
5.5 KiB
JSON
201 lines
5.5 KiB
JSON
{
|
|
"name": "unleash-server",
|
|
"description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
|
|
"version": "4.6.0-beta.1",
|
|
"keywords": [
|
|
"unleash",
|
|
"feature toggle",
|
|
"feature",
|
|
"toggle"
|
|
],
|
|
"files": [
|
|
"dist",
|
|
"docs"
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "ssh://git@github.com:unleash/unleash.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/unleash/unleash/issues"
|
|
},
|
|
"types": "./dist/lib/server-impl.d.ts",
|
|
"engines": {
|
|
"node": ">=14"
|
|
},
|
|
"license": "Apache-2.0",
|
|
"main": "./dist/lib/server-impl.js",
|
|
"scripts": {
|
|
"start": "node ./dist/server.js",
|
|
"prestart:dev": "yarn run clean",
|
|
"start:dev": "NODE_ENV=development tsc-watch --onSuccess \"node dist/server-dev.js\"",
|
|
"copy-templates": "copyfiles -u 1 src/mailtemplates/**/*.mustache dist/",
|
|
"db-migrate": "db-migrate --migrations-dir ./src/migrations",
|
|
"lint": "eslint ./src",
|
|
"prebuild:watch": "yarn run clean",
|
|
"build:watch": "tsc -w",
|
|
"prebuild": "yarn run clean",
|
|
"build": "yarn run copy-templates && tsc --pretty",
|
|
"prepare": "yarn run build",
|
|
"test": "NODE_ENV=test PORT=4243 jest",
|
|
"test:docker": "./scripts/docker-postgres.sh",
|
|
"test:docker:cleanup": "docker rm -f unleash-postgres",
|
|
"test:watch": "yarn test --watch",
|
|
"test:coverage": "NODE_ENV=test PORT=4243 jest --coverage --forceExit",
|
|
"test:coverage:jest": "NODE_ENV=test PORT=4243 jest --silent --ci --json --coverage --testLocationInResults --outputFile=\"report.json\" --forceExit",
|
|
"clean": "del-cli --force dist"
|
|
},
|
|
"jest": {
|
|
"automock": false,
|
|
"maxWorkers": 4,
|
|
"setupFiles": [
|
|
"./setupJest.js"
|
|
],
|
|
"transform": {
|
|
"^.+\\.tsx?$": "ts-jest"
|
|
},
|
|
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
|
|
"testPathIgnorePatterns": [
|
|
"/dist/",
|
|
"/node_modules/"
|
|
],
|
|
"moduleFileExtensions": [
|
|
"ts",
|
|
"tsx",
|
|
"js",
|
|
"jsx",
|
|
"json"
|
|
],
|
|
"coveragePathIgnorePatterns": [
|
|
"/node_modules/",
|
|
"/dist/",
|
|
"/src/migrations",
|
|
"/src/test"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"async": "^3.1.1",
|
|
"bcryptjs": "^2.4.3",
|
|
"compression": "^1.7.4",
|
|
"connect-session-knex": "^2.1.0",
|
|
"cookie-parser": "^1.4.5",
|
|
"cookie-session": "^2.0.0-rc.1",
|
|
"cors": "^2.8.5",
|
|
"date-fns": "^2.25.0",
|
|
"db-migrate": "0.11.13",
|
|
"db-migrate-pg": "1.2.2",
|
|
"db-migrate-shared": "1.2.0",
|
|
"deepmerge": "^4.2.2",
|
|
"errorhandler": "^1.5.1",
|
|
"express": "^4.17.1",
|
|
"express-session": "^1.17.1",
|
|
"fast-json-patch": "^3.1.0",
|
|
"gravatar-url": "^3.1.0",
|
|
"helmet": "^5.0.0",
|
|
"joi": "^17.3.0",
|
|
"js-yaml": "^4.1.0",
|
|
"knex": "0.95.15",
|
|
"log4js": "^6.0.0",
|
|
"memoizee": "^0.4.15",
|
|
"mime": "^2.4.2",
|
|
"multer": "^1.4.1",
|
|
"mustache": "^4.1.0",
|
|
"node-fetch": "^2.6.1",
|
|
"nodemailer": "^6.5.0",
|
|
"owasp-password-strength-test": "^1.3.0",
|
|
"parse-database-url": "^0.3.0",
|
|
"pg": "^8.7.1",
|
|
"pg-connection-string": "^2.5.0",
|
|
"pkginfo": "^0.4.1",
|
|
"prom-client": "^14.0.0",
|
|
"response-time": "^2.3.2",
|
|
"serve-favicon": "^2.5.0",
|
|
"stoppable": "^1.1.0",
|
|
"unleash-frontend": "4.6.0-beta.1",
|
|
"uuid": "^8.3.2"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "7.16.7",
|
|
"@types/bcryptjs": "2.4.2",
|
|
"@types/express": "4.17.13",
|
|
"@types/express-session": "1.17.4",
|
|
"@types/faker": "5.5.9",
|
|
"@types/jest": "27.4.0",
|
|
"@types/js-yaml": "4.0.5",
|
|
"@types/memoizee": "0.4.7",
|
|
"@types/mime": "2.0.3",
|
|
"@types/node": "16.6.1",
|
|
"@types/node-fetch": "2.5.12",
|
|
"@types/nodemailer": "6.4.4",
|
|
"@types/owasp-password-strength-test": "1.3.0",
|
|
"@types/stoppable": "1.1.1",
|
|
"@types/supertest": "2.0.11",
|
|
"@types/uuid": "8.3.4",
|
|
"@typescript-eslint/eslint-plugin": "5.9.1",
|
|
"@typescript-eslint/parser": "5.9.1",
|
|
"copyfiles": "2.4.1",
|
|
"coveralls": "3.1.1",
|
|
"del-cli": "4.0.1",
|
|
"eslint": "8.6.0",
|
|
"eslint-config-airbnb-base": "15.0.0",
|
|
"eslint-config-airbnb-typescript": "16.0.0",
|
|
"eslint-config-prettier": "8.3.0",
|
|
"eslint-plugin-import": "2.25.4",
|
|
"eslint-plugin-prettier": "4.0.0",
|
|
"faker": "5.5.3",
|
|
"fetch-mock": "9.11.0",
|
|
"husky": "7.0.4",
|
|
"jest": "27.4.7",
|
|
"jest-fetch-mock": "3.0.3",
|
|
"lint-staged": "12.1.7",
|
|
"prettier": "2.5.1",
|
|
"proxyquire": "2.1.3",
|
|
"source-map-support": "0.5.21",
|
|
"superagent": "6.1.0",
|
|
"supertest": "6.2.1",
|
|
"ts-jest": "27.1.2",
|
|
"ts-node": "10.4.0",
|
|
"tsc-watch": "4.6.0",
|
|
"typescript": "4.5.4"
|
|
},
|
|
"resolutions": {
|
|
"db-migrate/rc/minimist": "^1.2.5",
|
|
"knex/liftoff/object.map/**/kind-of": "^6.0.3",
|
|
"knex/liftoff/findup-sync/micromatc/kind-of": "^6.0.3",
|
|
"knex/liftoff/findup-sync/micromatc/nanomatch/kind-of": "^6.0.3",
|
|
"knex/liftoff/findup-sync/micromatch/define-property/**/kind-of": "^6.0.3",
|
|
"node-forge": "^1.0.0",
|
|
"set-value": "^4.0.1",
|
|
"ansi-regex": "^5.0.1",
|
|
"ssh2": "^1.4.0",
|
|
"json-schema": "^0.4.0"
|
|
},
|
|
"lint-staged": {
|
|
"*.js": [
|
|
"eslint --fix"
|
|
],
|
|
"*.{json,css,md}": [
|
|
"prettier --write"
|
|
]
|
|
},
|
|
"husky": {
|
|
"hooks": {
|
|
"pre-commit": "lint-staged"
|
|
}
|
|
},
|
|
"prettier": {
|
|
"proseWrap": "never",
|
|
"singleQuote": true,
|
|
"tabWidth": 4,
|
|
"trailingComma": "all",
|
|
"overrides": [
|
|
{
|
|
"files": "*.{json,yaml,yml,md}",
|
|
"options": {
|
|
"tabWidth": 2
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|