mirror of
https://github.com/aljazceru/CTFd.git
synced 2026-01-31 11:54:23 +01:00
# 3.4.0 / 2021-08-11
**General**
- Added the ability to have Challenge Topics
- Challenge Topics are small topic strings which are only visible to Admins
- They should denote what topics a given challenge involves
- Added `connection_info` to Challenges to allow Admins to more easily specify the connection info for a challenge
- Added ability to import CSVs of users, teams, and challenges
- Added ability to limit the total number of teams
- Pages now have access to variables `ctf_name`, `ctf_description`, `ctf_start`, `ctf_end`, `ctf_freeze`. (e.g. `{{ ctf_name }}`)
- IP Addresses in the Admin Panel will now show the city of the IP address as well as the country
- Make User Mode it's own dedicated tab in the setup flow and more clearly explain what each user mode does
- Added the ability to have a registration password
- Does not currently apply to SSO/auth provider or API based account creation
- Prevent users from participating with challenges if their profile is not complete (i.e. haven't filled out all required custom fields)
- Fixed an issue where admins couldn't see some challenges in the add requirements interface
- Fixed an issue where a challenge couldn't be accessed beacuse it had prerequisites on a deleted challenge
- Fixed an issue where User profiles could not be loaded in the Admin Panel due to missing/invalid Tracking IP addresses
- Fixed an issue where users with authentication provider accoutns would get an error when attempting to login
- Fixed an issue where MajorLeagueCyber config from config.ini was not being respected
**API**
- Added `connection_info` field to `/api/v1/challenges/[challenge_id]`
- Added `/api/v1/topics` for admins to create/delete topics
- Added `/api/v1/challenges/[challenge_id]/topics` for admins to list the topics on a challenge
- `/api/v1/challenges` will now sort by ID as value to better standardize API output with different databases
- `/api/v1/configs` will now provide an error message when provided Config values are too long
- `PATCH /api/v1/teams/[team_id]` will now only let team members be team captain
- No security issues here, it would just be invalid data.
**Themes**
- CTFd now has the `THEME_FALLBACK` option enabled by default. This allows users to provide incomplete themes. Missing theme files will be provided from the built-in core theme
- CTFd will now pass the title of a Page over to the template when rendering
- No longer show the token type in user settings
- Added `window.BETA_sortChallenges` to `/challenges` so that theme code can more easily define how to sort challenges
- Note that this functionality is beta because we expect to revamp the entire themes system
- Added `window.updateChallengeBoard` to `/challenges` so that theme code can more easily define when to update challenges
- Note that this functionality is beta because we expect to revamp the entire themes system
- Added `window.updateScoreboard` to `/scoreboard` so that theme code can more easily define when to update the scoreboard
- Note that this functionality is beta because we expect to revamp the entire themes system
**Plugins**
- Added `Challenges.plugin_class` to the Challenges model to access the challenge type plugin class from the Model
- Allows templates to access the plugin class more easily
- Allows plugins to access the plugin class without having to load the class explicitly
**Admin Panel**
- Reworked the Challenge Requirements UI
- Officially support the concept of anonymized challenges if prerequisites aren't met
- Added ability for Pages to be written in direct HTML instead of Markdown
- Pages now have access to variables `ctf_name`, `ctf_description`, `ctf_start`, `ctf_end`, `ctf_freeze`
- `ctf_start`, `ctf_end`, `ctf_freeze` are represented as ISO8601 timestamps
- Make it easier to change the user mode without having to delete all accounts. Instead we will only delete all submissions.
- When in team mode, user pages will now show their team's score instead of their own personal score
- Show a team member's individual score on their team's page
- Made the challenge creation form wider
**Deployment**
- The `THEME_FALLBACK` config is now set to true by default
- Replace installation and usage of `mysqladmin` (specifically `mysqladmin ping`) with a custom Python script
- Bump version of `pybluemonday` to 0.0.7 (fixes HTML sanitization bypasses and allows comments in HTML)
- Bump `pydantic` from 1.5.1 to 1.6.2
**Miscellaneous**
- Make `.dockerignore` ignore `node_modules` in any subdirectory
- Added `solves` and `solved_by_me` fields to the Swagger documentation for Challenges
- Dynamic challenges will now take their initial valuation from the `inital` keyword instead of the previous `value` keyword.
- This allows ctfcli to manage dynamic challenges. See https://github.com/CTFd/CTFd/issues/1875
- Added a timestamp to a CTFd export's filename
- Deleting uploads under the Filesystem upload provider will now delete the parent folder as well as the target file
72 lines
2.6 KiB
JSON
72 lines
2.6 KiB
JSON
{
|
|
"name": "ctfd",
|
|
"version": "3.4.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.11.6",
|
|
"@babel/preset-env": "^7.11.5",
|
|
"@fortawesome/fontawesome-free": "^5.14.0",
|
|
"babel-loader": "^8.1.0",
|
|
"bootstrap": "~4.3.1",
|
|
"bootstrap-multimodal": "~1.0.4",
|
|
"codemirror": "~5.58.2",
|
|
"css-loader": "^3.6.0",
|
|
"dayjs": "^1.9.6",
|
|
"easymde": "^2.10.1",
|
|
"echarts": "^4.8.0",
|
|
"eslint": "~5.12.0",
|
|
"event-source-polyfill": "~1.0.7",
|
|
"file-loader": "~3.0.1",
|
|
"highlight.js": "^10.4.1",
|
|
"howler": "~2.1.2",
|
|
"jquery": "~3.5.1",
|
|
"markdown-it": "~10.0.0",
|
|
"mini-css-extract-plugin": "~0.7.0",
|
|
"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.11.5"
|
|
}
|
|
}
|