mirror of
https://github.com/aljazceru/CTFd.git
synced 2026-02-01 12:24:31 +01:00
# 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.
71 lines
2.5 KiB
JSON
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"
|
|
}
|
|
}
|