aury-boot 0.0.14__tar.gz → 0.0.15__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.
- {aury_boot-0.0.14 → aury_boot-0.0.15}/PKG-INFO +1 -1
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/_version.py +2 -2
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/middleware/logging.py +1 -13
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +5 -41
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/logging/__init__.py +0 -5
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/logging/context.py +1 -52
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/manager.py +8 -2
- {aury_boot-0.0.14 → aury_boot-0.0.15}/.gitignore +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/README.md +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/adapter/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/adapter/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/adapter/config.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/adapter/decorators.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/adapter/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/adapter/http.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/app/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/app/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/app/components.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/app/middlewares.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/app/startup.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/config/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/config/multi_instance.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/config/settings.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/constants/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/constants/components.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/constants/scheduler.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/constants/service.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/errors/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/errors/chain.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/errors/codes.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/errors/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/errors/handlers.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/errors/response.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/interfaces/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/interfaces/egress.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/interfaces/ingress.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/middleware/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/migrations/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/migrations/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/migrations/setup.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/rpc/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/rpc/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/rpc/client.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/rpc/discovery.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/scheduler/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/scheduler/runner.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/application/server/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/add.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/app.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/config.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/docker.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/docs.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/generate.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/init.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/migrate/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/migrate/app.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/migrate/commands.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/pkg.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/scheduler.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/server/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/server/app.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/AGENTS.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/README.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/config.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/log.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/messaging.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/rpc.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/third_party.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/main.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/worker.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/exceptions/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/i18n/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/i18n/translator.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/logging/decorators.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/logging/format.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/common/logging/setup.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/contrib/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/contrib/admin_console/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/contrib/admin_console/auth.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/contrib/admin_console/discovery.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/contrib/admin_console/install.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/contrib/admin_console/utils.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/exceptions/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/models/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/models/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/models/mixins.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/models/models.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/pagination/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/repository/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/repository/impl.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/repository/interceptors.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/repository/interface.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/repository/query_builder.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/service/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/service/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/domain/transaction/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/cache/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/cache/backends.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/cache/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/cache/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/cache/factory.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/cache/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/channel/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/channel/backends/memory.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/channel/backends/redis.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/channel/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/channel/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/redis/config.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/config.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/di/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/di/container.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/backends/memory.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/backends/redis.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/events/middleware.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/mq/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/mq/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/mq/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/scheduler/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/storage/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/storage/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/storage/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/storage/factory.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/tasks/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/tasks/config.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/tasks/constants.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/tasks/manager.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/testing/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/testing/base.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/testing/client.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/testing/factory.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/toolkit/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/toolkit/http/__init__.py +0 -0
- {aury_boot-0.0.14 → aury_boot-0.0.15}/pyproject.toml +0 -0
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
31
|
+
__version__ = version = '0.0.15'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 15)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -17,7 +17,7 @@ from starlette.requests import Request
|
|
|
17
17
|
from starlette.responses import Response
|
|
18
18
|
|
|
19
19
|
from aury.boot.application.errors import global_exception_handler
|
|
20
|
-
from aury.boot.common.logging import
|
|
20
|
+
from aury.boot.common.logging import logger, set_trace_id
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def log_request[T](func: Callable[..., T]) -> Callable[..., T]:
|
|
@@ -187,12 +187,6 @@ class RequestLoggingMiddleware(BaseHTTPMiddleware):
|
|
|
187
187
|
)
|
|
188
188
|
logger.log(log_level.upper(), response_log)
|
|
189
189
|
|
|
190
|
-
# 记录请求上下文(user_id, tenant_id 等用户注册的字段)
|
|
191
|
-
request_contexts = get_request_contexts()
|
|
192
|
-
if request_contexts:
|
|
193
|
-
ctx_str = " | ".join(f"{k}: {v}" for k, v in request_contexts.items())
|
|
194
|
-
logger.info(f"[REQUEST_CONTEXT] Trace-ID: {trace_id} | {ctx_str}")
|
|
195
|
-
|
|
196
190
|
# 写入 access 日志(简洁格式)
|
|
197
191
|
logger.bind(access=True).info(
|
|
198
192
|
f"{request.method} {request.url.path} {status_code} {duration:.3f}s"
|
|
@@ -216,12 +210,6 @@ class RequestLoggingMiddleware(BaseHTTPMiddleware):
|
|
|
216
210
|
f"耗时: {duration:.3f}s | Trace-ID: {trace_id}"
|
|
217
211
|
)
|
|
218
212
|
|
|
219
|
-
# 记录请求上下文(即使异常也要记录,便于追踪问题)
|
|
220
|
-
request_contexts = get_request_contexts()
|
|
221
|
-
if request_contexts:
|
|
222
|
-
ctx_str = " | ".join(f"{k}: {v}" for k, v in request_contexts.items())
|
|
223
|
-
logger.info(f"[REQUEST_CONTEXT] Trace-ID: {trace_id} | {ctx_str}")
|
|
224
|
-
|
|
225
213
|
# 使用全局异常处理器生成响应,而不是直接抛出异常
|
|
226
214
|
# BaseHTTPMiddleware 中直接 raise 会绕过 FastAPI 的异常处理器
|
|
227
215
|
response = await global_exception_handler(request, exc)
|
|
@@ -19,44 +19,8 @@ logger.exception("异常信息") # 自动记录堆栈
|
|
|
19
19
|
2024-01-15 12:00:00 | INFO | app.service:create:42 | abc123 - 操作成功
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
## 11.2 注入用户信息
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
```python
|
|
27
|
-
# app/auth/context.py
|
|
28
|
-
from contextvars import ContextVar
|
|
29
|
-
from aury.boot.common.logging import register_request_context
|
|
30
|
-
|
|
31
|
-
_user_id: ContextVar[str] = ContextVar("user_id", default="")
|
|
32
|
-
|
|
33
|
-
def set_user_id(uid: str) -> None:
|
|
34
|
-
_user_id.set(uid)
|
|
35
|
-
|
|
36
|
-
# 启动时注册(只需一次)
|
|
37
|
-
register_request_context("user_id", _user_id.get)
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
在认证中间件中设置(order < 100 以在日志中间件前执行):
|
|
41
|
-
|
|
42
|
-
```python
|
|
43
|
-
class AuthMiddleware(Middleware):
|
|
44
|
-
order = 50 # 在日志中间件(order=100)之前执行
|
|
45
|
-
|
|
46
|
-
async def dispatch(self, request, call_next):
|
|
47
|
-
user = await verify_token(request)
|
|
48
|
-
if user:
|
|
49
|
-
set_user_id(str(user.id))
|
|
50
|
-
return await call_next(request)
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
结果:
|
|
54
|
-
```
|
|
55
|
-
← GET /api/users | 状态: 200 | 耗时: 0.05s | Trace-ID: abc123
|
|
56
|
-
[REQUEST_CONTEXT] Trace-ID: abc123 | user_id: 123
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## 11.3 性能监控装饰器
|
|
23
|
+
## 11.2 性能监控装饰器
|
|
60
24
|
|
|
61
25
|
```python
|
|
62
26
|
from aury.boot.common.logging import log_performance, log_exceptions
|
|
@@ -70,7 +34,7 @@ async def risky_operation():
|
|
|
70
34
|
...
|
|
71
35
|
```
|
|
72
36
|
|
|
73
|
-
## 11.
|
|
37
|
+
## 11.3 HTTP 请求日志
|
|
74
38
|
|
|
75
39
|
框架内置 `RequestLoggingMiddleware` 自动记录:
|
|
76
40
|
|
|
@@ -85,7 +49,7 @@ async def risky_operation():
|
|
|
85
49
|
慢请求: GET /api/reports | 耗时: 2.345s (超过1秒) | Trace-ID: abc123
|
|
86
50
|
```
|
|
87
51
|
|
|
88
|
-
## 11.
|
|
52
|
+
## 11.4 自定义日志文件
|
|
89
53
|
|
|
90
54
|
为特定业务创建独立的日志文件:
|
|
91
55
|
|
|
@@ -99,7 +63,7 @@ register_log_sink("payment", filter_key="payment")
|
|
|
99
63
|
logger.bind(payment=True).info(f"支付成功 | 订单: {{order_id}}")
|
|
100
64
|
```
|
|
101
65
|
|
|
102
|
-
## 11.
|
|
66
|
+
## 11.5 异步任务链路追踪
|
|
103
67
|
|
|
104
68
|
跨进程任务需要手动传递 trace_id:
|
|
105
69
|
|
|
@@ -117,7 +81,7 @@ async def process_order(order_id: str, trace_id: str | None = None):
|
|
|
117
81
|
logger.info(f"处理订单: {{order_id}}") # 自动包含 trace_id
|
|
118
82
|
```
|
|
119
83
|
|
|
120
|
-
## 11.
|
|
84
|
+
## 11.6 服务上下文隔离
|
|
121
85
|
|
|
122
86
|
日志自动按服务类型分离:
|
|
123
87
|
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
- 性能监控装饰器
|
|
6
6
|
- 异常日志装饰器
|
|
7
7
|
- 链路追踪 ID 支持
|
|
8
|
-
- 请求上下文注入(user_id 等)
|
|
9
8
|
- 自定义日志 sink 注册 API
|
|
10
9
|
|
|
11
10
|
日志文件:
|
|
@@ -27,10 +26,8 @@ logger.remove()
|
|
|
27
26
|
# 从子模块导入
|
|
28
27
|
from aury.boot.common.logging.context import (
|
|
29
28
|
ServiceContext,
|
|
30
|
-
get_request_contexts,
|
|
31
29
|
get_service_context,
|
|
32
30
|
get_trace_id,
|
|
33
|
-
register_request_context,
|
|
34
31
|
set_service_context,
|
|
35
32
|
set_trace_id,
|
|
36
33
|
)
|
|
@@ -55,7 +52,6 @@ __all__ = [
|
|
|
55
52
|
"ServiceContext",
|
|
56
53
|
"format_exception_java_style",
|
|
57
54
|
"get_class_logger",
|
|
58
|
-
"get_request_contexts",
|
|
59
55
|
"get_service_context",
|
|
60
56
|
"get_trace_id",
|
|
61
57
|
"log_exception",
|
|
@@ -63,7 +59,6 @@ __all__ = [
|
|
|
63
59
|
"log_performance",
|
|
64
60
|
"logger",
|
|
65
61
|
"register_log_sink",
|
|
66
|
-
"register_request_context",
|
|
67
62
|
"set_service_context",
|
|
68
63
|
"set_trace_id",
|
|
69
64
|
"setup_intercept",
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"""日志上下文管理。
|
|
2
2
|
|
|
3
|
-
提供链路追踪 ID
|
|
3
|
+
提供链路追踪 ID、服务上下文的管理。
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
-
from collections.abc import Callable
|
|
9
8
|
from contextvars import ContextVar
|
|
10
9
|
from enum import Enum
|
|
11
10
|
import uuid
|
|
@@ -24,8 +23,6 @@ _service_context: ContextVar[ServiceContext] = ContextVar("service_context", def
|
|
|
24
23
|
# 链路追踪 ID
|
|
25
24
|
_trace_id_var: ContextVar[str] = ContextVar("trace_id", default="")
|
|
26
25
|
|
|
27
|
-
# 请求上下文字段注册表(用户可注册自定义字段,如 user_id, tenant_id)
|
|
28
|
-
_request_context_getters: dict[str, Callable[[], str]] = {}
|
|
29
26
|
|
|
30
27
|
|
|
31
28
|
def get_service_context() -> ServiceContext:
|
|
@@ -75,58 +72,10 @@ def set_trace_id(trace_id: str) -> None:
|
|
|
75
72
|
_trace_id_var.set(trace_id)
|
|
76
73
|
|
|
77
74
|
|
|
78
|
-
def register_request_context(name: str, getter: Callable[[], str]) -> None:
|
|
79
|
-
"""注册请求上下文字段。
|
|
80
|
-
|
|
81
|
-
注册后,该字段会在每个请求结束时记录一次(与 trace_id 关联)。
|
|
82
|
-
适用于 user_id、tenant_id 等需要关联到请求但不需要每行日志都记录的信息。
|
|
83
|
-
|
|
84
|
-
Args:
|
|
85
|
-
name: 字段名(如 "user_id", "tenant_id")
|
|
86
|
-
getter: 获取当前值的函数(通常从 ContextVar 读取)
|
|
87
|
-
|
|
88
|
-
使用示例:
|
|
89
|
-
from contextvars import ContextVar
|
|
90
|
-
from aury.boot.common.logging import register_request_context
|
|
91
|
-
|
|
92
|
-
# 定义上下文变量
|
|
93
|
-
_user_id: ContextVar[str] = ContextVar("user_id", default="")
|
|
94
|
-
|
|
95
|
-
def set_user_id(uid: str):
|
|
96
|
-
_user_id.set(uid)
|
|
97
|
-
|
|
98
|
-
# 启动时注册(一次)
|
|
99
|
-
register_request_context("user_id", _user_id.get)
|
|
100
|
-
|
|
101
|
-
# Auth 中间件中设置(每次请求)
|
|
102
|
-
set_user_id(str(user.id))
|
|
103
|
-
"""
|
|
104
|
-
_request_context_getters[name] = getter
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
def get_request_contexts() -> dict[str, str]:
|
|
108
|
-
"""获取所有已注册的请求上下文当前值。
|
|
109
|
-
|
|
110
|
-
Returns:
|
|
111
|
-
字段名到值的字典(仅包含非空值)
|
|
112
|
-
"""
|
|
113
|
-
result = {}
|
|
114
|
-
for name, getter in _request_context_getters.items():
|
|
115
|
-
try:
|
|
116
|
-
value = getter()
|
|
117
|
-
if value: # 只包含非空值
|
|
118
|
-
result[name] = value
|
|
119
|
-
except Exception:
|
|
120
|
-
pass # 忽略获取失败的字段
|
|
121
|
-
return result
|
|
122
|
-
|
|
123
|
-
|
|
124
75
|
__all__ = [
|
|
125
76
|
"ServiceContext",
|
|
126
|
-
"get_request_contexts",
|
|
127
77
|
"get_service_context",
|
|
128
78
|
"get_trace_id",
|
|
129
|
-
"register_request_context",
|
|
130
79
|
"set_service_context",
|
|
131
80
|
"set_trace_id",
|
|
132
81
|
]
|
|
@@ -10,7 +10,7 @@ from collections.abc import AsyncGenerator
|
|
|
10
10
|
from contextlib import asynccontextmanager
|
|
11
11
|
|
|
12
12
|
from sqlalchemy import text
|
|
13
|
-
from sqlalchemy.exc import DisconnectionError, OperationalError
|
|
13
|
+
from sqlalchemy.exc import DisconnectionError, OperationalError, SQLAlchemyError
|
|
14
14
|
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, async_sessionmaker, create_async_engine
|
|
15
15
|
|
|
16
16
|
from aury.boot.common.logging import logger
|
|
@@ -237,10 +237,16 @@ class DatabaseManager:
|
|
|
237
237
|
try:
|
|
238
238
|
await self._check_session_connection(session)
|
|
239
239
|
yield session
|
|
240
|
-
except
|
|
240
|
+
except SQLAlchemyError as exc:
|
|
241
|
+
# 只捕获数据库相关异常
|
|
241
242
|
await session.rollback()
|
|
242
243
|
logger.exception(f"数据库会话异常: {exc}")
|
|
243
244
|
raise
|
|
245
|
+
except Exception:
|
|
246
|
+
# 非数据库异常(如请求验证错误):仍需回滚以确保事务一致性
|
|
247
|
+
# 但不记录为数据库异常,直接传播
|
|
248
|
+
await session.rollback()
|
|
249
|
+
raise
|
|
244
250
|
finally:
|
|
245
251
|
await session.close()
|
|
246
252
|
|
|
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
|
|
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
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/generate/repository.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/admin_console_init.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/_header.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/admin.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/cache.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/log.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/rpc.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/service.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/env_templates/storage.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/api.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/exceptions.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/schedules.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/commands/templates/project/modules/tasks.py.tpl
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
|
|
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
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/query_tools/__init__.py
RENAMED
|
File without changes
|
{aury_boot-0.0.14 → aury_boot-0.0.15}/aury/boot/infrastructure/database/strategies/__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
|
|
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
|