Skip to content

RAPyDo 0.9 (#37)

Choose a tag to compare

@mdantonio mdantonio released this 13 Dec 06:53
· 12 commits to master since this release
b96c99d
* Bump RAPyDo version to 0.9

* restapi.confs renamed into restapi.config

Dropped testing_mode flag in app creation (deprecated since 0.7.3). Use --testing flag on controller or export APP_MODE=test to enable tests

* Dropped deprecated detect.load_group (use Env.load_group instead)

* Dropped deprecated auth.required decorator, replaced by auth.require since 0.7.5

* Dropped unused hcodes (to be removed in a near future)

* Split Initializer and Customizer classes into dedicated modules

* Converted roles as a list of strings, instead of custom boolean values

* Cleanup of create_app parameters, replaced init/destroy/worker mode booleans with a single mode parameter (based on ServerModes enum values)

* Generalization of admin groups endpoint

* Implemented group management on sqlalchemy backend

* Dropped group coordinator (replaced with a dedicated role)

* Implemented group management on mongodb backend

* Extended profile page with group information

* Message raised from duplicate entries are now homogeneous among backend databases

* Fixed admin sessions endpoint with mongo backend

* Extended profile data with is_active and isCoordinator flags

* Bug fixed duplication error on mysql

Upgraded flask-apispec from 0.10.0 to 0.11.0. This upgrade will also bump apispec from * 3.3.2 to 4.0.0

* Upgraded celery-redbeat from 1.0.0 to 2.0.0

* Deprecated the use of hcodes (from utilities.htmlcodes)

* Added last_password_change, first_login and last_login to profile data

* Fixed roles initialization to always create missing roles

* init_auth_db is now implemented as generic method for every backend db

* Refactor of get_user(s) and get_group(s) methods to have homogenoues interfaces

* Added --force-user and --force-group options to restapi init

* Upgraded passlib from 1.7.2 to 1.7.4

* Upgraded pyotp from 2.4.0 to 2.4.1

* Upgraded neomodel from 4.0.0 to 4.0.1

* Upgraded sentry from 0.17.6 to 0.19.1

* Upgraded schemathesis from 2.4.1 to 2.7.1

* Upgraded Faker from 4.1.3 to 4.14.0

* Upgraded python-telegram-bot from 12.8 to 13.0

* Upgraded Telethon from 1.16.4 to 1.17.5

* Removed explicit get_schema parameter in base Schema to prevent duplicate errors when multiple schemas are used for the same endpoint

* Added celery tests on tasks execution

* Merged get_custom_input_fields and get_user_editable_fields into a single get_custom_input_fields with a scope parameter and also extended to registration schema

* Applied customizer to user registration model

* Auth authentication is now able to report unknown roles and fix descriptions of existing roles

* Dropped local_admin role and replaced with (already existing) staff_user role

* Added is_connected method to connectors instances

* Renamed rabbit.write_to_queue as rabbit.send_json. Added a rabbit.send method to prevent automatic json dump

* Added basic typing

* Dropped log.verbose and log.exit methods

* Dropped ALLOW_HTML_RESPONSE attribute in EndpointResource. Added allow_html flag to EndpointResource.response

* EndpointResource.response is now a static method

* Refactor of the sqlalchemy connector, now the connector itself is return by the connect method, as for any other connector

* Deprecated use of get_service_instance(authentication) and replaced with get_authentication_instance

* Refactor of connector instances: deprecated detector.get_service_instance and introduced new connector.get_instance

* Deprecated detector.get_debug_instance (a normal connector instance can ben used)

* Authentication modules are now able to create the backend database instance by itself

* Dropped /verify/<service> endpoint

* Renamed detector.load_variables as Env.load_variables_group

* Dropped obsolete detect.get_debug_instance method

* Added user_id to rabbitmq message properties

* Dropped get_service method in celery_app, replaced by connector.get_instance()

* Fix to prevent the creation of self.auth at every request, now it is created only when required

* Implemented expiration and verification time for all connectors. Settings are controlled by CONNECTORNAME_[EXPIRATION|VERIFICATION]_TIME variables and by expiration/verification

* Dropped obsolete test_connection flag on sqlalchemy connector

* Set automatic connection check on sqlalchemy connector

* Added exchange_exists, create_exchange and delete_exchange methods to rabbitmq connector

* Added queue_bind and queue_unbind methods to rabbitmq connector

* Fix to prevent setting of utf8mb4 characters on external resources

* Bug fix in detecting external services when host is missing in variables

* Enabled gzip compression if Accept-Encoding is gzip (only applied to contents larger than 1500 bytes)

* Added variables GZIP_COMPRESSION_ENABLE, GZIP_COMPRESSION_THRESHOLD, GZIP_COMPRESSION_LEVEL to configure gzip compression. Added gzip compression level

* Created Alchemy wrapper to prevent multiple app initialization

* Back compatibility fix to update response header with Werkzeug 0.16.1

* Added a method to RabbitMQ connector to extract a list of binding from a given rabbit exchange (based on UI management APIs)

* Fix to prevent the error Attempted implicit sequence conversion but the response object is in direct passthrough mode.

* Added a check based on content-type to skip gzip compression on binary data

* Bug fix to prevent errors on double disconnections on smtp connector

* Tests moved from Travis to GitHub Actions

* Disabled checks on network_latency on admin stats endpoint

* Parallelized dev and prod tests

* Replaced deprecated json_module in Marshmallow base model with new render_module

* Extended tests script to support coverage on projects. Extended coverage to tests files

* Bug fix to prevent raising SMTPServerDisconnected exceptions when trying to disconnect an already disconnected smtp instance

* Added retries parameters to wait_socket utility to prevent infinit loop in case unreachable services

* wait_socket.retries default value reduced from 999 to 30 in TESTING mode

* Improvements in token extraction in password reset and activation tests

* Bug fix datatime generated by buildData was not iso compliant

* Set timeout-minutes to GitHub Actions configuration

* Added workflow_dispatch to GitHub Actions workflow

* Implemented backend graceful stop by catching sigint signal

* Bump python requirement to 3.8+

* ProgrammingError raised during mysql initialization are now ignored

* Added --txt-report to mypy configuration

* Added cache method to @decorators functions (based on Flask-Caching)

* Stored flask cache on Redis if available

* Added basic Redis connector

* Added restapi clearcache command

* Added clear_endpoint_cache method