aury-boot 0.0.36__tar.gz → 0.0.37__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.
Files changed (217) hide show
  1. {aury_boot-0.0.36 → aury_boot-0.0.37}/PKG-INFO +1 -1
  2. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/_version.py +2 -2
  3. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/config/settings.py +4 -4
  4. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/init.py +2 -2
  5. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/AGENTS.md.tpl +1 -1
  6. aury_boot-0.0.37/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +152 -0
  7. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/messaging.tpl +15 -7
  8. aury_boot-0.0.36/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -102
  9. {aury_boot-0.0.36 → aury_boot-0.0.37}/.gitignore +0 -0
  10. {aury_boot-0.0.36 → aury_boot-0.0.37}/README.md +0 -0
  11. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/__init__.py +0 -0
  12. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/__init__.py +0 -0
  13. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/adapter/__init__.py +0 -0
  14. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/adapter/base.py +0 -0
  15. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/adapter/config.py +0 -0
  16. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/adapter/decorators.py +0 -0
  17. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/adapter/exceptions.py +0 -0
  18. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/adapter/http.py +0 -0
  19. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/app/__init__.py +0 -0
  20. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/app/base.py +0 -0
  21. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/app/components.py +0 -0
  22. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/app/middlewares.py +0 -0
  23. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/app/startup.py +0 -0
  24. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/config/__init__.py +0 -0
  25. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/config/multi_instance.py +0 -0
  26. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/constants/__init__.py +0 -0
  27. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/constants/components.py +0 -0
  28. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/constants/scheduler.py +0 -0
  29. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/constants/service.py +0 -0
  30. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/errors/__init__.py +0 -0
  31. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/errors/chain.py +0 -0
  32. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/errors/codes.py +0 -0
  33. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/errors/exceptions.py +0 -0
  34. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/errors/handlers.py +0 -0
  35. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/errors/response.py +0 -0
  36. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/interfaces/__init__.py +0 -0
  37. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/interfaces/egress.py +0 -0
  38. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/interfaces/ingress.py +0 -0
  39. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/middleware/__init__.py +0 -0
  40. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/middleware/logging.py +0 -0
  41. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/migrations/__init__.py +0 -0
  42. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/migrations/manager.py +0 -0
  43. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/migrations/setup.py +0 -0
  44. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/rpc/__init__.py +0 -0
  45. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/rpc/base.py +0 -0
  46. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/rpc/client.py +0 -0
  47. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/rpc/discovery.py +0 -0
  48. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/scheduler/__init__.py +0 -0
  49. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/scheduler/runner.py +0 -0
  50. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/application/server/__init__.py +0 -0
  51. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/__init__.py +0 -0
  52. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/add.py +0 -0
  53. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/app.py +0 -0
  54. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/config.py +0 -0
  55. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/docker.py +0 -0
  56. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/docs.py +0 -0
  57. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/generate.py +0 -0
  58. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/migrate/__init__.py +0 -0
  59. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/migrate/app.py +0 -0
  60. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/migrate/commands.py +0 -0
  61. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/pkg.py +0 -0
  62. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/scheduler.py +0 -0
  63. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/server/__init__.py +0 -0
  64. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/server/app.py +0 -0
  65. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
  66. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
  67. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
  68. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
  69. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
  70. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/README.md.tpl +0 -0
  71. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
  72. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/alert_rules.example.yaml.tpl +0 -0
  73. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
  74. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
  75. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
  76. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
  77. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
  78. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
  79. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
  80. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
  81. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +0 -0
  82. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
  83. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +0 -0
  84. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +0 -0
  85. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
  86. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +0 -0
  87. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
  88. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +0 -0
  89. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/17-alerting.md.tpl +0 -0
  90. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +0 -0
  91. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/config.py.tpl +0 -0
  92. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
  93. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
  94. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
  95. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
  96. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
  97. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/log.tpl +0 -0
  98. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/monitoring.tpl +0 -0
  99. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/rpc.tpl +0 -0
  100. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
  101. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
  102. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
  103. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/env_templates/third_party.tpl +0 -0
  104. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
  105. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/main.py.tpl +0 -0
  106. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
  107. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
  108. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
  109. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
  110. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/commands/worker.py +0 -0
  111. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/__init__.py +0 -0
  112. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/exceptions/__init__.py +0 -0
  113. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/i18n/__init__.py +0 -0
  114. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/i18n/translator.py +0 -0
  115. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/logging/__init__.py +0 -0
  116. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/logging/context.py +0 -0
  117. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/logging/decorators.py +0 -0
  118. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/logging/format.py +0 -0
  119. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/common/logging/setup.py +0 -0
  120. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/contrib/__init__.py +0 -0
  121. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/contrib/admin_console/__init__.py +0 -0
  122. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/contrib/admin_console/auth.py +0 -0
  123. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/contrib/admin_console/discovery.py +0 -0
  124. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/contrib/admin_console/install.py +0 -0
  125. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/contrib/admin_console/utils.py +0 -0
  126. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/__init__.py +0 -0
  127. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/exceptions/__init__.py +0 -0
  128. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/models/__init__.py +0 -0
  129. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/models/base.py +0 -0
  130. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/models/mixins.py +0 -0
  131. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/models/models.py +0 -0
  132. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/pagination/__init__.py +0 -0
  133. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/repository/__init__.py +0 -0
  134. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/repository/impl.py +0 -0
  135. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/repository/interceptors.py +0 -0
  136. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/repository/interface.py +0 -0
  137. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/repository/query_builder.py +0 -0
  138. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/service/__init__.py +0 -0
  139. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/service/base.py +0 -0
  140. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/domain/transaction/__init__.py +0 -0
  141. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/__init__.py +0 -0
  142. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/cache/__init__.py +0 -0
  143. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/cache/backends.py +0 -0
  144. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/cache/base.py +0 -0
  145. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/cache/exceptions.py +0 -0
  146. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/cache/factory.py +0 -0
  147. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/cache/manager.py +0 -0
  148. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/channel/__init__.py +0 -0
  149. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
  150. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/channel/backends/broadcaster.py +0 -0
  151. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/channel/base.py +0 -0
  152. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/channel/manager.py +0 -0
  153. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/__init__.py +0 -0
  154. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
  155. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
  156. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
  157. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
  158. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/redis/config.py +0 -0
  159. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
  160. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/database/__init__.py +0 -0
  161. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/database/config.py +0 -0
  162. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/database/exceptions.py +0 -0
  163. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/database/manager.py +0 -0
  164. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
  165. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
  166. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/di/__init__.py +0 -0
  167. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/di/container.py +0 -0
  168. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/__init__.py +0 -0
  169. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
  170. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/backends/broadcaster.py +0 -0
  171. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
  172. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/base.py +0 -0
  173. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/manager.py +0 -0
  174. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/events/middleware.py +0 -0
  175. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
  176. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/__init__.py +0 -0
  177. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/aggregator.py +0 -0
  178. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/events.py +0 -0
  179. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/manager.py +0 -0
  180. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/notifiers/__init__.py +0 -0
  181. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/notifiers/base.py +0 -0
  182. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/notifiers/feishu.py +0 -0
  183. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/notifiers/webhook.py +0 -0
  184. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/alerting/rules.py +0 -0
  185. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/health/__init__.py +0 -0
  186. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/tracing/__init__.py +0 -0
  187. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/tracing/context.py +0 -0
  188. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/tracing/logging.py +0 -0
  189. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/tracing/processor.py +0 -0
  190. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/tracing/provider.py +0 -0
  191. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/monitoring/tracing/tracing.py +0 -0
  192. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/__init__.py +0 -0
  193. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
  194. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
  195. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
  196. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/backends/redis_stream.py +0 -0
  197. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/base.py +0 -0
  198. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/mq/manager.py +0 -0
  199. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
  200. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
  201. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/scheduler/manager.py +0 -0
  202. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/storage/__init__.py +0 -0
  203. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/storage/base.py +0 -0
  204. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/storage/exceptions.py +0 -0
  205. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/storage/factory.py +0 -0
  206. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/tasks/__init__.py +0 -0
  207. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/tasks/config.py +0 -0
  208. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/tasks/constants.py +0 -0
  209. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
  210. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/infrastructure/tasks/manager.py +0 -0
  211. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/testing/__init__.py +0 -0
  212. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/testing/base.py +0 -0
  213. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/testing/client.py +0 -0
  214. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/testing/factory.py +0 -0
  215. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/toolkit/__init__.py +0 -0
  216. {aury_boot-0.0.36 → aury_boot-0.0.37}/aury/boot/toolkit/http/__init__.py +0 -0
  217. {aury_boot-0.0.36 → aury_boot-0.0.37}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aury-boot
3
- Version: 0.0.36
3
+ Version: 0.0.37
4
4
  Summary: Aury Boot - 基于 FastAPI 生态的企业级 API 开发框架
5
5
  Requires-Python: >=3.13
6
6
  Requires-Dist: alembic>=1.17.2
@@ -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.36'
32
- __version_tuple__ = version_tuple = (0, 0, 36)
31
+ __version__ = version = '0.0.37'
32
+ __version_tuple__ = version_tuple = (0, 0, 37)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -147,13 +147,13 @@ class MQInstanceConfig(MultiInstanceSettings):
147
147
 
148
148
  环境变量格式: MQ__{INSTANCE}__{FIELD}
149
149
  示例:
150
- MQ__DEFAULT__BACKEND=redis
150
+ MQ__DEFAULT__BACKEND=redis_stream
151
151
  MQ__DEFAULT__URL=redis://localhost:6379/4
152
152
  """
153
153
 
154
154
  backend: str = Field(
155
- default="redis",
156
- description="消息队列后端 (redis/rabbitmq)"
155
+ default="redis_stream",
156
+ description="消息队列后端 (redis/redis_stream/rabbitmq)"
157
157
  )
158
158
  url: str | None = Field(
159
159
  default=None,
@@ -715,7 +715,7 @@ class AlertSettings(BaseModel):
715
715
 
716
716
  # 抑制配置
717
717
  suppress_seconds: int = Field(
718
- default=10,
718
+ default=300,
719
719
  description="告警抑制时间(秒),相同告警在此时间内不重复发送"
720
720
  )
721
721
 
@@ -707,8 +707,8 @@ def init(
707
707
  console.print(f" [cyan]uv add \"{deps[0]}\"[/cyan]")
708
708
  console.print()
709
709
  else:
710
- # 非交互模式:默认启用 Admin Console
711
- with_admin_console = True
710
+ # 非交互模式:默认禁用 Admin Console
711
+ with_admin_console = False
712
712
  if package_name == ".":
713
713
  package_name_snake = None
714
714
  elif package_name:
@@ -169,7 +169,7 @@ class BaseConfig(BaseSettings):
169
169
  )
170
170
  ```
171
171
 
172
- **环境变量命名规则**:`{SECTION}__{FIELD}`
172
+ **环境变量命名规则**:`{{SECTION}}__{{FIELD}}`
173
173
 
174
174
  ```bash
175
175
  # 示例
@@ -0,0 +1,152 @@
1
+ # 消息队列(MQ)
2
+
3
+ 支持 `redis`、`redis_stream` 和 `rabbitmq` 后端的消息队列,用于异步任务解耦。
4
+
5
+ ## 14.1 基本用法
6
+
7
+ ```python
8
+ from aury.boot.infrastructure.mq import MQManager
9
+
10
+ # 获取实例
11
+ mq = MQManager.get_instance()
12
+
13
+ # Redis List 后端(简单队列)
14
+ await mq.initialize(backend="redis", url="redis://localhost:6379/0")
15
+
16
+ # Redis Stream 后端(推荐,支持消费者组)
17
+ await mq.initialize(backend="redis_stream", url="redis://localhost:6379/0")
18
+
19
+ # RabbitMQ 后端
20
+ await mq.initialize(backend="rabbitmq", url="amqp://guest:guest@localhost:5672/")
21
+ ```
22
+
23
+ ## 14.2 后端对比
24
+
25
+ **Redis List (redis)**:
26
+ - 简单的 FIFO 队列(LPUSH/BRPOP)
27
+ - 适合单消费者场景
28
+ - 消息不持久化(除非开启 AOF)
29
+
30
+ **Redis Stream (redis_stream)** ⭐ 推荐:
31
+ - 支持消费者组,多实例可并行消费
32
+ - 消息持久化(配合 AOF)
33
+ - 支持消息确认(ACK)和重试
34
+ - 支持消息回放和历史查询
35
+
36
+ **RabbitMQ (rabbitmq)**:
37
+ - 功能最完整的消息队列
38
+ - 支持多种交换机类型
39
+ - 适合复杂的消息路由场景
40
+
41
+ ## 14.3 生产者
42
+
43
+ ```python
44
+ from aury.boot.infrastructure.mq import MQMessage
45
+
46
+ # 发送消息
47
+ await mq.send(
48
+ queue="orders",
49
+ message={{"order_id": "123", "action": "created"}}
50
+ )
51
+
52
+ # 使用 MQMessage 对象(可设置 headers)
53
+ msg = MQMessage(
54
+ body={{"order_id": "123"}},
55
+ headers={{"priority": "high"}}
56
+ )
57
+ await mq.send("orders", msg)
58
+ ```
59
+
60
+ ## 14.4 消费者
61
+
62
+ **文件**: `{package_name}/workers/order_worker.py`
63
+
64
+ ```python
65
+ from aury.boot.infrastructure.mq import MQManager, MQMessage
66
+ from aury.boot.common.logging import logger
67
+
68
+ mq = MQManager.get_instance()
69
+
70
+
71
+ async def process_order(message: MQMessage):
72
+ \"\"\"处理订单消息。\"\"\"
73
+ logger.info(f"处理订单: {{message.body}}")
74
+ # 业务逻辑...
75
+
76
+
77
+ async def start_consumer():
78
+ \"\"\"启动消费者。\"\"\"
79
+ # consume 会自动处理 ACK/NACK
80
+ await mq.consume("orders", process_order)
81
+ ```
82
+
83
+ ## 14.5 Redis Stream 特性
84
+
85
+ ```python
86
+ from aury.boot.infrastructure.mq.backends.redis_stream import RedisStreamMQ
87
+
88
+ # 初始化时指定消费者组
89
+ mq = MQManager.get_instance()
90
+ await mq.initialize(
91
+ backend="redis_stream",
92
+ url="redis://localhost:6379/0"
93
+ )
94
+
95
+ # 获取底层 RedisStreamMQ 实例使用高级特性
96
+ stream_mq: RedisStreamMQ = mq.backend
97
+
98
+ # 读取所有历史消息(用于重放)
99
+ messages = await stream_mq.read_all("orders", count=100)
100
+
101
+ # 阻塞读取新消息(用于 SSE/实时推送)
102
+ messages = await stream_mq.read_blocking(
103
+ "orders",
104
+ last_id="$", # 从最新消息开始
105
+ count=10,
106
+ block_ms=5000 # 阻塞 5 秒
107
+ )
108
+
109
+ # 裁剪 Stream(保留最新 1000 条)
110
+ await stream_mq.trim("orders", maxlen=1000)
111
+
112
+ # 获取 Stream 信息
113
+ info = await stream_mq.stream_info("orders")
114
+ ```
115
+
116
+ ## 14.6 多实例配置
117
+
118
+ 框架支持命名多实例,适合不同业务场景使用不同的 MQ:
119
+
120
+ ```python
121
+ # 代码中使用命名实例
122
+ orders_mq = MQManager.get_instance("orders")
123
+ notifications_mq = MQManager.get_instance("notifications")
124
+
125
+ # 分别初始化
126
+ await orders_mq.initialize(backend="redis_stream", url="redis://localhost:6379/1")
127
+ await notifications_mq.initialize(backend="redis", url="redis://localhost:6379/2")
128
+ ```
129
+
130
+ **环境变量配置**(自动初始化):
131
+
132
+ ```bash
133
+ # 单实例配置
134
+ MQ__BACKEND=redis_stream
135
+ MQ__URL=redis://localhost:6379/0
136
+
137
+ # 多实例配置(格式:MQ__{{INSTANCE}}__{{FIELD}})
138
+ MQ__DEFAULT__BACKEND=redis_stream
139
+ MQ__DEFAULT__URL=redis://localhost:6379/4
140
+ MQ__ORDERS__BACKEND=rabbitmq
141
+ MQ__ORDERS__URL=amqp://guest:guest@localhost:5672/
142
+ ```
143
+
144
+ ## 14.7 与异步任务(Dramatiq)的区别
145
+
146
+ - **MQ**:轻量级消息传递,适合简单的生产者-消费者模式、实时通知、多实例消费
147
+ - **Dramatiq(TaskManager)**:功能更丰富,支持重试、延迟、优先级、Actor 模式
148
+
149
+ 选择建议:
150
+ - 简单的异步解耦 → MQ (redis_stream)
151
+ - 需要重试/延迟/优先级 → Dramatiq
152
+ - 多服务实例并行消费 → MQ (redis_stream) 或 RabbitMQ
@@ -19,19 +19,27 @@
19
19
  # =============================================================================
20
20
  # 消息队列配置 (MQ__)
21
21
  # =============================================================================
22
+ # 支持后端: redis | redis_stream (推荐) | rabbitmq
23
+ #
22
24
  # 单实例配置:
23
- # MQ__ENABLED=false
24
- # MQ__BROKER_URL=redis://localhost:6379/4
25
-
25
+ # MQ__BACKEND=redis_stream
26
+ # MQ__URL=redis://localhost:6379/4
27
+ #
26
28
  # 多实例配置 (格式: MQ__{{INSTANCE}}__{{FIELD}}):
27
- # MQ__DEFAULT__BACKEND=redis
29
+ # MQ__DEFAULT__BACKEND=redis_stream
28
30
  # MQ__DEFAULT__URL=redis://localhost:6379/4
29
- # MQ__DEFAULT__MAX_CONNECTIONS=10
30
31
  #
31
- # RabbitMQ 后端:
32
+ # Redis List 后端 (简单 FIFO 队列):
33
+ # MQ__SIMPLE__BACKEND=redis
34
+ # MQ__SIMPLE__URL=redis://localhost:6379/4
35
+ #
36
+ # Redis Stream 后端 (推荐,支持消费者组/多实例消费):
37
+ # MQ__TASKS__BACKEND=redis_stream
38
+ # MQ__TASKS__URL=redis://localhost:6379/4
39
+ #
40
+ # RabbitMQ 后端 (复杂消息路由):
32
41
  # MQ__ORDERS__BACKEND=rabbitmq
33
42
  # MQ__ORDERS__URL=amqp://guest:guest@localhost:5672/orders
34
- # MQ__ORDERS__PREFETCH_COUNT=10
35
43
 
36
44
  # =============================================================================
37
45
  # 事件总线配置 (EVENT__)
@@ -1,102 +0,0 @@
1
- # 消息队列(MQ)
2
-
3
- 支持 `redis` 和 `rabbitmq` 后端的消息队列,用于异步任务解耦。
4
-
5
- ## 14.1 基本用法
6
-
7
- ```python
8
- from aury.boot.infrastructure.mq import MQManager
9
-
10
- # 获取实例
11
- mq = MQManager.get_instance()
12
-
13
- # Redis 后端
14
- await mq.initialize(backend="redis", url="redis://localhost:6379/0")
15
-
16
- # RabbitMQ 后端
17
- await mq.initialize(backend="rabbitmq", url="amqp://guest:guest@localhost:5672/")
18
- ```
19
-
20
- ## 14.2 生产者
21
-
22
- ```python
23
- # 发送消息
24
- await mq.publish(
25
- queue="orders",
26
- message={{"order_id": "123", "action": "created"}}
27
- )
28
-
29
- # 批量发送
30
- await mq.publish_batch(
31
- queue="orders",
32
- messages=[
33
- {{"order_id": "1", "action": "created"}},
34
- {{"order_id": "2", "action": "updated"}},
35
- ]
36
- )
37
- ```
38
-
39
- ## 14.3 消费者
40
-
41
- **文件**: `{package_name}/workers/order_worker.py`
42
-
43
- ```python
44
- from aury.boot.infrastructure.mq import MQManager
45
- from aury.boot.common.logging import logger
46
-
47
- mq = MQManager.get_instance()
48
-
49
-
50
- async def process_order(message: dict):
51
- \"\"\"处理订单消息。\"\"\"
52
- logger.info(f"处理订单: {{message['order_id']}}")
53
- # 业务逻辑...
54
-
55
-
56
- async def start_consumer():
57
- \"\"\"启动消费者。\"\"\"
58
- await mq.consume("orders", process_order)
59
-
60
-
61
- # 带确认的消费
62
- async def process_with_ack(message: dict, ack, nack):
63
- try:
64
- await process_order(message)
65
- await ack()
66
- except Exception:
67
- await nack(requeue=True)
68
-
69
- await mq.consume("orders", process_with_ack, auto_ack=False)
70
- ```
71
-
72
- ## 14.4 多实例
73
-
74
- ```python
75
- # 不同用途的 MQ 实例
76
- orders_mq = MQManager.get_instance("orders")
77
- notifications_mq = MQManager.get_instance("notifications")
78
-
79
- # 分别初始化
80
- await orders_mq.initialize(backend="rabbitmq", url="amqp://localhost:5672/orders")
81
- await notifications_mq.initialize(backend="redis", url="redis://localhost:6379/5")
82
- ```
83
-
84
- ## 14.5 环境变量
85
-
86
- ```bash
87
- # 默认实例
88
- MQ__BACKEND=redis
89
- MQ__URL=redis://localhost:6379/0
90
-
91
- # 多实例(格式:MQ__{{INSTANCE}}__{{FIELD}})
92
- MQ__DEFAULT__BACKEND=redis
93
- MQ__DEFAULT__URL=redis://localhost:6379/4
94
- MQ__ORDERS__BACKEND=rabbitmq
95
- MQ__ORDERS__URL=amqp://guest:guest@localhost:5672/
96
- MQ__ORDERS__PREFETCH_COUNT=10
97
- ```
98
-
99
- ## 14.6 与异步任务(Dramatiq)的区别
100
-
101
- - **MQ**:轻量级消息传递,适合简单的生产者-消费者模式
102
- - **Dramatiq(TaskManager)**:功能更丰富,支持重试、延迟、优先级等
File without changes
File without changes