2.1.1 / 2019-05-04
General
- Allow admins to hit
/api/v1/challenges
and/api/v1/challenges/[id]
without having a team to fix challenge previews - Fix rate-limiting of flag submission when using team mode
- Fixes some modal close buttons not working in the admin panel
- Fixes
populate.py
to assign captains to teams.
Models
- Added
Challenges.flags
relationship and moved theFlags.challenge
relationship to a backref on Challenges - Added
ondelete='CASCADE'
to most ForeignKeys in models allowing for deletions to remove associated dataHints
should be deleted when their Challenge is deletedTags
should be deleted when their Challenge is deletedFlags
should be deleted when their Challenge is deletedChallengeFiles
should be deleted when their Challenge is deleted- Deletion of the file itself is not handled by the model/database
Awards
should be deleted when their user or team is deletedUnlocks
should be deleted when their user or team is deletedTracking
should be deleted when their user or team is deletedTeams.captain_id
should be set to NULL when the captain user is deleted
Exports
- Force
db.create_all()
to happen for imports onsqlite
or on failure to create missing tables - Force
ctf_theme
to be set tocore
in imports in case a theme is missing from the import or the instance - Fix imports/exports to emit and accept JSON properly under MariaDB
- MariaDB does not properly understand JSON so it must accept strings instead of dicts
- MariaDB outputs strings instead of JSON for its JSON type so the export serializer will attempt to cast output JSON strings to JSON objects
Deployment
- Run as root when using docker-compose
- This is necessary to be able to write to the volumes mounted from the host