zrb 0.23.4__py3-none-any.whl → 0.26.0__py3-none-any.whl
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.
- zrb/__init__.py +2 -0
- zrb/action/runner.py +8 -5
- zrb/advertisement.py +1 -2
- zrb/builtin/__init__.py +4 -0
- zrb/builtin/base64/decode.py +1 -1
- zrb/builtin/base64/encode.py +1 -1
- zrb/builtin/devtool/install/_helper.py +2 -1
- zrb/builtin/devtool/install/_input.py +2 -2
- zrb/builtin/docker/prune.py +11 -3
- zrb/builtin/env/get.py +3 -2
- zrb/builtin/eval.py +2 -1
- zrb/builtin/git/get_file_changes.py +2 -1
- zrb/builtin/md5/hash.py +1 -1
- zrb/builtin/md5/sum.py +1 -1
- zrb/builtin/monorepo/__init__.py +7 -0
- zrb/builtin/monorepo/_config.py +11 -0
- zrb/builtin/monorepo/_group.py +3 -0
- zrb/builtin/monorepo/_task.py +99 -0
- zrb/builtin/monorepo/add.py +40 -0
- zrb/builtin/monorepo/pull.py +23 -0
- zrb/builtin/monorepo/push.py +35 -0
- zrb/builtin/project/_helper.py +3 -3
- zrb/builtin/project/_input.py +2 -2
- zrb/builtin/project/add/app/generator/generator.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/snake_zrb_generator_name.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/app/python/python.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/fastapp/app/app.py +3 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +2 -53
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +2 -0
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +5 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +4 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build-once.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/{start_microservices.py → start_services.py} +2 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +1 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/_common.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/docker-compose.yml +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/locustfile.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/template.env +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/error.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/consumer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/messagebus.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/mock.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/consumer.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/model/repo_model.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/db_repo.py +7 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/repo.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/search_filter.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/caller.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/server.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/serializer/serializer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/config.py +59 -62
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/frontend/package-lock.json +4443 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/helper/async_task.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py +28 -28
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_lifespan.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py +14 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/frontend_index.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/log.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py +33 -33
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/rpc.py +9 -9
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/scheme.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/util.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_scheme.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/model/user_model.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/refresh_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/user.py +18 -18
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +5 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/template.env +5 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +4 -4
- zrb/builtin/project/add/fastapp/crud/_helper/__init__.py +7 -0
- zrb/builtin/project/add/fastapp/crud/_helper/_common.py +8 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_api.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_permission.py +40 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_rpc.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_task_factory.py +1 -2
- zrb/builtin/project/add/fastapp/crud/crud.py +4 -25
- zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +3 -3
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +12 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -2
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +9 -8
- zrb/builtin/project/add/fastapp/field/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/field/_helper/_common.py +102 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_delete_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_detail_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_insert_page.py +62 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_list_page.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_repo.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_schema.py +45 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_test.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_update_page.py +50 -0
- zrb/builtin/project/add/fastapp/field/_input.py +14 -2
- zrb/builtin/project/add/fastapp/field/field.py +52 -70
- zrb/builtin/project/add/fastapp/module/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_disabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_enabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_deployment_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_src_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_app_config.py +29 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +157 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_migration.py +35 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_module.py +33 -0
- zrb/builtin/project/add/fastapp/module/module.py +9 -38
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +8 -8
- zrb/builtin/project/add/plugin/plugin.py +3 -3
- zrb/builtin/project/add/project_task/add.py +1 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/remove.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/start.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/stop.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/deploy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/destroy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/get_env.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/push.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/publish.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/start.py +2 -1
- zrb/builtin/project/add/task/cmd/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/task/python/add.py +1 -1
- zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py +1 -1
- zrb/builtin/project/create/_helper.py +1 -1
- zrb/builtin/project/create/create.py +3 -3
- zrb/builtin/say.py +3 -3
- zrb/builtin/version.py +5 -4
- zrb/config/config.py +24 -14
- zrb/helper/accessories/color.py +2 -1
- zrb/helper/advertisement.py +2 -1
- zrb/helper/asyncio_task.py +23 -0
- zrb/helper/callable.py +4 -1
- zrb/helper/cli.py +20 -6
- zrb/helper/codemod/add_import_module.py +3 -2
- zrb/helper/codemod/add_property_to_class.py +2 -1
- zrb/helper/default_env.py +2 -1
- zrb/helper/docker_compose/fetch_external_env.py +4 -2
- zrb/helper/docker_compose/file.py +3 -1
- zrb/helper/env_map/fetch.py +3 -2
- zrb/helper/file/copy_tree.py +2 -1
- zrb/helper/file/match.py +2 -2
- zrb/helper/git/detect_changes.py +1 -1
- zrb/helper/loader/load_module.py +7 -46
- zrb/helper/loader/load_script.py +57 -0
- zrb/helper/log.py +3 -3
- zrb/helper/map/conversion.py +3 -1
- zrb/helper/string/jinja.py +2 -1
- zrb/helper/string/parse_replacement.py +1 -1
- zrb/helper/typecheck.py +2 -2
- zrb/helper/typing.py +5 -27
- zrb/helper/util.py +13 -1
- zrb/runner.py +2 -2
- zrb/task/any_task.py +9 -17
- zrb/task/any_task_event_handler.py +3 -1
- zrb/task/base_remote_cmd_task.py +3 -10
- zrb/task/base_task/base_task.py +15 -11
- zrb/task/base_task/component/base_task_model.py +15 -22
- zrb/task/base_task/component/common_task_model.py +15 -22
- zrb/task/base_task/component/renderer.py +3 -1
- zrb/task/base_task/component/trackers.py +1 -1
- zrb/task/checker.py +2 -1
- zrb/task/cmd_task.py +10 -22
- zrb/task/decorator.py +3 -1
- zrb/task/docker_compose_start_task.py +146 -0
- zrb/task/docker_compose_task.py +43 -34
- zrb/task/flow_task.py +19 -17
- zrb/task/http_checker.py +3 -9
- zrb/task/looper.py +4 -2
- zrb/task/notifier.py +3 -1
- zrb/task/parallel.py +4 -4
- zrb/task/path_checker.py +6 -12
- zrb/task/path_watcher.py +5 -13
- zrb/task/port_checker.py +3 -9
- zrb/task/recurring_task.py +5 -4
- zrb/task/remote_cmd_task.py +2 -1
- zrb/task/resource_maker.py +6 -13
- zrb/task/rsync_task.py +3 -1
- zrb/task/server.py +13 -12
- zrb/task/time_watcher.py +3 -10
- zrb/task/watcher.py +2 -1
- zrb/task/wiki_task.py +4 -3
- zrb/task_env/env.py +2 -1
- zrb/task_env/env_file.py +7 -6
- zrb/task_group/group.py +8 -7
- zrb/task_input/any_input.py +4 -3
- zrb/task_input/base_input.py +7 -5
- zrb/task_input/bool_input.py +2 -1
- zrb/task_input/choice_input.py +3 -1
- zrb/task_input/float_input.py +2 -1
- zrb/task_input/int_input.py +2 -1
- zrb/task_input/multiline_input.py +5 -3
- zrb/task_input/password_input.py +2 -1
- zrb/task_input/str_input.py +2 -1
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/METADATA +2 -2
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/RECORD +242 -214
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/init.py +0 -26
- zrb/builtin/project/add/fastapp/crud/_helper.py +0 -118
- zrb/builtin/project/add/fastapp/field/_helper.py +0 -328
- zrb/builtin/project/add/fastapp/module/_helper.py +0 -313
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/LICENSE +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/WHEEL +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/entry_points.txt +0 -0
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
2
|
+
APP_AUTH_ACCESS_TOKEN_COOKIE_KEY,
|
3
|
+
APP_AUTH_REFRESH_TOKEN_COOKIE_KEY,
|
4
|
+
APP_BRAND,
|
5
|
+
APP_CORS_ALLOW_CREDENTIALS,
|
6
|
+
APP_CORS_ALLOW_HEADERS,
|
7
|
+
APP_CORS_ALLOW_METHODS,
|
8
|
+
APP_CORS_ALLOW_ORIGIN_REGEX,
|
9
|
+
APP_CORS_ALLOW_ORIGINS,
|
10
|
+
APP_CORS_EXPOSE_HEADERS,
|
11
|
+
APP_CORS_MAX_AGE,
|
12
|
+
APP_ENABLE_FRONTEND,
|
13
|
+
APP_NAME,
|
14
|
+
APP_TITLE,
|
15
15
|
)
|
16
16
|
from fastapi import FastAPI, status
|
17
17
|
from fastapi.middleware.cors import CORSMiddleware
|
@@ -21,9 +21,9 @@ from integration.app.app_state import app_state
|
|
21
21
|
from integration.frontend_index import frontend_index_response
|
22
22
|
from schema.frontend_config import FrontendConfig
|
23
23
|
|
24
|
-
app = FastAPI(title=
|
24
|
+
app = FastAPI(title=APP_NAME, lifespan=app_lifespan)
|
25
25
|
|
26
|
-
if
|
26
|
+
if APP_ENABLE_FRONTEND:
|
27
27
|
|
28
28
|
@app.middleware("http")
|
29
29
|
async def catch_all(request, call_next):
|
@@ -38,13 +38,13 @@ if app_enable_frontend:
|
|
38
38
|
|
39
39
|
app.add_middleware(
|
40
40
|
CORSMiddleware,
|
41
|
-
allow_origins=
|
42
|
-
allow_origin_regex=
|
43
|
-
allow_methods=
|
44
|
-
allow_headers=
|
45
|
-
allow_credentials=
|
46
|
-
expose_headers=
|
47
|
-
max_age=
|
41
|
+
allow_origins=APP_CORS_ALLOW_ORIGINS,
|
42
|
+
allow_origin_regex=APP_CORS_ALLOW_ORIGIN_REGEX,
|
43
|
+
allow_methods=APP_CORS_ALLOW_METHODS,
|
44
|
+
allow_headers=APP_CORS_ALLOW_HEADERS,
|
45
|
+
allow_credentials=APP_CORS_ALLOW_CREDENTIALS,
|
46
|
+
expose_headers=APP_CORS_EXPOSE_HEADERS,
|
47
|
+
max_age=APP_CORS_MAX_AGE,
|
48
48
|
)
|
49
49
|
|
50
50
|
|
@@ -60,7 +60,7 @@ def get_application_liveness_status():
|
|
60
60
|
"""
|
61
61
|
if app_state.get_liveness():
|
62
62
|
return JSONResponse(
|
63
|
-
content={"app":
|
63
|
+
content={"app": APP_NAME, "alive": True}, status_code=status.HTTP_200_OK
|
64
64
|
)
|
65
65
|
return JSONResponse(
|
66
66
|
content={"message": "Service is not alive"},
|
@@ -81,7 +81,7 @@ def get_application_readiness_status():
|
|
81
81
|
"""
|
82
82
|
if app_state.get_readiness():
|
83
83
|
return JSONResponse(
|
84
|
-
content={"app":
|
84
|
+
content={"app": APP_NAME, "ready": True}, status_code=status.HTTP_200_OK
|
85
85
|
)
|
86
86
|
return JSONResponse(
|
87
87
|
content={"message": "Service is not ready"},
|
@@ -93,8 +93,8 @@ def get_application_readiness_status():
|
|
93
93
|
@app.get("/api/v1/frontend/configs", response_model=FrontendConfig)
|
94
94
|
def get_configs() -> FrontendConfig:
|
95
95
|
return FrontendConfig(
|
96
|
-
brand=
|
97
|
-
title=
|
98
|
-
access_token_cookie_key=
|
99
|
-
refresh_token_cookie_key=
|
96
|
+
brand=APP_BRAND,
|
97
|
+
title=APP_TITLE,
|
98
|
+
access_token_cookie_key=APP_AUTH_ACCESS_TOKEN_COOKIE_KEY,
|
99
|
+
refresh_token_cookie_key=APP_AUTH_REFRESH_TOKEN_COOKIE_KEY,
|
100
100
|
)
|
@@ -2,12 +2,12 @@ import os
|
|
2
2
|
from contextlib import asynccontextmanager
|
3
3
|
|
4
4
|
from config import (
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
APP_DB_AUTO_MIGRATE,
|
6
|
+
APP_ENABLE_EVENT_HANDLER,
|
7
|
+
APP_ENABLE_FRONTEND,
|
8
|
+
APP_ENABLE_RPC_SERVER,
|
9
|
+
APP_NAME,
|
10
|
+
APP_SRC_DIR,
|
11
11
|
)
|
12
12
|
from fastapi import FastAPI
|
13
13
|
from fastapi.staticfiles import StaticFiles
|
@@ -21,24 +21,24 @@ from migrate import migrate
|
|
21
21
|
|
22
22
|
@asynccontextmanager
|
23
23
|
async def app_lifespan(app: FastAPI):
|
24
|
-
logger.info(f"{
|
25
|
-
if
|
24
|
+
logger.info(f"{APP_NAME} started")
|
25
|
+
if APP_DB_AUTO_MIGRATE:
|
26
26
|
await migrate()
|
27
27
|
app_state.set_liveness(True)
|
28
|
-
if
|
28
|
+
if APP_ENABLE_EVENT_HANDLER:
|
29
29
|
create_task(consumer.start(), on_error=set_not_ready_on_error)
|
30
|
-
if
|
30
|
+
if APP_ENABLE_RPC_SERVER:
|
31
31
|
create_task(rpc_server.start(), on_error=set_not_ready_on_error)
|
32
|
-
if
|
33
|
-
build_path = os.path.join(
|
32
|
+
if APP_ENABLE_FRONTEND:
|
33
|
+
build_path = os.path.join(APP_SRC_DIR, "frontend", "build")
|
34
34
|
app.mount(
|
35
35
|
path="",
|
36
36
|
app=StaticFiles(directory=build_path, html=True),
|
37
37
|
name="frontend-static-resources",
|
38
38
|
)
|
39
39
|
app_state.set_readiness(True)
|
40
|
-
logger.info(f"{
|
40
|
+
logger.info(f"{APP_NAME} started")
|
41
41
|
yield
|
42
|
-
if
|
42
|
+
if APP_ENABLE_EVENT_HANDLER:
|
43
43
|
await consumer.stop()
|
44
|
-
logger.info(f"{
|
44
|
+
logger.info(f"{APP_NAME} closed")
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
|
-
from config import
|
3
|
+
from config import APP_MAX_NOT_READY
|
4
4
|
from integration.log import logger
|
5
5
|
|
6
6
|
|
@@ -35,5 +35,5 @@ app_state = AppState()
|
|
35
35
|
async def set_not_ready_on_error(exception: Exception):
|
36
36
|
logger.critical(exception)
|
37
37
|
app_state.set_readiness(False)
|
38
|
-
await asyncio.sleep(
|
38
|
+
await asyncio.sleep(APP_MAX_NOT_READY)
|
39
39
|
app_state.set_liveness(False)
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
import time
|
2
2
|
|
3
|
-
from config import
|
3
|
+
from config import (
|
4
|
+
APP_DB_CONNECTION,
|
5
|
+
APP_DB_ENGINE_SHOW_LOG,
|
6
|
+
APP_DB_POOL_MAX_OVERFLOW,
|
7
|
+
APP_DB_POOL_PRE_PING,
|
8
|
+
APP_DB_POOL_SIZE,
|
9
|
+
)
|
4
10
|
from integration.log import logger
|
5
11
|
from sqlalchemy import Engine, create_engine, event
|
6
12
|
|
@@ -27,4 +33,10 @@ def after_cursor_execute(conn, cursor, statement, parameters, context, executema
|
|
27
33
|
)
|
28
34
|
|
29
35
|
|
30
|
-
engine: Engine = create_engine(
|
36
|
+
engine: Engine = create_engine(
|
37
|
+
APP_DB_CONNECTION,
|
38
|
+
echo=APP_DB_ENGINE_SHOW_LOG,
|
39
|
+
pool_pre_ping=APP_DB_POOL_PRE_PING,
|
40
|
+
pool_size=APP_DB_POOL_SIZE,
|
41
|
+
max_identifier_length=APP_DB_POOL_MAX_OVERFLOW,
|
42
|
+
)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import os
|
2
2
|
|
3
|
-
from config import
|
3
|
+
from config import APP_SRC_DIR
|
4
4
|
from fastapi.responses import HTMLResponse
|
5
5
|
|
6
|
-
index_html_path = os.path.join(
|
6
|
+
index_html_path = os.path.join(APP_SRC_DIR, "frontend", "build", "index.html")
|
7
7
|
with open(index_html_path, "r") as f:
|
8
8
|
index_html_content = f.read()
|
9
9
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
|
-
from config import
|
3
|
+
from config import APP_ENABLE_OTEL, APP_LOGGING_LEVEL, APP_OTEL_EXPORTER_OTLP_ENDPOINT
|
4
4
|
from opentelemetry._logs import set_logger_provider
|
5
5
|
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import OTLPLogExporter
|
6
6
|
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
|
@@ -10,14 +10,14 @@ from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
|
|
10
10
|
# Create logger
|
11
11
|
##############################################################################
|
12
12
|
logger = logging.getLogger("src")
|
13
|
-
logger.setLevel(
|
13
|
+
logger.setLevel(APP_LOGGING_LEVEL)
|
14
14
|
|
15
15
|
##############################################################################
|
16
16
|
# Formatter log handler
|
17
17
|
##############################################################################
|
18
18
|
|
19
19
|
stream_handler = logging.StreamHandler()
|
20
|
-
stream_handler.setLevel(
|
20
|
+
stream_handler.setLevel(APP_LOGGING_LEVEL)
|
21
21
|
# create formatter
|
22
22
|
formatter = logging.Formatter("%(levelname)s:\t%(message)s")
|
23
23
|
# set stream handler's formatter
|
@@ -29,17 +29,17 @@ logger.addHandler(stream_handler)
|
|
29
29
|
# Open telemetry log handler
|
30
30
|
##############################################################################
|
31
31
|
|
32
|
-
if
|
32
|
+
if APP_ENABLE_OTEL:
|
33
33
|
# create logger providers
|
34
34
|
otlp_logger_provider = LoggerProvider()
|
35
35
|
# set the providers
|
36
36
|
set_logger_provider(otlp_logger_provider)
|
37
|
-
otlp_log_exporter = OTLPLogExporter(endpoint=
|
37
|
+
otlp_log_exporter = OTLPLogExporter(endpoint=APP_OTEL_EXPORTER_OTLP_ENDPOINT)
|
38
38
|
# add the batch processors to the trace provider
|
39
39
|
otlp_logger_provider.add_log_record_processor(
|
40
40
|
BatchLogRecordProcessor(otlp_log_exporter)
|
41
41
|
)
|
42
42
|
otlp_log_handler = LoggingHandler(
|
43
|
-
level=
|
43
|
+
level=APP_LOGGING_LEVEL, logger_provider=otlp_logger_provider
|
44
44
|
)
|
45
45
|
logger.addHandler(otlp_log_handler)
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py
CHANGED
@@ -14,31 +14,31 @@ from component.messagebus import (
|
|
14
14
|
RMQPublisher,
|
15
15
|
)
|
16
16
|
from config import (
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
17
|
+
APP_BROKER_TYPE,
|
18
|
+
APP_KAFKA_BOOTSTRAP_SERVERS,
|
19
|
+
APP_KAFKA_SASL_MECHANISM,
|
20
|
+
APP_KAFKA_SASL_PASS,
|
21
|
+
APP_KAFKA_SASL_USER,
|
22
|
+
APP_KAFKA_SECURITY_PROTOCOL,
|
23
|
+
APP_NAME,
|
24
|
+
APP_RMQ_CONNECTION_STRING,
|
25
25
|
)
|
26
26
|
from integration.log import logger
|
27
27
|
|
28
28
|
|
29
29
|
def init_admin(default_admin: Admin) -> Admin:
|
30
|
-
if
|
30
|
+
if APP_BROKER_TYPE == "rabbitmq":
|
31
31
|
return RMQAdmin(
|
32
|
-
logger=logger, connection_string=
|
32
|
+
logger=logger, connection_string=APP_RMQ_CONNECTION_STRING, configs={}
|
33
33
|
)
|
34
|
-
if
|
34
|
+
if APP_BROKER_TYPE == "kafka":
|
35
35
|
return KafkaAdmin(
|
36
36
|
logger=logger,
|
37
|
-
bootstrap_servers=
|
38
|
-
security_protocol=
|
39
|
-
sasl_mechanism=
|
40
|
-
sasl_plain_username=
|
41
|
-
sasl_plain_password=
|
37
|
+
bootstrap_servers=APP_KAFKA_BOOTSTRAP_SERVERS,
|
38
|
+
security_protocol=APP_KAFKA_SECURITY_PROTOCOL,
|
39
|
+
sasl_mechanism=APP_KAFKA_SASL_MECHANISM,
|
40
|
+
sasl_plain_username=APP_KAFKA_SASL_USER,
|
41
|
+
sasl_plain_password=APP_KAFKA_SASL_PASS,
|
42
42
|
configs={},
|
43
43
|
)
|
44
44
|
return default_admin
|
@@ -47,21 +47,21 @@ def init_admin(default_admin: Admin) -> Admin:
|
|
47
47
|
def init_publisher(
|
48
48
|
serializer: MessageSerializer, admin: Admin, default_publisher: Publisher
|
49
49
|
) -> Publisher:
|
50
|
-
if
|
50
|
+
if APP_BROKER_TYPE == "rabbitmq":
|
51
51
|
return RMQPublisher(
|
52
52
|
logger=logger,
|
53
|
-
connection_string=
|
53
|
+
connection_string=APP_RMQ_CONNECTION_STRING,
|
54
54
|
serializer=serializer,
|
55
55
|
rmq_admin=admin,
|
56
56
|
)
|
57
|
-
if
|
57
|
+
if APP_BROKER_TYPE == "kafka":
|
58
58
|
return KafkaPublisher(
|
59
59
|
logger=logger,
|
60
|
-
bootstrap_servers=
|
61
|
-
security_protocol=
|
62
|
-
sasl_mechanism=
|
63
|
-
sasl_plain_username=
|
64
|
-
sasl_plain_password=
|
60
|
+
bootstrap_servers=APP_KAFKA_BOOTSTRAP_SERVERS,
|
61
|
+
security_protocol=APP_KAFKA_SECURITY_PROTOCOL,
|
62
|
+
sasl_mechanism=APP_KAFKA_SASL_MECHANISM,
|
63
|
+
sasl_plain_username=APP_KAFKA_SASL_USER,
|
64
|
+
sasl_plain_password=APP_KAFKA_SASL_PASS,
|
65
65
|
serializer=serializer,
|
66
66
|
kafka_admin=admin,
|
67
67
|
)
|
@@ -71,22 +71,22 @@ def init_publisher(
|
|
71
71
|
def init_consumer(
|
72
72
|
serializer: MessageSerializer, admin: Admin, default_consumer: Consumer
|
73
73
|
) -> Consumer:
|
74
|
-
if
|
74
|
+
if APP_BROKER_TYPE == "rabbitmq":
|
75
75
|
return RMQConsumer(
|
76
76
|
logger=logger,
|
77
|
-
connection_string=
|
77
|
+
connection_string=APP_RMQ_CONNECTION_STRING,
|
78
78
|
serializer=serializer,
|
79
79
|
rmq_admin=admin,
|
80
80
|
)
|
81
|
-
if
|
81
|
+
if APP_BROKER_TYPE == "kafka":
|
82
82
|
return KafkaConsumer(
|
83
83
|
logger=logger,
|
84
|
-
bootstrap_servers=
|
85
|
-
security_protocol=
|
86
|
-
sasl_mechanism=
|
87
|
-
sasl_plain_username=
|
88
|
-
sasl_plain_password=
|
89
|
-
group_id=
|
84
|
+
bootstrap_servers=APP_KAFKA_BOOTSTRAP_SERVERS,
|
85
|
+
security_protocol=APP_KAFKA_SECURITY_PROTOCOL,
|
86
|
+
sasl_mechanism=APP_KAFKA_SASL_MECHANISM,
|
87
|
+
sasl_plain_username=APP_KAFKA_SASL_USER,
|
88
|
+
sasl_plain_password=APP_KAFKA_SASL_PASS,
|
89
|
+
group_id=APP_NAME,
|
90
90
|
serializer=serializer,
|
91
91
|
kafka_admin=admin,
|
92
92
|
)
|
@@ -1,10 +1,10 @@
|
|
1
1
|
from component.messagebus import KafkaConsumer, RMQConsumer
|
2
2
|
from component.rpc import Caller, MessagebusCaller, MessagebusServer, Server
|
3
3
|
from config import (
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
APP_BROKER_TYPE,
|
5
|
+
APP_KAFKA_BOOTSTRAP_SERVERS,
|
6
|
+
APP_NAME,
|
7
|
+
APP_RMQ_CONNECTION_STRING,
|
8
8
|
)
|
9
9
|
from integration.log import logger
|
10
10
|
from integration.messagebus import (
|
@@ -18,20 +18,20 @@ from ulid import ULID
|
|
18
18
|
|
19
19
|
|
20
20
|
def create_consumer():
|
21
|
-
if
|
21
|
+
if APP_BROKER_TYPE == "rabbitmq":
|
22
22
|
return RMQConsumer(
|
23
23
|
logger=logger,
|
24
|
-
connection_string=
|
24
|
+
connection_string=APP_RMQ_CONNECTION_STRING,
|
25
25
|
serializer=message_serializer,
|
26
26
|
rmq_admin=admin,
|
27
27
|
identifier="rmq-rpc-reply-consumer",
|
28
28
|
)
|
29
|
-
if
|
29
|
+
if APP_BROKER_TYPE == "kafka":
|
30
30
|
random_uuid = str(ULID())
|
31
|
-
group_id = f"{
|
31
|
+
group_id = f"{APP_NAME}-reply-{random_uuid}"
|
32
32
|
return KafkaConsumer(
|
33
33
|
logger=logger,
|
34
|
-
bootstrap_servers=
|
34
|
+
bootstrap_servers=APP_KAFKA_BOOTSTRAP_SERVERS,
|
35
35
|
group_id=group_id,
|
36
36
|
serializer=message_serializer,
|
37
37
|
kafka_admin=admin,
|
@@ -1,4 +1,5 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import Mapping
|
2
|
+
from typing import Optional
|
2
3
|
|
3
4
|
from component.messagebus.messagebus import Publisher
|
4
5
|
from module.auth.component import AccessTokenUtil, RefreshTokenUtil
|
@@ -81,7 +82,7 @@ class UserModel(HistoricalRepoModel[User, UserData, UserResult]):
|
|
81
82
|
for permission_name in permission_names
|
82
83
|
}
|
83
84
|
|
84
|
-
def _get_permission_names(self, user: User) ->
|
85
|
+
def _get_permission_names(self, user: User) -> list[str]:
|
85
86
|
permission_names = [permission.name for permission in user.permissions]
|
86
87
|
for group in user.groups:
|
87
88
|
additional_permission_names = [
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import logging
|
2
2
|
from abc import ABC, abstractmethod
|
3
|
-
from
|
3
|
+
from collections.abc import Mapping
|
4
|
+
from typing import Any
|
4
5
|
|
5
6
|
from component.repo import DBEntityMixin, DBRepo, Repo
|
6
7
|
from module.auth.component import PasswordHasher
|
@@ -46,7 +47,7 @@ class UserDBRepo(DBRepo[User, UserData], UserRepo):
|
|
46
47
|
|
47
48
|
async def get_by_user_login(self, user_login: UserLogin) -> User:
|
48
49
|
db = self._get_db_session()
|
49
|
-
db_users:
|
50
|
+
db_users: list[DBEntityUser] = []
|
50
51
|
try:
|
51
52
|
search_filter = or_(
|
52
53
|
DBEntityUser.username == user_login.identity,
|
@@ -1,5 +1,6 @@
|
|
1
|
+
from collections.abc import Mapping
|
1
2
|
from logging import Logger
|
2
|
-
from typing import Any,
|
3
|
+
from typing import Any, Union
|
3
4
|
|
4
5
|
from component.messagebus import Publisher
|
5
6
|
from component.repo import SearchFilter
|
@@ -30,7 +31,7 @@ def register_rpc(
|
|
30
31
|
|
31
32
|
@rpc_server.register("auth_is_user_authorized")
|
32
33
|
async def is_user_having_permission(
|
33
|
-
id: str, permission_name: Union[str,
|
34
|
+
id: str, permission_name: Union[str, list[str]]
|
34
35
|
) -> Mapping[str, bool]:
|
35
36
|
"""
|
36
37
|
Used by RPC Authenticator
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from config import
|
1
|
+
from config import APP_AUTH_ACCESS_TOKEN_COOKIE_KEY
|
2
2
|
from module.auth.component import (
|
3
3
|
AccessTokenScheme,
|
4
4
|
create_oauth2_bearer_access_token_scheme,
|
@@ -11,6 +11,6 @@ access_token_scheme: AccessTokenScheme = (
|
|
11
11
|
guest_user=guest_user,
|
12
12
|
access_token_util=access_token_util,
|
13
13
|
token_url="/api/v1/auth/login-oauth",
|
14
|
-
token_cookie_key=
|
14
|
+
token_cookie_key=APP_AUTH_ACCESS_TOKEN_COOKIE_KEY,
|
15
15
|
)
|
16
16
|
)
|
@@ -1,18 +1,18 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
APP_AUTH_ACCESS_TOKEN_TYPE,
|
3
|
+
APP_AUTH_JWT_TOKEN_ALGORITHM,
|
4
|
+
APP_AUTH_JWT_TOKEN_SECRET_KEY,
|
5
5
|
)
|
6
6
|
from module.auth.component import AccessTokenUtil, JWTAccessTokenUtil
|
7
7
|
|
8
8
|
|
9
9
|
def init_token_util() -> AccessTokenUtil:
|
10
|
-
if
|
10
|
+
if APP_AUTH_ACCESS_TOKEN_TYPE.lower() == "jwt":
|
11
11
|
return JWTAccessTokenUtil(
|
12
|
-
secret_key=
|
13
|
-
algorithm=
|
12
|
+
secret_key=APP_AUTH_JWT_TOKEN_SECRET_KEY,
|
13
|
+
algorithm=APP_AUTH_JWT_TOKEN_ALGORITHM,
|
14
14
|
)
|
15
|
-
raise ValueError(f"Invalid auth token type: {
|
15
|
+
raise ValueError(f"Invalid auth token type: {APP_AUTH_ACCESS_TOKEN_TYPE}")
|
16
16
|
|
17
17
|
|
18
18
|
access_token_util = init_token_util()
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
APP_AUTH_ACCESS_TOKEN_EXPIRE_SECONDS,
|
3
|
+
APP_AUTH_ADMIN_ACTIVE,
|
4
|
+
APP_AUTH_REFRESH_TOKEN_EXPIRE_SECONDS,
|
5
5
|
)
|
6
6
|
from integration.messagebus import publisher
|
7
7
|
from module.auth.entity.user.model import UserModel
|
@@ -15,10 +15,10 @@ user_model: UserModel = UserModel(
|
|
15
15
|
publisher=publisher,
|
16
16
|
permission_model=permission_model,
|
17
17
|
access_token_util=access_token_util,
|
18
|
-
access_token_expire_seconds=
|
18
|
+
access_token_expire_seconds=APP_AUTH_ACCESS_TOKEN_EXPIRE_SECONDS,
|
19
19
|
refresh_token_util=refresh_token_util,
|
20
|
-
refresh_token_expire_seconds=
|
20
|
+
refresh_token_expire_seconds=APP_AUTH_REFRESH_TOKEN_EXPIRE_SECONDS,
|
21
21
|
guest_user=guest_user,
|
22
|
-
admin_user=admin_user if
|
22
|
+
admin_user=admin_user if APP_AUTH_ADMIN_ACTIVE else None,
|
23
23
|
admin_user_password=admin_user_password,
|
24
24
|
)
|
@@ -1,18 +1,18 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
APP_AUTH_JWT_TOKEN_ALGORITHM,
|
3
|
+
APP_AUTH_JWT_TOKEN_SECRET_KEY,
|
4
|
+
APP_AUTH_REFRESH_TOKEN_TYPE,
|
5
5
|
)
|
6
6
|
from module.auth.component import JWTRefreshTokenUtil, RefreshTokenUtil
|
7
7
|
|
8
8
|
|
9
9
|
def init_token_util() -> RefreshTokenUtil:
|
10
|
-
if
|
10
|
+
if APP_AUTH_REFRESH_TOKEN_TYPE.lower() == "jwt":
|
11
11
|
return JWTRefreshTokenUtil(
|
12
|
-
secret_key=
|
13
|
-
algorithm=
|
12
|
+
secret_key=APP_AUTH_JWT_TOKEN_SECRET_KEY,
|
13
|
+
algorithm=APP_AUTH_JWT_TOKEN_ALGORITHM,
|
14
14
|
)
|
15
|
-
raise ValueError(f"Invalid auth token type: {
|
15
|
+
raise ValueError(f"Invalid auth token type: {APP_AUTH_REFRESH_TOKEN_TYPE}")
|
16
16
|
|
17
17
|
|
18
18
|
refresh_token_util = init_token_util()
|