1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/package.json
sighphyre 0c78980502
feat: custom project roles (#1220)
* 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>
2022-01-13 11:14:17 +01:00

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
}
}
]
}
}