Releases: Expringsoft/GUSI-Framework-3
Releases · Expringsoft/GUSI-Framework-3
v1.0.1
v1.0.0
v1.0.0 (2024-07-21)
⚠BREAKING CHANGES
- BREAKING:
FileManager:
checkDiskSpace() and checkAppDiskUsage() methods replaced with isMinimumDiskSpaceAvailable() and isStorageUsageWithinLimits() respectively - BREAKING:
FileManager:
isMinimumDiskSpaceAvailable() and isStorageUsageWithinLimits() no longer throw Exceptions; they now return a boolean value based on their check - BREAKING:
FileManager:
File operations such as create, copy, append, etc., with the option to ignore the storage usage limitation, no longer throw Exceptions if the option is not ignored but there isn't enough storage for the application due to modifying the check behavior as it is described in the previous point. Additionally, the operations will still throw exceptions on their own if the disk does not have the minimum available storage. - BREAKING:
FileManager:
The functiongetFileType
was renamed togetFileMimeType
. Additionally, it now throws an exception if the file is not found. - BREAKING:
FileManager:
ThedeleteFile
function now throws an exception if the file to be deleted is not found. - BREAKING:
Cryptography:
The use of a self-generated backup encryption key has been removed if the encryption key as an environment variable was not configured or was inaccessible. Now, it is necessary to use the encryption key as an environment variable; if it is not configured or is inaccessible, a SecurityException will be thrown. - BREAKING:
Database:
The database connection settings are now established in the Configuration class. The user and password credentials are no longer written in the code, now are obtained from environment variables. The keys of the variables are customizable as well. - BREAKING:
Server
: Now all requests are processed by index.php, it is no longer possible to access existing files in the root directory of the app.
Features:
- Modules: Now, modules are automatically loaded from their folder (App/Modules) to register routes in the web application instead of importing and calling the method directly in the class. This ensures that the App is independent and does not require intervention for route registration. See 333aec1.
- CacheManager: The CacheManager class responsible for managing the cache, stores serialized data with the format [data] (which contains the data) and [expires] where the expiration time in seconds is stored using the function time() + the cache duration seconds. See fcfbd4f.
- FileManager: several improvements to FileManager class. See 9b061d5, fbd4b7a.
What's Changed
- v1.0.0 pre.1 by @CarlosEGuerraSilva in #3
- chore: release 1.0.0 by @CarlosEGuerraSilva in #4
Full Changelog: 1.0.0-pre.1...v1.0.0
1.0.0-pre.3
Prerelease 1.0.0-pre.3
What's Changed
- Automatic Route Registration: see 333aec1
- Added favicon
- Reverting X-Content-Type-Options: This security measure will be applied in the future once a system to manage and serve the web application's resources is integrated.
- Configurable Resource path
Full Changelog: 1.0.0-pre.2...1.0.0-pre.3
1.0.0-pre.2
Prerelease 1.0.0-pre.2
What's Changed
- CacheManager: new feature to manage cache, get/set serialized data with expiration time and limit cache file size.
- FileManager: New implementations for FileManager, new functions for file uploads, storage checks, bug fixes, and error codes.
- BREAKING: Migration of Database, Cryptography, and FileManager configurations to Configuration.php. Now, database connection settings are managed from the app's configuration, and credentials are obtained from environment variables. Encryption keys will also be obtained from environment variables, with configurable names.
- Server security improvements, restriction of script and executable execution in Files and Resources directories, absolute processing of all requests to index.php while respecting requests to Resources, provisional IfModule for the recommended use of mod_security and OWASP CRS rules.
Full Changelog: 1.0.0-pre.1...1.0.0-pre.2
v1.0.0-pre.1
Version 1.0.0 pre-release 1 is here
Some corrections and improvements to the documentation need to be made, it is possible that in the course of testing some breaking changes or new features will have to be made, although at the moment there are no plans for this, a ready version should arrive in the next few days.