Releases: ReCodEx/api
v2.17.0
Changelog
- Improving endpoint specification and verification.
- Adding swagger (OpenAPI) specification and scripts that publish it.
- Fixing bugs, adjusting ACLs for exams.
Commits
b58aa5e #! v2.17.0
8886b04 Normalize line endings in file content previews.
548b38d Allow regular supervisors see IP addresses of exam locks.
c6aa58b Enabling locked IP addresses in user views for all eligible users.
69dc368 Fixing recent exceptions in assignment-solutions presenter (a situation when no best solution exists).
e1422e1 added swagger docs page
b67cbd1 Merge pull request #488 from ReCodEx/client-generator-adaptation
a0e58ac added support for arrays of arbitrary depths
c8c8fc5 improved requirement string generation algorithm
48020e7 fixed bad swagger string patterns
1c82ccf merged
e455656 fixed bad endpoint annotation
1e145d5 Fixing ACL checks for delete-attachment endpoint to verify the selected file belongs to the selected exercise.
fdbd4d3 Restricting rules when an attachment file can actually be deleted (correctly handling exercise cloning and shared links).
782f280 bugfix: operationId is now camel-case
864243e operationId is now more verbose so that the class and method names can be discerned
7dc3bdd bugfix: required properties are now listed correctly
97728d7 required and nullable flags are now generated in the schema section
f231185 string validator constraints are now propagated to the swagger document
5bcdd30 Merge branch 'nested-formats' into client-generator-adaptation
2bfe17d changed string value to int
f3d8eac refactored strictness in validators
80101e9 removed 'Presenter' suffix from operation ids
ad4cf35 added comment
a20f7f5 Merge remote-tracking branch 'origin/master' into nested-formats
2b41028 debug: reverted that error messages showed user values
8cf01b9 changed validation rule
31ecebb debug: display test values
38c9100 VBool text validation now supports strings as well
36a2751 path params are now checked
5764802 format and loose attributes can both be used on the same endpoint
c270f1e query and path parameters now use different validators
3d17f25 getExampleValue can now return null
971f87f removed endless recursion
87f280b renamed VFormat to VObject
50b4587 validators now have a common ancestor
f620fb2 Merge branch 'meta-views' into nested-formats
68bd434 added readable operationIds
73752f0 added swagger generator support for format classes
18501e1 added support for nested formats
v2.16.1
Changelog
- Updating endpoints that invite/create users to check for user-name duplicates.
- Fixing UUID validation for IDs in path parameters
- Major code cleanup (fixing deprecated warnings).
Commits
ead27f3 #! v2.16.1
9f2e984 Create account returns colliding users if ignoreNameCollision flag is not set.
992ea18 Adding proper UI error code for email-already-used situation.
b4557cd Fixing bug in invitation email check.
97f7564 Modifying user-invite endpoint to search for users with the same name first.
040ad2e Enable user search by email.
0711609 Changing the view to report batch-completion time rather than ID.
79cf289 Adding batch ID to the assignment entity, so we can mark them as checked by plagiarism-detection tools.
e5b7f84 Fixing helper classes (except for mail notifications and stuff related to exercise/pipeline configs).
7e811f4 Fixing deprecations and cleanup in CLI commands.
92c4181 Cleanup and resoving deprecated issues in async module.
975022d Removing deprecated issues and cleanup in ORM entities.
2870ecd Cleanup in view factories.
feaa09c Fixing ORM helpers and base classes.
275eb1b Fixing deprecated issues, typos, and cleanup in ORM repositories.
ffe565b Updating deprecated Nette response codes.
9191fd6 Fixing UUID validation for IDs in path parameters.
v2.16.0
Changelog
- A new endpoint specification system was created that uses attributes instead of doc-comments.
- Endpoint parameter verifications were rewritten to use new attributes.
- OpenAPI generator fixed, API documentation is now generated from the endpoint specifications.
Commits
422c790 #! v2.16.0
38e7308 Fixing few typos.
fd0a060 Fixing a TODO at VBool verification.
13a9dbd Fixing InvalidArgument exception issues.
9622231 changed comment
75a209f changed string value to int
b8a7e99 refactored strictness in validators
6ad7d10 added comment
2ccd6f5 debug: reverted that error messages showed user values
bc10d3b changed validation rule
17d9b7e debug: display test values
f481bdb VBool text validation now supports strings as well
c164fe0 path params are now checked
314cf1b format and loose attributes can both be used on the same endpoint
c0d3d11 query and path parameters now use different validators
c6556ee getExampleValue can now return null
de58e1b removed endless recursion
f7042d8 renamed VFormat to VObject
d25b588 validators now have a common ancestor
acb93c0 added readable operationIds
651e82d added swagger generator support for format classes
1a371f8 added support for nested formats
049de89 Merge pull request #480 from ReCodEx/meta-views
687e7e1 bugfix: removed erroneous query param
311f567 added a todo regarding VBool
a7b607f VBool now supports 'false' for one test to pass
f9d4ca3 tests now send proper booleans to endpoints instead of strings and ints
74c55a7 removed gettype type validation
c0335c5 made VBool stricter
14b11df improved VString validation
29a03e3 improved VInt validation
a7b342b improved VDouble validation
d3e649f removed deprecated method
7003162 changed validator
13361ad added doc-comment for UserFormat
ec70d27 improved FormatCache::formatExists performance, added getter for a hash set of format names
311e9fa fixed misleading attribute comments
b52d924 improved attribute class description
efa5084 renamed file to match class name
728de68 simplified doc-comment typename
424a49b bugfix: explicitly set nullability of a parameter is now considered as well (no actual behavioral changes, all the changed endpoint parameters were optional so nullable by default, now they are explicitly nullable as well)
9af19f3 bugfix: added nullability to field
b2ee348 added type checking comparison
9f08c53 added type checking comparison
8c7de0e replaced comments with doc-comments
1d1f32c replaced comments with doc-comments
a86d53b inlined a function
74eba85 replaced switch with dictionary
971c77e replaced hardcoded numbers
9fc4ab5 added comment
81f25e5 removed hardcoded namespaces where possible
9b20a75 replaced switch with translation dictionary
cfa83e5 inlined function
dae8c9b replaced string slice with str_starts_with
051247d code cleanup
449d164 refactored the FormatCache
4e96b1f resolved todo
9bf3a44 bugfix: loose params are no longer saved
9a850fc removed MetaRequest, refactored actionCreateInvitation to use a format class
b724809 added shorthands for format parameter attributes
2b61283 fixed param comment
a165107 checkedAssign now explicitly throws when an invalid value is passed, resolved some todos
a20fafd removed circular dependency of the annotation converter on the produced attributes
9bbfd26 added more comments to validators
a28887c implemented VTimestamp
8c358c4 swagger generator extracts data only from attributes now
184bfe1 bool validator now supports 1 and 0 as well
ffee4a5 resolved some todos
a9a5764 Merge branch 'master' into meta-views
83a2524 Adding unique index for user.email column.
c400a1f implemented more validators
cd8c805 int validator now supports numeric strings
14dbbff changed error message
0ad910e made parameter error messages more verbose
6e701c8 renamed VFloat to VDouble
1972586 implemented int validator
57f9d73 implementing validators WIP
38ff805 bugfix: changed command name in config
da2bf97 refactored the conversion command
5025336 added VMixed validator as a placeholder for params with missing validations
b05b6bf added mixed placeholder validator
2a57dee actionValidatePasswordStrength password is now nullable
8c14400 removed unnecessary rethrow mechanism
99a41b8 bugfix: InvalidArgumentExceptions are no longer intercepted.
1ea5bc1 bugfix: attributes derived from Param are now also considered for validation purposes
8078b72 converted endpoints
042f2f3 @param annotations are removed after conversion
2988669 removed logging in the base presenter, removed format attribute and meta request from registration presenter
6148642 removed duplicit validator parameter
e54eae5 code quality improvement
6d13d82 added shorthands for attributes with a given type
85c40fe path param values are no longer checked (there is no mechanism for that yet)
8630379 bugfix: validators are now converted to arrays in attributes, description strings now escape quotes and $ characters
8de1c28 single validators no longer need to be in arrays
2f06e9a missing validations are defaulted to string
585dda5 improved code quality, added more comments
3b4c253 restructured code
d6f0d09 bugfix: converted attributes are no longer used multiple times
5bed864 removed deprecated conversion mechanism
c190b5f added support for @param annotation to attribute conversion
1498e76 added mechanism for path/query parameter detection WIP
3ae231d refactored attribute converter
61b7f54 Merge branch 'master' into meta-views
b673fb8 added automatic multiline attribute conversions for long annotations
c2c16b5 renamed various classes used in parameter attributes to make them shorter, changed param attribute argument order
7ebda6d replaced single backslashes with double in namespace paths
fb56a60 the annotation to attribute converter no longer uses hardcoded string classnames
8763ca0 unannotated path params are now handled properly
5dd69c4 improved swagger typing, added swagger descriptions
f8991d1 merged FieldFormatDefinition and RequestParamData - now all checks are done using Validators (except for nullability/required)
42934b0 loose attributes now support nullability
b79bad0 loose attributes work now (requestFormatInstance is now created properly using a stdClass)
e497148...
v2.15.0
Changelog
- Adding support for ReCodEx 3rd-party extensions.
- Adding support for additional external IDs (in authentication and via new endpoints).
- Correctly handling backslashes in ZIP file entries.
- Fixing ACLs policies for exams (students can submit anything in a group before the beginning of an exam).
Commits
1c9281e #! v2.15.0
e5f2db2 Allowing authorities that can edit external identifiers to see all external identifiers.
298563d Adding tests for new users' external-IDs endpoints.
a3ddfa0 Adding endpoints for creating, updating, and removing external IDs.
f7516da Adding proper logging for external authentication.
9c515f2 Processing extra IDs in external authentication tokens.
eacbeb8 Fixing bug in last-auth-time update for deactivated users.
076f312 Making the gravatar switch optional in edit-user endpoint.
a2cca24 Fixing ACLs policies for exams (students can submit anything in a group before the beginning of an exam).
dbed831 Adding return URL parameter into extension URL generator endpoint.
3d022a5 Adding tests and fixing bugs.
465dee3 Implementing extensions presenter that handles 3rd party tools handshake and authentication.
f88153b Making available extension listed in the instance structure (view).
893c561 Creating a configuration template for extensions and corresponding classes for config loading and extension management.
45fb957 Code cleanup and solving old TODOs related to ZIP archives handling.
93684e4 Correctly handling backslashes in ZIP file entries.
v2.14.0
Changelog
- New generator for swagger (OpenAPI) specification
- Fixing bugs
Commits
eff5954 #! v2.14.0
10c08ec Fixing bug - overflowing error strings in async jobs.
a17fcba Bump league/commonmark from 2.5.3 to 2.6.0
b4ac7d7 Merge pull request #469 from ReCodEx/swagger
5fe5c49 removed unused methods
4c0560d added more comments
4e9f815 made TODOs more future-proof
51c1c71 improved swagger command descriptions
7923f19 replaced phpcs ignoreFile with a fine grained alternative
0b42c85 removed unused method
85b1e20 fixed unresolved merge conflict
aeeb298 made the swagger generation code PSR12 compliant
40f262d merge with master
576214a Small typo
6d4b18d Bump symfony/process from 7.1.3 to 7.1.7
e1685e0 Flipped join/implode params (https://www.php.net/manual/en/function.implode.php - changelog)
834b01b moved the annotation helper classes to helpers/Swagger
2afd462 Merge branch 'swagger' of https://github.com/ReCodEx/api into swagger
f7c8ac9 added a script that generates the swagger documentation, the commands now delete the temp file
01f0705 improved code comments
5398ab7 parameters are now correctly located in path, query, or body
a5086cf added support for POST json properties
bd295a5 swagger:annotate now generates a file and swagger:generate can now convert it to a Swagger specification; newly supports path and query parameters
77638fe WIP swagger:annotate can now extract annotations from all routed methods
138e618 added WIP swagger:annotate which scans method annotations
69463dd created minimal console command
018a0b0 added a script that generates the swagger documentation, the commands now delete the temp file
5c63992 improved code comments
c4c88db parameters are now correctly located in path, query, or body
174abc3 added support for POST json properties
887da6a swagger:annotate now generates a file and swagger:generate can now convert it to a Swagger specification; newly supports path and query parameters
4dcc5c1 WIP swagger:annotate can now extract annotations from all routed methods
0ce4b0e added WIP swagger:annotate which scans method annotations
b1c367b created minimal console command
v2.13.2
Changelog
- Enabling group points limit (alternative to relative point threshold).
Commits
ff8427f #! v2.13.2
3a6cad8 Adding actual point limit into group-user stats.
aca637a Updating groups presenter add/update endpoints to include pointsLimit in the data model.
775b3c4 Updating group entity to contain points limit (along with threshold).
v2.13.1
Changelog
- Fixing issues with reviews and review requests in archived groups.
- Adding external group attributes and endpoints for 3rd party (plugins) to manage groups and user membership (1st step towards SIS elimination).
- Updating composer dependencies.
Commits
80ce053 #! v2.13.1
3c5ea57 Fixing a bug that pending review and review requests appear in dashboard summary (as well as in mail notifications) even for archived groups (archived groups are now excluded).
6d522b2 Updating composer dependencies.
ad20269 Adding tests for group external attributes, fixing bugs.
2d6f248 Implementing new endpoints for external attributes and corresponding ACL rules and scopes.
9ca4061 Introducing group external attributes in the data model (migration included).
v2.13.0
Changelog
- Adding a solution flag that a student requests a review.
- Adding new notification emails (and corresponding user configuration options) for solution review requests and solution acceptance.
- Flag-setting endpoint response optimization.
Commits
4889f1e #! v2.13.0
3d0b986 Adding endpoint for reporting all review requests to a teacher at once.
9dec4fa Optimizing response of solution set-flag endpoint.
e92c66f Fixing reviewRequest indicator in group-stats reports.
5cdc088 Adding email notifications for solution flag (accepted, reviewRequest) changes (and corresponding user settings).
2774d40 Introducing review-request, an assignment solution flag that indicate the teacher a student wants a solution review.
v2.12.0
Changelog
- Adding support for success exit codes parameter in exec boxes
- Adding exit code native and ok flags in the task-results entity
- Removing obsolete Mono boxes, deprecating Node, PHP, and Python boxes (pipelines were updated to use more generic ScriptExecutionBox instead)
- Implementing a flag for an assignment that permits the students to see absolute values of measured time and memory of their solutions
- Upgrading composer dependencies
Commits
aba2a8b #! v2.12.0
07e996c Adding exit code ok status as a flag in the test results.
c60f564 Adding exit code native flag that indicates the origin of the exit code in a test result.
26f86c2 Adding hasSuccessExitCodes pipeline parameter.
6c72394 Fixing bugs.
a5d2ea2 Db migration (adding success-exit-codes into exercise and pipeline configs).
4a7e444 Adding success exit codes parameter into exec boxes.
11cd0b6 Denoting Node, PHP, and Python run boxes as deprecated (pipelines were updated to use more generic ScriptExecutionBox instead.
a4152c9 Removing obsolete Mono boxes.
a1460b8 Implementing a flag for an assignment that permits the students to see absolute values of measured time and memory of their solutions.
371bc4b Updating composer packages and lock file.
v2.11.1
Changelog
- Adding endpoint to edit ref. solution note (description)
- Fixing student ACLs for archived groups (bug created by exam groups implementation)
- Adding PHP 8.3 to CI actions, upgrading CI to the latest LTS Ubuntu, fixing dependencies
Commits
8be5b8d #! v2.11.1
2a945fd Adding endpoint to edit ref. solution note (description).
ebd0bf9 Fixing tests after upgrades.
a12aec7 Upgrading composer dependencies.
74dab08 Updating GH actions setup to include PHP 8.3 and switching them to newest LTS Ubuntu.
7f4d071 Fixing student ACLs for archived groups (bug created by exam groups implementation).