aury-boot 0.0.24__tar.gz → 0.0.26__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.24 → aury_boot-0.0.26}/PKG-INFO +1 -1
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/_version.py +2 -2
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/app/components.py +46 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/constants/components.py +3 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +27 -17
- {aury_boot-0.0.24 → aury_boot-0.0.26}/.gitignore +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/README.md +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/adapter/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/adapter/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/adapter/config.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/adapter/decorators.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/adapter/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/adapter/http.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/app/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/app/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/app/middlewares.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/app/startup.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/config/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/config/multi_instance.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/config/settings.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/constants/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/constants/scheduler.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/constants/service.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/errors/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/errors/chain.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/errors/codes.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/errors/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/errors/handlers.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/errors/response.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/interfaces/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/interfaces/egress.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/interfaces/ingress.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/middleware/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/middleware/logging.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/migrations/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/migrations/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/migrations/setup.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/rpc/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/rpc/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/rpc/client.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/rpc/discovery.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/scheduler/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/scheduler/runner.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/application/server/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/add.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/app.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/config.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/docker.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/docs.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/generate.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/init.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/migrate/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/migrate/app.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/migrate/commands.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/pkg.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/scheduler.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/server/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/server/app.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/AGENTS.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/README.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/config.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/log.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/messaging.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/rpc.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/third_party.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/main.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/worker.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/exceptions/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/i18n/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/i18n/translator.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/logging/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/logging/context.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/logging/decorators.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/logging/format.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/common/logging/setup.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/contrib/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/contrib/admin_console/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/contrib/admin_console/auth.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/contrib/admin_console/discovery.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/contrib/admin_console/install.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/contrib/admin_console/utils.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/exceptions/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/models/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/models/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/models/mixins.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/models/models.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/pagination/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/repository/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/repository/impl.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/repository/interceptors.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/repository/interface.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/repository/query_builder.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/service/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/service/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/domain/transaction/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/cache/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/cache/backends.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/cache/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/cache/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/cache/factory.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/cache/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/channel/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/channel/backends/memory.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/channel/backends/redis.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/channel/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/channel/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/redis/config.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/config.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/di/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/di/container.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/backends/memory.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/backends/redis.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/events/middleware.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/mq/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/mq/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/mq/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/scheduler/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/storage/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/storage/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/storage/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/storage/factory.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/tasks/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/tasks/config.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/tasks/constants.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/tasks/manager.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/testing/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/testing/base.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/testing/client.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/testing/factory.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/toolkit/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/toolkit/http/__init__.py +0 -0
- {aury_boot-0.0.24 → aury_boot-0.0.26}/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.26'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 26)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -15,6 +15,7 @@ from aury.boot.application.constants import ComponentName, ServiceType
|
|
|
15
15
|
from aury.boot.application.migrations import MigrationManager
|
|
16
16
|
from aury.boot.common.logging import logger
|
|
17
17
|
from aury.boot.infrastructure.cache import CacheManager
|
|
18
|
+
from aury.boot.infrastructure.channel import ChannelManager
|
|
18
19
|
from aury.boot.infrastructure.database import DatabaseManager
|
|
19
20
|
from aury.boot.infrastructure.events import EventBusManager
|
|
20
21
|
from aury.boot.infrastructure.mq import MQManager
|
|
@@ -505,6 +506,49 @@ class MessageQueueComponent(Component):
|
|
|
505
506
|
logger.warning(f"消息队列 [{name}] 关闭失败: {e}")
|
|
506
507
|
|
|
507
508
|
|
|
509
|
+
class ChannelComponent(Component):
|
|
510
|
+
"""流式通道组件。
|
|
511
|
+
|
|
512
|
+
用于 SSE(Server-Sent Events)和实时通信场景,支持 memory 和 redis 后端。
|
|
513
|
+
"""
|
|
514
|
+
|
|
515
|
+
name = ComponentName.CHANNEL
|
|
516
|
+
enabled = True
|
|
517
|
+
depends_on: ClassVar[list[str]] = []
|
|
518
|
+
|
|
519
|
+
def can_enable(self, config: BaseConfig) -> bool:
|
|
520
|
+
"""当配置了 Channel 实例时启用。"""
|
|
521
|
+
return self.enabled and bool(config.get_channels())
|
|
522
|
+
|
|
523
|
+
async def setup(self, app: FoundationApp, config: BaseConfig) -> None:
|
|
524
|
+
"""初始化流式通道。"""
|
|
525
|
+
channel_configs = config.get_channels()
|
|
526
|
+
if not channel_configs:
|
|
527
|
+
logger.debug("未配置 Channel 实例,跳过通道初始化")
|
|
528
|
+
return
|
|
529
|
+
|
|
530
|
+
for name, ch_config in channel_configs.items():
|
|
531
|
+
try:
|
|
532
|
+
channel_manager = ChannelManager.get_instance(name)
|
|
533
|
+
if not channel_manager.is_initialized:
|
|
534
|
+
await channel_manager.initialize(
|
|
535
|
+
backend=ch_config.backend,
|
|
536
|
+
url=ch_config.url,
|
|
537
|
+
)
|
|
538
|
+
except Exception as e:
|
|
539
|
+
logger.warning(f"通道 [{name}] 初始化失败(非关键): {e}")
|
|
540
|
+
|
|
541
|
+
async def teardown(self, app: FoundationApp) -> None:
|
|
542
|
+
"""关闭所有通道实例。"""
|
|
543
|
+
for name in list(ChannelManager._instances.keys()):
|
|
544
|
+
try:
|
|
545
|
+
channel_manager = ChannelManager.get_instance(name)
|
|
546
|
+
if channel_manager.is_initialized:
|
|
547
|
+
await channel_manager.cleanup()
|
|
548
|
+
except Exception as e:
|
|
549
|
+
logger.warning(f"通道 [{name}] 关闭失败: {e}")
|
|
550
|
+
|
|
551
|
+
|
|
508
552
|
class EventBusComponent(Component):
|
|
509
553
|
"""事件总线组件。
|
|
510
554
|
|
|
@@ -555,6 +599,7 @@ FoundationApp.components = [
|
|
|
555
599
|
StorageComponent,
|
|
556
600
|
TaskComponent,
|
|
557
601
|
MessageQueueComponent,
|
|
602
|
+
ChannelComponent,
|
|
558
603
|
EventBusComponent,
|
|
559
604
|
SchedulerComponent,
|
|
560
605
|
]
|
|
@@ -563,6 +608,7 @@ FoundationApp.components = [
|
|
|
563
608
|
__all__ = [
|
|
564
609
|
"AdminConsoleComponent",
|
|
565
610
|
"CacheComponent",
|
|
611
|
+
"ChannelComponent",
|
|
566
612
|
"DatabaseComponent",
|
|
567
613
|
"EventBusComponent",
|
|
568
614
|
"MessageQueueComponent",
|
|
@@ -9,10 +9,34 @@
|
|
|
9
9
|
|
|
10
10
|
## 13.1 基本用法
|
|
11
11
|
|
|
12
|
+
### 通过环境变量自动初始化(推荐)
|
|
13
|
+
|
|
14
|
+
配置环境变量后,`ChannelComponent` 会在应用启动时自动初始化:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# .env
|
|
18
|
+
CHANNEL__SSE__BACKEND=memory
|
|
19
|
+
CHANNEL__NOTIFICATION__BACKEND=redis
|
|
20
|
+
CHANNEL__NOTIFICATION__URL=redis://localhost:6379/3
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
from aury.boot.infrastructure.channel import ChannelManager
|
|
25
|
+
|
|
26
|
+
# 直接获取已初始化的实例
|
|
27
|
+
sse_channel = ChannelManager.get_instance("sse")
|
|
28
|
+
notification_channel = ChannelManager.get_instance("notification")
|
|
29
|
+
|
|
30
|
+
# 直接使用
|
|
31
|
+
await sse_channel.publish("user:123", {{"event": "hello"}})
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 手动初始化
|
|
35
|
+
|
|
12
36
|
```python
|
|
13
37
|
from aury.boot.infrastructure.channel import ChannelManager
|
|
14
38
|
|
|
15
|
-
#
|
|
39
|
+
# 命名多实例 - 不同业务场景使用不同实例
|
|
16
40
|
sse_channel = ChannelManager.get_instance("sse")
|
|
17
41
|
notification_channel = ChannelManager.get_instance("notification")
|
|
18
42
|
|
|
@@ -82,7 +106,7 @@ async def send_notification(user_id: str, message: str):
|
|
|
82
106
|
async def space_events(space_id: str):
|
|
83
107
|
\"\"\"订阅空间下所有事件。\"\"\"
|
|
84
108
|
async def event_generator():
|
|
85
|
-
# 使用 psubscribe 订阅 space:{id}:* 下所有事件
|
|
109
|
+
# 使用 psubscribe 订阅 space:{{id}}:* 下所有事件
|
|
86
110
|
async for msg in sse_channel.psubscribe(f"space:{{space_id}}:*"):
|
|
87
111
|
yield msg.to_sse() # 自动转换为 SSE 格式
|
|
88
112
|
|
|
@@ -112,21 +136,7 @@ await sse_channel.publish(f"space:{{space_id}}:comment_added", {{
|
|
|
112
136
|
|
|
113
137
|
Redis 后端使用 Redis 原生 `PSUBSCRIBE`,内存后端使用 `fnmatch` 实现。
|
|
114
138
|
|
|
115
|
-
## 13.5
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
# 不同业务场景使用不同的命名实例
|
|
119
|
-
sse_channel = ChannelManager.get_instance("sse") # 前端 SSE 推送
|
|
120
|
-
chat_channel = ChannelManager.get_instance("chat") # 聊天消息
|
|
121
|
-
notify_channel = ChannelManager.get_instance("notify") # 系统通知
|
|
122
|
-
|
|
123
|
-
# 分别初始化(可使用不同后端)
|
|
124
|
-
await sse_channel.initialize(backend="memory") # 单进程即可
|
|
125
|
-
await chat_channel.initialize(backend="redis", url="redis://localhost:6379/3") # 需要跨进程
|
|
126
|
-
await notify_channel.initialize(backend="redis", url="redis://localhost:6379/4")
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## 13.6 环境变量
|
|
139
|
+
## 13.5 环境变量
|
|
130
140
|
|
|
131
141
|
```bash
|
|
132
142
|
# 默认实例
|
|
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.24 → aury_boot-0.0.26}/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.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/admin_console_init.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/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.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/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.24 → aury_boot-0.0.26}/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.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/_header.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/admin.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/cache.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/log.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/rpc.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/env_templates/service.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/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.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/api.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/exceptions.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/commands/templates/project/modules/schedules.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/aury/boot/infrastructure/database/query_tools/__init__.py
RENAMED
|
File without changes
|
{aury_boot-0.0.24 → aury_boot-0.0.26}/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
|