- Fixed: Prune also inactive databases which are standing still for some reason
- Changed: Do not clone database - use the original one with SELECT only access
- Added:
Recreate queue
in the administration - Added: Pre-populate assignment in
TaskForm
- Change: Job prepare database with
psql
- Changed: Use
enqueue_many
inEvaluation
- Fixed: Evaluation reports compatible with new
Bunch of funky updates into an upcoming summer course! Some attempts were made to make the task result better readable.
Improved scalability moving worker
outside of the server image and supervisord
service.
Be a good frogs! 🐸
- Added: Save and prefill image on new test #5
- Added: Cool FIIT favicon (super important)
- Added: Advanced admin filters
- Added: Basic job history
- Added: Creator in Evaluation
- Added: Show request method #4
- Changed: Dockerfile separated into two targets:
server
andworker
soworker
can be scaled - Changed: Evaluations are managed from Django admin now
- Changed: Major task record logging refactor (messages introduced)
- Changed: Django 5.0 upgrade
- Changed: Use Debian-based containers
- Changed: Alpine Linux 3.18
- Fixed: Build evaluation results keys using
set
manually
- Fixed: Do not check for the response payload with HTTP 204 is returned
- Changed: Extended timeouts
Hate springs eternal
In this black heart of mine
Time heals nothing, I'll never forgive
Hate springs eternal
In this black heart of mine
Time heals nothing, I'll never forgive, never forget
Never ever
- Fixed: Bullshit response resolver using
TypeError
catch 🤷♂️
- Fixed: Catch
docker.errors.ImageNotFound
inclient.images.get(self._task.image).remove(force=True)
- Fixed: Force image removal
- Added: Scenario priority
- Fixed: INVALID_HTTP_STATUS is now working
- Added: Status code validation
- Added: Ignored properties in diff
- Fixed: Broader exception handling in the test execution (should prevent zombie stacking)
- Fixed: Security for evaluations
- Fixed: Safely get additional info from tests
- Fixed: requests timeout extended (to 10s)
- Fixed: nginx timeout extended
- Fixed: Gunicorn timeout extended
- Fixed: Fixed a plethora of peculiar issues - honestly, I've already forgotten the specifics, but I'm too lazy to dig through Git. Just know that the code is now as smooth as a ninja cat on roller skates!
- Fixed: Disabled retry objects (because of the weird loops)
- Added: Database schemas support
- Added: Evaluation introduced
- Fixed: Private scenarios are executed only by
is_staff
users
- Added: Capture Docker exceptions in Sentry
- Fixed: Execute clean-up every 5 minutes
- Fixed: Forcing Docker image cleanup
- Changed: Sleep time after container start raised to 5 seconds
- Added: Usage of the
HTTPAdapter
withRetry
object for better TCP retries
- Changed: Phased job execution for better cleanups (implementation
BasicJob
) - Changed: Prune docker images once per day
- Fixed: Requirements for container
- Added: Status endpoint
GET /api/v1/status
- Added: Nice footer
- Added: Create sandbox database users
- Fixed: Top users order
- Fixed: Version context processor
- Added: LDAP auth
- Added: Ability to create scenarios with HTTP body
- Added: CRON
- Added: Database sandboxes
- Changed: Alpine Linux 1.17 container
- Changed: Docker containers runtime
- Changed: Removed CAPTCHA
- Changed: Extended default request timeout to 20s
- Changed: Assigment evaluation now has public link
- Changed: Administrator can execute private scenarios
- Added: Fancy charts (pimp my SVG ride)
- Added: Introduced
Task.Status.FAILED
state which represents failed or time-outedTask
- Added: Public changelog
- Added: Instead of the HTML table a diff file is created if there is a large scenario payload
- Added: Assigment evaluation management command
- Changed:
WEB
orJOB
tasks
- Fixed: Catching JSONDecodeError if there is an invalid JSON response provided
Initial