Files
CTFd/package.json
Kevin Chung 9264e96428 Mark 3.1.0 (#1634)
# 3.1.0 / 2020-09-08

**General**

- Loosen team password confirmation in team settings to also accept the team captain's password to make it easier to change the team password
- Adds the ability to add custom user and team fields for registration/profile settings.
- Improve Notifications pubsub events system to use a subscriber per server instead of a subscriber per browser. This should improve the reliability of CTFd at higher load and make it easier to deploy the Notifications system

**Admin Panel**

- Add a comments functionality for admins to discuss challenges, users, teams, pages
- Adds a legal section in Configs where users can add a terms of service and privacy policy
- Add a Custom Fields section in Configs where admins can add/edit custom user/team fields
- Move user graphs into a modal for Admin Panel

**API**

- Add `/api/v1/comments` to manipulate and create comments

**Themes**

- Make scoreboard caching only cache the score table instead of the entire page. This is done by caching the specific template section. Refer to #1586, specifically the changes in `scoreboard.html`.
- Add rel=noopener to external links to prevent tab napping attacks
- Change the registration page to reference links to Terms of Service and Privacy Policy if specified in configuration

**Miscellaneous**

- Make team settings modal larger in the core theme
- Update tests in Github Actions to properly test under MySQL and Postgres
- Make gevent default in serve.py and add a `--disable-gevent` switch in serve.py
- Add `tenacity` library for retrying logic
- Add `pytest-sugar` for slightly prettier pytest output
- Add a `listen()` method to `CTFd.utils.events.EventManager` and `CTFd.utils.events.RedisEventManager`.
  - This method should implement subscription for a CTFd worker to whatever underlying notification system there is. This should be implemented with gevent or a background thread.
  - The `subscribe()` method (which used to implement the functionality of the new `listen()` function) now only handles passing notifications from CTFd to the browser. This should also be implemented with gevent or a background thread.
2020-09-08 00:08:35 -04:00

71 lines
2.5 KiB
JSON

{
"name": "ctfd",
"version": "3.1.0",
"description": "CTFd is a Capture The Flag framework focusing on ease of use and customizability. It comes with everything you need to run a CTF and it's easy to customize with plugins and themes.",
"main": "index.js",
"directories": {
"test": "tests"
},
"scripts": {
"dev": "node_modules/webpack-cli/bin/cli.js -w --mode=development",
"build": "node_modules/webpack-cli/bin/cli.js --mode=development; node_modules/webpack-cli/bin/cli.js --mode=production",
"verify": "node_modules/webpack-cli/bin/cli.js --mode=development --display=errors-only; node_modules/webpack-cli/bin/cli.js --mode=production --display=errors-only; git diff --quiet --exit-code",
"clean": "rm -rf CTFd/themes/core/static/css/* CTFd/themes/core/static/js/* CTFd/themes/admin/static/css/* CTFd/themes/admin/static/js/*",
"lint": "node_modules/.bin/eslint CTFd/themes/core/assets/ CTFd/themes/admin/assets/"
},
"repository": {
"type": "git",
"url": "git+https://github.com/CTFd/CTFd.git"
},
"author": "Kevin Chung <kchung@ctfd.io>",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/CTFd/CTFd/issues"
},
"homepage": "https://github.com/CTFd/CTFd#readme",
"devDependencies": {
"@babel/core": "~7.2.2",
"@babel/preset-env": "~7.2.3",
"@fortawesome/fontawesome-free": "~5.11.0",
"babel-loader": "~8.0.5",
"bootstrap": "~4.3.1",
"bootstrap-multimodal": "~1.0.4",
"codemirror": "~5.42.2",
"css-loader": "^3.6.0",
"easymde": "^2.10.1",
"echarts": "^4.8.0",
"eslint": "~5.12.0",
"event-source-polyfill": "~1.0.7",
"file-loader": "~3.0.1",
"howler": "~2.1.2",
"jquery": "~3.5.1",
"markdown-it": "~10.0.0",
"mini-css-extract-plugin": "~0.7.0",
"moment-timezone": "^0.5.26",
"node-sass": "^4.12.0",
"nunjucks": "~3.2.0",
"optimize-css-assets-webpack-plugin": "~5.0.1",
"popper.js": "^1.15.0",
"remove-strict-webpack-plugin": "~0.1.2",
"sass-loader": "^8.0.0",
"string-replace-loader": "^2.2.0",
"swagger-js-codegen": "~1.12.0",
"to-string-loader": "^1.1.5",
"typeface-lato": "~0.0.54",
"typeface-raleway": "~0.0.54",
"uglifyjs-webpack-plugin": "~2.1.1",
"vue": "^2.6.11",
"vue-loader": "15.9.3",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.11",
"webpack": "~4.28.1",
"webpack-cli": "~3.2.1",
"webpack-fix-style-only-entries": "~0.3.0",
"webpack-shell-plugin": "^0.5.0",
"whatwg-fetch": "~3.0.0"
},
"dependencies": {
"@babel/polyfill": "~7.2.5"
}
}