Repository navigation
4.0.2
What's Changed
Features:
- rewrote the WSGi application builder
- made swagger open
- added the ability to start Gunicorn server, move server start command to cli
- Updates related to
ModularUserinclude:- Update the
metafield to now store two types of meta:allowed_valuesandaux_data. - Included
--meta_typeparameter inmodular user set_meta_attributecommand.
This parameter allows two types,allowed_values(set asdefaultif this
flag is not provided) andaux_data. - Added sorting to the
metafield in theModularUsertable to ensure consistent order, preventing different hashes generation from other orders.
This new function sorts dictionaries and lists at any depth level. - Added
aux_datatothread-local storage. Retrieve this from the DB using the user located inModularUser.meta. - Updated commands to ensure compatibility with changes related to
meta:set_meta_attribute,update_meta_attribute,delete_meta_attribute,
reset_meta,get_meta
- Update the
- Updated
swagger-ui-pyfrom 21.12.8 to 23.9.23 - Added middleware to capture all
swagger.jsonfiles - hid error logs when starting the server on MacOS
- Added
metatothread local storage, which contains theModularUserfield meta` - Added
service_nameandservice_display_namein the allowed values formeta - Added sorting of the
metafield in theModularUsertable to ensure a consistent order, as different orders can generate different hashes - Added a new class
FileHandlerManagerto the log_helper file to prevent theToo Many Open Fileserror - Implemented throttle manager:
Too Many Requests - Added a new value
"limit_api_call": 30tostartup_config.json, where30represents the maximum number of calls per second. If no value is provided, the default is set to10 - Added the ability to install modules inside
modular-apiusingsetup.cfgandpyproject.toml - Json flag added for next commands:
user describe,user get_meta,policy describe,group describe,audit - Updated
exception_log()to use awithblock when opening theLOG_FILE, ensuring the file gets properly closed after operations are completed. - Implemented proper bool type option processing in direct API requests
- Implemented proper bool type command option processing.
- Standardized name of keys of stats item
- Added mechanism of native module name inclusion to stats item.
- Changed statistic item ID generation method.
- Verification script adapted to new item ID generation method.
- Reduced calls to modular_api_log from modular_api_cli
- Added environment variables to configure separate log paths for modular_api and modular_api_cli logs
Fixes:
- Fixed meta keys validation logic to operate independently of file formatting
- Fixed
internal server errorwhen trying tologinwithout ausername(in SaaS mode) - Fixed issues related to CLI version WARNING
- Resolve bug associated with CLI version WARNING
- Adjust
@propertydecorator usage. Now accessible as an attribute, not a
method. Make necessary replacements where required
- Fixed an issue where the last line of the error message was lost in the
exception_logfunction. - Implemented fixes and improvements for
swagger-ui:- The logic for
login:- Unauthorized users are now provided with an empty
swagger.jsonfile - Generate new
swagger.jsoninstead of newpage
- Unauthorized users are now provided with an empty
- The logic for
- Fixed an issue that occurred while saving
metaforModularUserin on-prem mode - Fixed issue:
Too many open files - Fixed setuptools deprecation warning. Change
pkg_resourcestoimportlib.metadata - Fixed modules installation issue
- Fixed the command
modular user addif the user entered the password then it will not be displayed - Fixed flag value resolving
- Fixed file handling in
check_module_requirements_compatibility(). Previously, themodule_pathfile was opened for analysis but not closed properly.
Deletions:
- remove TinyDB and move to MongoDB
- removed not-used code and not-used libs
- removed
startup_config.json. Replace it with cli parameters and environment variables. Add.envfile support.
Full Changelog: https://github.com/epam/modular-api/commits/4.0.2