Repository navigation
v1.0.14
Security
- The access, error and blocked logs no longer store the access token.
user_idandclient_id
still say who called. - The error log writes the value of every header that carries a credential as
[redacted]:
Authorization,Proxy-Authorization,CookieandSet-Cookie, plus any the application names in
$redactedHeaders. It used to store them all as they were, for every request that ended in an
exception, refused ones included. - A filter, a search,
fieldsandorderingmay only name a column of the model's table, or of a
related model's, and never one of the entity'shiddenFields. Filters andfieldsused to reach
the query builder as they were written, so a hidden column such as a password hash could be read a
character at a time. A hidden column is refused with the same words as one that is not there.
Enhancements
RestExtension\Logs::PruneOlderThan($days)removes old rows from the three log tables, in
portions. Nothing removed them before; schedule it from the application.
Fixed bugs
- The hooks and the log cleanup connect to the default database group when
databaseGroupNameis not
set, instead of the group nameddefault. Under test the default is the test database. - Deprecations from PHP 8.2 to 8.5: dynamic properties on
QueryFilter,QueryIncludeandQueryOrder,
implicitly nullable parameters inCore\Model, a(double)cast, and a null message passed to
UnauthorizedException.
Dependencies
codeigniter4/frameworkand4spacesdk/ci4ormextensionare required, as the code has always
needed them. The suggestion of4spacesdk/ci4restextension-zmqis gone.
Upgrade guide
- A filter,
fieldsororderingon a column that is not there, or is hidden, is now an
InvalidRequestException(400) instead of a server error or an answer. - Existing rows keep the tokens and headers they were written with. Clear
access_tokenand redact
api_error_logs.headerswith a migration of your own if they matter.
Full Changelog: v1.0.13...v1.0.14