clear-skies 1.22.0__tar.gz → 1.22.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of clear-skies might be problematic. Click here for more details.
- {clear_skies-1.22.0 → clear_skies-1.22.2}/PKG-INFO +1 -1
- {clear_skies-1.22.0 → clear_skies-1.22.2}/pyproject.toml +1 -1
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/__init__.py +2 -0
- clear_skies-1.22.2/src/clearskies/authentication/authorization_pass_through.py +18 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/belongs_to.py +29 -8
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/has_many.py +27 -2
- {clear_skies-1.22.0 → clear_skies-1.22.2}/LICENSE +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/README.md +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/application.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/auth0_jwks.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/auth_exception.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/authorization.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/jwks.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/jwks_jwcrypto.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/public.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/authentication/secret_bearer.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/parameter.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/request.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/response.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/array.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/default.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/object.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/test.json +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/request/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/request/header.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/request/json_body.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/request/request.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/request/url_parameter.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/request/url_path.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/response/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/response/response.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/array.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/base64.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/boolean.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/date.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/datetime.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/double.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/enum.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/integer.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/long.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/number.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/object.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/password.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/schema/string.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/api_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/cursor_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/example_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/file_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/json_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/memory_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/restful_api_advanced_search_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/backends/secrets_backend.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/binding_config.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/audit.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/boolean.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/category_tree.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/column.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_authorization_data.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_header.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_ip.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_routing_data.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_user_agent.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_micro.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/datetime.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/datetime_micro.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/email.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/float.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/has_one.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/integer.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/json.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/many_to_many.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/many_to_many_with_data.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/phone.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/select.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/string.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/timestamp.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/updated.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/updated_micro.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/uuid.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/columns.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/condition_parser.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/bash.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/build_context.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/cli.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/context.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/convert_to_application.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/extract_handler.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/test.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/contexts/wsgi.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/auth0_jwks.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/authorization.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/binding_classes.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/binding_modules.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/bindings.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/create.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/delete.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/docs.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/get.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/jwks.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/merge.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/patch.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/post.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/public.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/response_headers.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/return_raw_response.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/schema.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/secret_bearer.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/decorators/security_headers.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/additional_config.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/additional_config_auto_import.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/di.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/standard_dependencies.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/test_module/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/test_module/another_module/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/test_module/module_class.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/environment.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/functional/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/functional/string.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/functional/validations.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/advanced_search.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/base.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/callable.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/create.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/crud_by_method.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/database_connector.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/delete.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/authentication.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/authorization.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/client_error.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/input_error.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/not_found.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/get.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/health_check.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/input_processing.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/list.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/mygrations.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/request_method_routing.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/restful_api.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/routing.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/schema_helper.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/simple_routing.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/simple_routing_route.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/simple_search.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/update.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/write.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/cli.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/exceptions/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/exceptions/cli_input_error.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/exceptions/cli_not_found.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/input_output.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/wsgi.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/after.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/before.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_future_at_least.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_future_at_most.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_past_at_least.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_past_at_most.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/maximum_length.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/maximum_value.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/minimum_length.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/minimum_value.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/required.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/requirement.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/time_delta.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/unique.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/mocks/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/mocks/input_output.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/mocks/models.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/model.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/models.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/additional_configs/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/akeyless.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/exceptions/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/exceptions/not_found.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/secrets.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/base.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/cache_control.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/cors.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/csp.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/hsts.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/x_content_type_options.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/x_frame_options.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/simple_api/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/simple_api/models/__init__.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/simple_api/models/status.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/simple_api/models/user.py +0 -0
- {clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/simple_api/users_api.py +0 -0
|
@@ -5,6 +5,7 @@ from .auth0_jwks import Auth0JWKS
|
|
|
5
5
|
from .authorization import Authorization
|
|
6
6
|
from .jwks import JWKS
|
|
7
7
|
from .jwks_jwcrypto import JWKSJwCrypto
|
|
8
|
+
from .authorization_pass_through import AuthorizationPassThrough
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
def public():
|
|
@@ -29,6 +30,7 @@ def jwks_jwcrypto(jwks_url, **kwargs):
|
|
|
29
30
|
|
|
30
31
|
__all__ = [
|
|
31
32
|
"Authorization",
|
|
33
|
+
"AuthorizationPassThrough",
|
|
32
34
|
"BindingConfig",
|
|
33
35
|
"public",
|
|
34
36
|
"Public",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from clearskies.authentication import JWKSJwCrypto
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AuthorizationPassThrough(JWKSJwCrypto):
|
|
5
|
+
"""
|
|
6
|
+
This authentication class takes the authentication header from the incoming request and reflects
|
|
7
|
+
it on outgoing requests.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
def __init__(self, environment, requests, di):
|
|
11
|
+
super().__init__(environment, requests)
|
|
12
|
+
# we need the dependency injection container so we can grab the input output and,
|
|
13
|
+
# with that, the request headers (which contain the JWT we'll pass through).
|
|
14
|
+
self.di = di
|
|
15
|
+
|
|
16
|
+
def headers(self, retry_auth=False):
|
|
17
|
+
input_output = self.di.build("input_output", cache=True)
|
|
18
|
+
return {"Authorization": input_output.get_request_header("authorization", True)}
|
|
@@ -34,6 +34,7 @@ class BelongsTo(String):
|
|
|
34
34
|
"model_column_name",
|
|
35
35
|
"readable_parent_columns",
|
|
36
36
|
"join_type",
|
|
37
|
+
"where",
|
|
37
38
|
]
|
|
38
39
|
|
|
39
40
|
def __init__(self, di):
|
|
@@ -43,6 +44,7 @@ class BelongsTo(String):
|
|
|
43
44
|
super()._check_configuration(configuration)
|
|
44
45
|
self.validate_models_class(configuration["parent_models_class"])
|
|
45
46
|
|
|
47
|
+
error_prefix = f"Configuration error for '{self.name}' in '{self.model_class.__name__}':"
|
|
46
48
|
if not configuration.get("model_column_name") and self.name[-3:] != "_id":
|
|
47
49
|
raise ValueError(
|
|
48
50
|
f"Invalid name for column '{self.name}' in '{self.model_class.__name__}' - "
|
|
@@ -50,19 +52,14 @@ class BelongsTo(String):
|
|
|
50
52
|
+ "that the parent model can be fetched from."
|
|
51
53
|
)
|
|
52
54
|
if configuration.get("model_column_name") and type(configuration.get("model_column_name")) != str:
|
|
53
|
-
raise ValueError(
|
|
54
|
-
f"Configuration error for '{self.name}' in '{self.model_class.__name__}': 'model_column_name' must be a string."
|
|
55
|
-
)
|
|
55
|
+
raise ValueError(f"{error_prefix} 'model_column_name' must be a string.")
|
|
56
56
|
|
|
57
57
|
join_type = configuration.get("join_type")
|
|
58
58
|
if join_type and join_type.upper() not in ["LEFT", "INNER"]:
|
|
59
|
-
raise ValueError(
|
|
60
|
-
f"Configuration error for '{self.name}' in '{self.model_class.__name__}': join_type must be INNER or LEFT"
|
|
61
|
-
)
|
|
59
|
+
raise ValueError(f"{error_prefix} join_type must be INNER or LEFT")
|
|
62
60
|
|
|
63
61
|
if configuration.get("readable_parent_columns"):
|
|
64
62
|
parent_columns = self.di.build(configuration["parent_models_class"], cache=True).raw_columns_configuration()
|
|
65
|
-
error_prefix = f"Configuration error for '{self.name}' in '{self.model_class.__name__}':"
|
|
66
63
|
readable_parent_columns = configuration["readable_parent_columns"]
|
|
67
64
|
if not hasattr(readable_parent_columns, "__iter__"):
|
|
68
65
|
raise ValueError(
|
|
@@ -81,6 +78,19 @@ class BelongsTo(String):
|
|
|
81
78
|
+ "column does not exist in the model class."
|
|
82
79
|
)
|
|
83
80
|
|
|
81
|
+
wheres = configuration.get("where")
|
|
82
|
+
if wheres:
|
|
83
|
+
if not isinstance(wheres, list):
|
|
84
|
+
raise ValueError(
|
|
85
|
+
f"{error_prefix} 'where' must be a list of where conditions or callables that return where conditions"
|
|
86
|
+
)
|
|
87
|
+
for index, where in enumerate(wheres):
|
|
88
|
+
if callable(where) or isinstance(where, str):
|
|
89
|
+
continue
|
|
90
|
+
raise ValueError(
|
|
91
|
+
f"{error_prefix} 'where' must be a list of where conditions or callables that return where conditions, but the item in entry #${index+1} was neither a string nor a callable"
|
|
92
|
+
)
|
|
93
|
+
|
|
84
94
|
def _finalize_configuration(self, configuration):
|
|
85
95
|
return {
|
|
86
96
|
**super()._finalize_configuration(configuration),
|
|
@@ -89,6 +99,7 @@ class BelongsTo(String):
|
|
|
89
99
|
if configuration.get("model_column_name")
|
|
90
100
|
else self.name[:-3],
|
|
91
101
|
"join_type": configuration.get("join_type", "INNER").upper(),
|
|
102
|
+
"where": configuration.get("where", []),
|
|
92
103
|
},
|
|
93
104
|
}
|
|
94
105
|
|
|
@@ -149,7 +160,17 @@ class BelongsTo(String):
|
|
|
149
160
|
|
|
150
161
|
@property
|
|
151
162
|
def parent_models(self):
|
|
152
|
-
|
|
163
|
+
parents = self.di.build(self.config("parent_models_class"), cache=True)
|
|
164
|
+
for where in self.config("where"):
|
|
165
|
+
if callable(where):
|
|
166
|
+
parents = self.di.call_function(where, model=parents)
|
|
167
|
+
if not parents:
|
|
168
|
+
raise ValueError(
|
|
169
|
+
f"Configuration error for column '{self.name}' in model '{self.model_class.__name__}': when 'where' is a callable, it must return a models class, but when the callable in where entry #{index+1} was called, it did not return the models class"
|
|
170
|
+
)
|
|
171
|
+
else:
|
|
172
|
+
parents = parents.where(where)
|
|
173
|
+
return parents
|
|
153
174
|
|
|
154
175
|
@property
|
|
155
176
|
def parent_columns(self):
|
|
@@ -27,6 +27,7 @@ class HasMany(Column):
|
|
|
27
27
|
"is_readable",
|
|
28
28
|
"readable_child_columns",
|
|
29
29
|
"parent_id_column_name",
|
|
30
|
+
"where",
|
|
30
31
|
]
|
|
31
32
|
|
|
32
33
|
def __init__(self, di):
|
|
@@ -63,9 +64,10 @@ class HasMany(Column):
|
|
|
63
64
|
|
|
64
65
|
def _check_configuration(self, configuration):
|
|
65
66
|
super()._check_configuration(configuration)
|
|
67
|
+
error_prefix = f"Configuration error for '{self.name}' in '{self.model_class.__name__}':"
|
|
68
|
+
|
|
66
69
|
if configuration.get("is_readable"):
|
|
67
70
|
child_columns = self.di.build(configuration["child_models_class"], cache=True).raw_columns_configuration()
|
|
68
|
-
error_prefix = f"Configuration error for '{self.name}' in '{self.model_class.__name__}':"
|
|
69
71
|
if not "readable_child_columns" in configuration:
|
|
70
72
|
raise ValueError(f"{error_prefix} must provide 'readable_child_columns' if is_readable is set")
|
|
71
73
|
readable_child_columns = configuration["readable_child_columns"]
|
|
@@ -86,6 +88,19 @@ class HasMany(Column):
|
|
|
86
88
|
+ "column does not exist in the model class."
|
|
87
89
|
)
|
|
88
90
|
|
|
91
|
+
wheres = configuration.get("where")
|
|
92
|
+
if wheres:
|
|
93
|
+
if not isinstance(wheres, list):
|
|
94
|
+
raise ValueError(
|
|
95
|
+
f"{error_prefix} 'where' must be a list of where conditions or callables that return where conditions"
|
|
96
|
+
)
|
|
97
|
+
for index, where in enumerate(wheres):
|
|
98
|
+
if callable(where) or isinstance(where, str):
|
|
99
|
+
continue
|
|
100
|
+
raise ValueError(
|
|
101
|
+
f"{error_prefix} 'where' must be a list of where conditions or callables that return where conditions, but the item in entry #${index+1} was neither a string nor a callable"
|
|
102
|
+
)
|
|
103
|
+
|
|
89
104
|
def get_child_columns(self):
|
|
90
105
|
if "child_columns" not in self.configuration:
|
|
91
106
|
self.configuration["child_columns"] = self.child_models.columns()
|
|
@@ -119,7 +134,17 @@ class HasMany(Column):
|
|
|
119
134
|
|
|
120
135
|
@property
|
|
121
136
|
def child_models(self):
|
|
122
|
-
|
|
137
|
+
children = self.di.build(self.config("child_models_class"), cache=True)
|
|
138
|
+
for index, where in enumerate(self.config("where")):
|
|
139
|
+
if callable(where):
|
|
140
|
+
children = self.di.call_function(where, model=children)
|
|
141
|
+
if not children:
|
|
142
|
+
raise ValueError(
|
|
143
|
+
f"Configuration error for column '{self.name}' in model '{self.model_class.__name__}': when 'where' is a callable, it must return a models class, but when the callable in where entry #{index+1} was called, it did not return the models class"
|
|
144
|
+
)
|
|
145
|
+
else:
|
|
146
|
+
children = children.where(where)
|
|
147
|
+
return children
|
|
123
148
|
|
|
124
149
|
def documentation(self, name=None, example=None, value=None):
|
|
125
150
|
columns = self.get_child_columns()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/__init__.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/parameter.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/request.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/response.py
RENAMED
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/array.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/default.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/schema/object.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/autodoc/formats/oai3_json/test.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_routing_data.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/created_by_user_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/column_types/many_to_many_with_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/additional_config_auto_import.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/di/test_module/another_module/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/authentication.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/authorization.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/handlers/exceptions/client_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/exceptions/__init__.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/exceptions/cli_input_error.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_outputs/exceptions/cli_not_found.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_future_at_most.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_past_at_least.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/in_the_past_at_most.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/maximum_length.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/maximum_value.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/minimum_length.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/input_requirements/minimum_value.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/secrets/additional_configs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/x_content_type_options.py
RENAMED
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/security_headers/x_frame_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.22.0 → clear_skies-1.22.2}/src/clearskies/tests/simple_api/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|