2014-10-20 13:03:43 +02:00
|
|
|
|
{
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"name": "unleash-server",
|
2024-11-28 08:25:31 +01:00
|
|
|
|
"description": "Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.",
|
2024-11-28 14:34:25 +01:00
|
|
|
|
"version": "6.5.0",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"keywords": [
|
|
|
|
|
"unleash",
|
2024-11-28 08:25:31 +01:00
|
|
|
|
"feature flag",
|
|
|
|
|
"flag",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"feature toggle",
|
|
|
|
|
"feature",
|
2024-11-28 08:25:31 +01:00
|
|
|
|
"toggle"
|
2016-11-10 15:52:49 +01:00
|
|
|
|
],
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"files": [
|
|
|
|
|
"dist",
|
|
|
|
|
"docs",
|
|
|
|
|
"frontend/build",
|
|
|
|
|
"frontend/build/*",
|
|
|
|
|
"frontend/build/**/*",
|
|
|
|
|
"frontend/index.js",
|
|
|
|
|
"frontend/package.json"
|
2024-06-28 10:54:37 +02:00
|
|
|
|
],
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"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": ">=18 <21"
|
|
|
|
|
},
|
|
|
|
|
"license": "Apache-2.0",
|
|
|
|
|
"main": "./dist/lib/server-impl.js",
|
|
|
|
|
"scripts": {
|
|
|
|
|
"start": "TZ=UTC node ./dist/server.js",
|
2024-10-25 11:41:17 +02:00
|
|
|
|
"copy-templates": "copyfiles -u 1 src/mailtemplates/**/* dist/",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"build:backend": "tsc --pretty --strictNullChecks false",
|
|
|
|
|
"build:frontend": "yarn --cwd ./frontend run build",
|
|
|
|
|
"build:frontend:if-needed": "./scripts/build-frontend-if-needed.sh",
|
|
|
|
|
"build": "yarn run clean && concurrently \"yarn:copy-templates\" \"yarn:build:frontend\" \"yarn:build:backend\"",
|
|
|
|
|
"dev:backend": "TZ=UTC NODE_ENV=development tsc-watch --strictNullChecks false --onSuccess \"node dist/server-dev.js\"",
|
|
|
|
|
"dev:frontend": "wait-on tcp:4242 && yarn --cwd ./frontend run dev",
|
2024-10-14 14:29:29 +02:00
|
|
|
|
"dev:frontend:cloud": "UNLEASH_BASE_PATH=/demo/ yarn run dev:frontend",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"dev": "concurrently \"yarn:dev:backend\" \"yarn:dev:frontend\"",
|
|
|
|
|
"prepare:backend": "concurrently \"yarn:copy-templates\" \"yarn:build:backend\"",
|
|
|
|
|
"start:dev": "yarn run clean && TZ=UTC NODE_ENV=development tsc-watch --strictNullChecks false --onSuccess \"node dist/server-dev.js\"",
|
|
|
|
|
"db-migrate": "db-migrate --migrations-dir ./src/migrations",
|
|
|
|
|
"lint": "biome check .",
|
|
|
|
|
"lint:fix": "biome check . --write",
|
|
|
|
|
"local:package": "del-cli --force build && mkdir build && cp -r dist docs CHANGELOG.md LICENSE README.md package.json build",
|
|
|
|
|
"build:watch": "yarn run clean && tsc -w --strictNullChecks false",
|
|
|
|
|
"prepare": "husky && yarn --cwd ./frontend install && if [ ! -d ./dist ]; then yarn build; fi",
|
|
|
|
|
"test": "NODE_ENV=test PORT=4243 node --trace-warnings node_modules/.bin/jest",
|
|
|
|
|
"test:unit": "NODE_ENV=test PORT=4243 jest --testPathIgnorePatterns=src/test/e2e --testPathIgnorePatterns=dist",
|
|
|
|
|
"test:docker": "./scripts/docker-postgres.sh",
|
|
|
|
|
"test:report": "NODE_ENV=test PORT=4243 jest --reporters=\"default\" --reporters=\"jest-junit\"",
|
|
|
|
|
"test:docker:cleanup": "docker rm -f unleash-postgres",
|
|
|
|
|
"test:watch": "yarn test --watch",
|
|
|
|
|
"test:coverage": "NODE_ENV=test PORT=4243 jest --coverage --testLocationInResults --outputFile=\"coverage/report.json\" --forceExit --testTimeout=10000",
|
|
|
|
|
"test:coverage:jest": "NODE_ENV=test PORT=4243 jest --silent --ci --json --coverage --testLocationInResults --outputFile=\"report.json\" --forceExit --testTimeout=10000",
|
2024-09-16 18:35:06 +02:00
|
|
|
|
"test:updateSnapshot": "NODE_ENV=test PORT=4243 jest --updateSnapshot --testTimeout=10000",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"seed:setup": "ts-node --compilerOptions '{\"strictNullChecks\": false}' src/test/e2e/seed/segment.seed.ts",
|
|
|
|
|
"seed:serve": "UNLEASH_DATABASE_NAME=unleash_test UNLEASH_DATABASE_SCHEMA=seed yarn run start:dev",
|
|
|
|
|
"clean": "del-cli --force dist",
|
|
|
|
|
"heroku-postbuild": "cd frontend && yarn && yarn build",
|
|
|
|
|
"prepack": "./scripts/prepack.sh",
|
|
|
|
|
"schema:update": "node ./.husky/update-openapi-spec-list.js"
|
|
|
|
|
},
|
|
|
|
|
"jest-junit": {
|
|
|
|
|
"suiteName": "Unleash Unit Tests",
|
|
|
|
|
"outputDirectory": "./reports",
|
|
|
|
|
"outputName": "jest-junit.xml",
|
|
|
|
|
"uniqueOutputName": "false",
|
|
|
|
|
"classNameTemplate": "{classname}-{title}",
|
|
|
|
|
"titleTemplate": "{classname}-{title}",
|
|
|
|
|
"ancestorSeparator": " › ",
|
|
|
|
|
"usePathForSuiteName": "true"
|
|
|
|
|
},
|
|
|
|
|
"jest": {
|
|
|
|
|
"automock": false,
|
|
|
|
|
"maxWorkers": 4,
|
|
|
|
|
"testTimeout": 10000,
|
|
|
|
|
"globalSetup": "./scripts/jest-setup.js",
|
|
|
|
|
"transform": {
|
|
|
|
|
"^.+\\.tsx?$": [
|
|
|
|
|
"@swc/jest"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
|
|
|
|
|
"testPathIgnorePatterns": [
|
|
|
|
|
"/dist/",
|
|
|
|
|
"/node_modules/",
|
|
|
|
|
"/frontend/",
|
|
|
|
|
"/website/"
|
|
|
|
|
],
|
|
|
|
|
"moduleFileExtensions": [
|
|
|
|
|
"ts",
|
|
|
|
|
"tsx",
|
|
|
|
|
"js",
|
|
|
|
|
"jsx",
|
|
|
|
|
"json"
|
|
|
|
|
],
|
|
|
|
|
"coveragePathIgnorePatterns": [
|
|
|
|
|
"/node_modules/",
|
|
|
|
|
"/dist/",
|
|
|
|
|
"/src/migrations",
|
|
|
|
|
"/src/test"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"dependencies": {
|
fix: trim messages longer than 3000 chars (#8219)
## About the changes
When trying to send messages longer than 3000 chars we get this error:
```
[ERROR] web-api:WebClient:0 failed to match all allowed schemas [json-pointer:/blocks/0/text]
[ERROR] web-api:WebClient:0 must be less than 3001 characters [json-pointer:/blocks/0/text/text]
[2024-09-23T10:10:15.676] [WARN] addon/slack-app - All (1) Slack client calls failed with the following errors: A platform error occurred: {"ok":false,"error":"invalid_blocks","errors":["failed to match all allowed schemas [json-pointer:/blocks/0/text]","must be less than 3001 characters [json-pointer:/blocks/0/text/text]"],"response_metadata":{"messages":["[ERROR] failed to match all allowed schemas [json-pointer:/blocks/0/text]","[ERROR] must be less than 3001 characters [json-pointer:/blocks/0/text/text]"],"scopes":["incoming-webhook","users:read","channels:read","groups:read","mpim:read","im:read","users:read.email","chat:write"],"acceptedScopes":["chat:write"]}}
```
This PR trims the text length to 3000 chars.
We also upgrade slack API due to some security fixes:
https://github.com/slackapi/node-slack-sdk/releases/tag/%40slack%2Fweb-api%407.3.4
After checking the migration guide to v7 it seems that none of the
breaking changes affect us:
https://github.com/slackapi/node-slack-sdk/wiki/Migration-Guide-for-web%E2%80%90api-v7
## Testing
I did manual test this integration and the fix. The way to reproduce is
adding a very long strategy name and sending that as an update on Slack:
![image](https://github.com/user-attachments/assets/81df9554-f59b-4fa4-96c8-77dbf7a56257)
Now the event succeeds and we notice on the integration event log that
the message was trimmed:
![image](https://github.com/user-attachments/assets/79efc536-3dd3-4090-99f3-5fd4c7a88715)
---------
Co-authored-by: Nuno Góis <github@nunogois.com>
2024-09-24 10:06:10 +02:00
|
|
|
|
"@slack/web-api": "^7.3.4",
|
2024-09-18 12:16:21 +02:00
|
|
|
|
"@wesleytodd/openapi": "^1.1.0",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"ajv": "^8.12.0",
|
|
|
|
|
"ajv-formats": "^2.1.1",
|
|
|
|
|
"async": "^3.2.4",
|
|
|
|
|
"bcryptjs": "^2.4.3",
|
|
|
|
|
"compression": "^1.7.4",
|
|
|
|
|
"connect-session-knex": "^5.0.0",
|
|
|
|
|
"cookie-parser": "^1.4.6",
|
|
|
|
|
"cookie-session": "^2.0.0-rc.1",
|
|
|
|
|
"cors": "^2.8.5",
|
|
|
|
|
"date-fns": "^2.25.0",
|
|
|
|
|
"db-migrate": "0.11.14",
|
|
|
|
|
"db-migrate-pg": "1.5.2",
|
|
|
|
|
"db-migrate-shared": "1.2.0",
|
|
|
|
|
"deep-object-diff": "^1.1.9",
|
|
|
|
|
"deepmerge": "^4.3.1",
|
|
|
|
|
"errorhandler": "^1.5.1",
|
2024-09-18 11:22:50 +02:00
|
|
|
|
"express": "^4.21.0",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"express-rate-limit": "^7.3.1",
|
|
|
|
|
"express-session": "^1.17.3",
|
|
|
|
|
"fast-json-patch": "^3.1.0",
|
|
|
|
|
"hash-sum": "^2.0.0",
|
|
|
|
|
"helmet": "^6.0.0",
|
|
|
|
|
"http-errors": "^2.0.0",
|
2024-10-07 13:51:03 +02:00
|
|
|
|
"ip-address": "^10.0.0",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"joi": "^17.13.3",
|
|
|
|
|
"js-sha256": "^0.11.0",
|
|
|
|
|
"js-yaml": "^4.1.0",
|
|
|
|
|
"json-diff": "^1.0.6",
|
|
|
|
|
"json-schema-to-ts": "2.12.0",
|
|
|
|
|
"json2csv": "^5.0.7",
|
|
|
|
|
"knex": "^3.1.0",
|
|
|
|
|
"lodash.get": "^4.4.2",
|
|
|
|
|
"lodash.groupby": "^4.6.0",
|
|
|
|
|
"lodash.sortby": "^4.7.0",
|
|
|
|
|
"log4js": "^6.0.0",
|
|
|
|
|
"make-fetch-happen": "^13.0.0",
|
|
|
|
|
"memoizee": "^0.4.17",
|
2024-09-17 11:55:54 +02:00
|
|
|
|
"mime": "^4.0.4",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"murmurhash3js": "^3.0.1",
|
|
|
|
|
"mustache": "^4.1.0",
|
|
|
|
|
"nodemailer": "^6.9.9",
|
|
|
|
|
"openapi-types": "^12.1.3",
|
|
|
|
|
"owasp-password-strength-test": "^1.3.0",
|
|
|
|
|
"parse-database-url": "^0.3.0",
|
|
|
|
|
"pg": "^8.12.0",
|
|
|
|
|
"pg-connection-string": "^2.5.0",
|
|
|
|
|
"pkginfo": "^0.4.1",
|
|
|
|
|
"prom-client": "^14.0.0",
|
|
|
|
|
"response-time": "^2.3.2",
|
|
|
|
|
"sanitize-filename": "^1.6.3",
|
2024-09-17 11:55:54 +02:00
|
|
|
|
"semver": "^7.6.3",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"serve-favicon": "^2.5.0",
|
|
|
|
|
"slug": "^9.0.0",
|
|
|
|
|
"stoppable": "^1.1.0",
|
|
|
|
|
"ts-toolbelt": "^9.6.0",
|
|
|
|
|
"type-is": "^1.6.18",
|
2024-11-18 09:06:37 +01:00
|
|
|
|
"unleash-client": "6.1.3",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"uuid": "^9.0.0"
|
|
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@apidevtools/swagger-parser": "10.1.0",
|
2024-11-14 02:24:15 +01:00
|
|
|
|
"@babel/core": "7.26.0",
|
2024-10-31 15:24:22 +01:00
|
|
|
|
"@biomejs/biome": "^1.9.4",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"@cyclonedx/yarn-plugin-cyclonedx": "^1.0.0-rc.7",
|
2024-11-29 20:25:14 +01:00
|
|
|
|
"@swc/core": "1.9.3",
|
2024-11-15 01:14:40 +01:00
|
|
|
|
"@swc/jest": "0.2.37",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"@types/bcryptjs": "2.4.6",
|
|
|
|
|
"@types/cors": "2.8.17",
|
|
|
|
|
"@types/express": "4.17.21",
|
|
|
|
|
"@types/express-session": "1.18.0",
|
|
|
|
|
"@types/faker": "5.5.9",
|
|
|
|
|
"@types/hash-sum": "^1.0.0",
|
2024-10-30 20:17:38 +01:00
|
|
|
|
"@types/jest": "29.5.14",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"@types/js-yaml": "4.0.9",
|
|
|
|
|
"@types/lodash.groupby": "4.6.9",
|
|
|
|
|
"@types/make-fetch-happen": "10.0.4",
|
|
|
|
|
"@types/memoizee": "0.4.11",
|
2024-09-17 11:55:54 +02:00
|
|
|
|
"@types/mime": "4.0.0",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"@types/mustache": "^4.2.5",
|
2024-11-11 10:47:40 +01:00
|
|
|
|
"@types/node": "20.17.6",
|
2024-11-28 22:47:16 +01:00
|
|
|
|
"@types/nodemailer": "6.4.17",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"@types/owasp-password-strength-test": "1.3.2",
|
2024-09-23 00:33:08 +02:00
|
|
|
|
"@types/pg": "8.11.10",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"@types/semver": "7.5.8",
|
|
|
|
|
"@types/slug": "^5.0.8",
|
|
|
|
|
"@types/stoppable": "1.1.3",
|
|
|
|
|
"@types/supertest": "6.0.2",
|
|
|
|
|
"@types/type-is": "1.6.6",
|
|
|
|
|
"@types/uuid": "9.0.8",
|
|
|
|
|
"concurrently": "^8.0.1",
|
|
|
|
|
"copyfiles": "2.4.1",
|
|
|
|
|
"coveralls": "3.1.1",
|
|
|
|
|
"del-cli": "5.1.0",
|
|
|
|
|
"faker": "5.5.3",
|
2024-11-14 05:01:32 +01:00
|
|
|
|
"fast-check": "3.23.1",
|
2024-09-18 12:16:21 +02:00
|
|
|
|
"fetch-mock": "^11.1.3",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"husky": "^9.0.11",
|
|
|
|
|
"jest": "29.7.0",
|
|
|
|
|
"jest-junit": "^16.0.0",
|
2024-09-09 00:28:17 +02:00
|
|
|
|
"lint-staged": "15.2.10",
|
2024-11-19 03:14:06 +01:00
|
|
|
|
"nock": "13.5.6",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"openapi-enforcer": "1.23.0",
|
|
|
|
|
"proxyquire": "2.1.3",
|
|
|
|
|
"source-map-support": "0.5.21",
|
|
|
|
|
"superagent": "9.0.2",
|
|
|
|
|
"supertest": "7.0.0",
|
|
|
|
|
"ts-node": "10.9.2",
|
|
|
|
|
"tsc-watch": "6.2.0",
|
|
|
|
|
"typescript": "5.4.5",
|
|
|
|
|
"wait-on": "^7.2.0"
|
|
|
|
|
},
|
|
|
|
|
"resolutions": {
|
|
|
|
|
"async": "^3.2.4",
|
|
|
|
|
"es5-ext": "0.10.64",
|
|
|
|
|
"node-forge": "^1.0.0",
|
|
|
|
|
"set-value": "^4.0.1",
|
|
|
|
|
"ansi-regex": "^5.0.1",
|
|
|
|
|
"ssh2": "^1.4.0",
|
|
|
|
|
"json-schema": "^0.4.0",
|
|
|
|
|
"ip": "^2.0.1",
|
2024-09-03 12:31:12 +02:00
|
|
|
|
"tar": "7.4.3",
|
2024-08-07 12:29:59 +02:00
|
|
|
|
"minimatch": "^5.0.0",
|
|
|
|
|
"semver": "^7.6.2",
|
2024-09-18 12:16:21 +02:00
|
|
|
|
"tough-cookie": "4.1.4",
|
|
|
|
|
"@wesleytodd/openapi/path-to-regexp": "6.3.0",
|
2024-10-29 09:45:14 +01:00
|
|
|
|
"router/path-to-regexp": "1.9.0"
|
2024-08-07 12:29:59 +02:00
|
|
|
|
},
|
|
|
|
|
"lint-staged": {
|
|
|
|
|
"*.{js,ts}": [
|
|
|
|
|
"yarn biome check --write --no-errors-on-unmatched"
|
|
|
|
|
],
|
|
|
|
|
"*.{jsx,tsx}": [
|
|
|
|
|
"yarn biome check --write --no-errors-on-unmatched"
|
|
|
|
|
],
|
|
|
|
|
"*.json": [
|
|
|
|
|
"yarn biome format --write --no-errors-on-unmatched"
|
|
|
|
|
]
|
|
|
|
|
},
|
2024-10-29 02:27:49 +01:00
|
|
|
|
"packageManager": "yarn@4.5.1"
|
2024-09-17 11:55:54 +02:00
|
|
|
|
}
|