csrd-utils 0.3.72__tar.gz → 0.3.73__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 (135) hide show
  1. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/PKG-INFO +1 -1
  2. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/pyproject.toml +1 -1
  3. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/__main__.py +5 -0
  4. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/cookiecutter.json +1 -0
  5. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/README.md +3 -0
  6. csrd_utils-0.3.73/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/delegates/__init__.py +4 -0
  7. csrd_utils-0.3.73/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/delegates/auth_delegate.py +11 -0
  8. csrd_utils-0.3.73/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/delegates/identity_delegate.py +11 -0
  9. csrd_utils-0.3.73/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +9 -0
  10. csrd_utils-0.3.73/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/dependencies/auth_passthrough.py +25 -0
  11. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/requirements.txt +1 -0
  12. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/settings.py +1 -0
  13. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/views/unversioned/__init__.py +2 -1
  14. csrd_utils-0.3.73/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/views/unversioned/auth_service_view.py +28 -0
  15. csrd_utils-0.3.72/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +0 -3
  16. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/.gitignore +0 -0
  17. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/README.md +0 -0
  18. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/__init__.py +0 -0
  19. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/audit.py +0 -0
  20. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/augmentor.py +0 -0
  21. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/cluster.py +0 -0
  22. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/doctor.py +0 -0
  23. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/conftest.fragment.py +0 -0
  24. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/docker-compose.fragment.yaml +0 -0
  25. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/manifest.yaml +0 -0
  26. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/requirements.fragment +0 -0
  27. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/settings.fragment.py +0 -0
  28. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/src/app/cache.py +0 -0
  29. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/caching/tests/test_cache.py +0 -0
  30. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/logging/conftest.fragment.py +0 -0
  31. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/logging/manifest.yaml +0 -0
  32. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/logging/requirements.fragment +0 -0
  33. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/logging/settings.fragment.py +0 -0
  34. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/logging/src/app/middleware/logging.py +0 -0
  35. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/logging/tests/test_logging_middleware.py +0 -0
  36. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/conftest.fragment.py +0 -0
  37. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml +0 -0
  38. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/manifest.yaml +0 -0
  39. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/requirements.fragment +0 -0
  40. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/settings.fragment.py +0 -0
  41. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/src/app/middleware/metrics.py +0 -0
  42. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/metrics/tests/test_metrics_middleware.py +0 -0
  43. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/tracing/conftest.fragment.py +0 -0
  44. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/tracing/manifest.yaml +0 -0
  45. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/tracing/requirements.fragment +0 -0
  46. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/tracing/settings.fragment.py +0 -0
  47. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/tracing/src/app/middleware/tracing.py +0 -0
  48. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/tracing/tests/test_tracing_middleware.py +0 -0
  49. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/conftest.fragment.py +0 -0
  50. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/docker-compose.fragment.yaml +0 -0
  51. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/manifest.yaml +0 -0
  52. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/requirements.fragment +0 -0
  53. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/settings.fragment.py +0 -0
  54. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/src/app/workers/__init__.py +0 -0
  55. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/src/app/workers/celery_app.py +0 -0
  56. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/src/app/workers/tasks.py +0 -0
  57. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/features/workers/tests/test_workers.py +0 -0
  58. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/fragments.py +0 -0
  59. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/generator.py +0 -0
  60. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/resources.py +0 -0
  61. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/README.md +0 -0
  62. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/cookiecutter.json +0 -0
  63. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/hooks/post_gen_project.py +0 -0
  64. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/.cookiecutterignore +0 -0
  65. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/.dockerignore +0 -0
  66. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/Dockerfile +0 -0
  67. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/README.md +0 -0
  68. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/__init__.py +0 -0
  69. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/cache.py +0 -0
  70. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/delegates/__init__.py +0 -0
  71. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/delegates/upstreams.py +0 -0
  72. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +0 -0
  73. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/auth_service.py +0 -0
  74. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/delegates.py +0 -0
  75. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/item_repository.py +0 -0
  76. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/worker_broker.py +0 -0
  77. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/docker-compose.yml +0 -0
  78. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/middleware/__init__.py +0 -0
  79. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/middleware/logging.py +0 -0
  80. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/repositories/__init__.py +0 -0
  81. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/repositories/item_repository.py +0 -0
  82. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/requirements.txt +0 -0
  83. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/settings.py +0 -0
  84. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/__init__.py +0 -0
  85. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/acceptance/__init__.py +0 -0
  86. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/acceptance/test_logging_middleware.py +0 -0
  87. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/conftest.py +0 -0
  88. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/test_items.py +0 -0
  89. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/__init__.py +0 -0
  90. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_cache.py +0 -0
  91. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_database_settings.py +0 -0
  92. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_delegates.py +0 -0
  93. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_settings_contracts.py +0 -0
  94. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_worker_broker.py +0 -0
  95. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/__init__.py +0 -0
  96. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/unversioned/__init__.py +0 -0
  97. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/unversioned/health_view.py +0 -0
  98. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/unversioned/items_view.py +0 -0
  99. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/workers/__init__.py +0 -0
  100. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/workers/tasks.py +0 -0
  101. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/.dockerignore +0 -0
  102. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/Dockerfile +0 -0
  103. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/__init__.py +0 -0
  104. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/dependencies/auth_service.py +0 -0
  105. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/views/__init__.py +0 -0
  106. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/views/unversioned/health_view.py +0 -0
  107. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-app-service/{{cookiecutter.__service_name_snake}}/views/unversioned/items_view.py +0 -0
  108. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/cookiecutter.json +0 -0
  109. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/.dockerignore +0 -0
  110. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/Dockerfile +0 -0
  111. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/README.md +0 -0
  112. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/__init__.py +0 -0
  113. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +0 -0
  114. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/repositories/__init__.py +0 -0
  115. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/repositories/token_repository.py +0 -0
  116. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/requirements.txt +0 -0
  117. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/settings.py +0 -0
  118. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/views/__init__.py +0 -0
  119. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/views/unversioned/__init__.py +0 -0
  120. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/views/unversioned/auth_view.py +0 -0
  121. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-auth-service/{{cookiecutter.__service_name_snake}}/views/unversioned/health_view.py +0 -0
  122. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/cookiecutter.json +0 -0
  123. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/.dockerignore +0 -0
  124. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/Dockerfile +0 -0
  125. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/README.md +0 -0
  126. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/__init__.py +0 -0
  127. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +0 -0
  128. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/repositories/__init__.py +0 -0
  129. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/repositories/user_repository.py +0 -0
  130. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/requirements.txt +0 -0
  131. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/settings.py +0 -0
  132. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/views/__init__.py +0 -0
  133. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/views/unversioned/__init__.py +0 -0
  134. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/views/unversioned/health_view.py +0 -0
  135. {csrd_utils-0.3.72 → csrd_utils-0.3.73}/src/csrd_utils/templates/platform-identity-service/{{cookiecutter.__service_name_snake}}/views/unversioned/users_view.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csrd-utils
3
- Version: 0.3.72
3
+ Version: 0.3.73
4
4
  Summary: CLI utilities for csrd service generation and feature augmentation
5
5
  Project-URL: Repository, https://github.com/csrd-api/fastapi-common
6
6
  Project-URL: Documentation, https://github.com/csrd-api/fastapi-common/tree/main/packages/utils
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "csrd-utils"
3
- version = "0.3.72"
3
+ version = "0.3.73"
4
4
  description = "CLI utilities for csrd service generation and feature augmentation"
5
5
  license = { text = "MIT" }
6
6
  requires-python = ">=3.12"
@@ -499,7 +499,12 @@ def _generate_services_from_cluster_spec(
499
499
  elif role == "app":
500
500
  auth_port = next((port_map[n] for n in port_map if "auth" in n), 8081)
501
501
  auth_name = next((n for n in port_map if "auth" in n), "auth-service")
502
+ identity_port = next((port_map[n] for n in port_map if "identity" in n), 8082)
503
+ identity_name = next(
504
+ (n for n in port_map if "identity" in n), "identity-service"
505
+ )
502
506
  extra["auth_service_url"] = f"http://{auth_name}:{auth_port}"
507
+ extra["identity_service_url"] = f"http://{identity_name}:{identity_port}"
503
508
  result = generate_platform_service(
504
509
  name=name,
505
510
  output_dir=workspace_root,
@@ -2,5 +2,6 @@
2
2
  "service_name": "app-service",
3
3
  "port": "8080",
4
4
  "auth_service_url": "http://auth-service:8081",
5
+ "identity_service_url": "http://identity-service:8082",
5
6
  "__service_name_snake": "{{ cookiecutter.service_name | replace('-', '_') }}"
6
7
  }
@@ -5,6 +5,8 @@ Platform app service with auth-guarded item endpoints.
5
5
  ## Endpoints
6
6
 
7
7
  - `GET /health` - liveness probe
8
+ - `POST /signup` - passthrough to identity signup (public)
9
+ - `POST /login` - passthrough to auth token issue (public)
8
10
  - `POST /api/items` - create item (bearer required)
9
11
  - `GET /api/items` - list items (bearer required)
10
12
  - `GET /api/items/{entity_id}` - get item (bearer required)
@@ -17,6 +19,7 @@ Platform app service with auth-guarded item endpoints.
17
19
  | Variable | Default | Description |
18
20
  |---|---|---|
19
21
  | `AUTH_SERVICE_URL` | `{{ cookiecutter.auth_service_url }}` | Auth service verify endpoint base URL |
22
+ | `IDENTITY_SERVICE_URL` | `{{ cookiecutter.identity_service_url }}` | Identity service base URL for signup passthrough |
20
23
 
21
24
  ## Run
22
25
 
@@ -0,0 +1,4 @@
1
+ from .auth_delegate import AuthDelegate
2
+ from .identity_delegate import IdentityDelegate
3
+
4
+ __all__ = ("AuthDelegate", "IdentityDelegate")
@@ -0,0 +1,11 @@
1
+ from csrd.delegate import BaseDelegate
2
+
3
+ from ..settings import settings
4
+
5
+
6
+ class AuthDelegate(BaseDelegate):
7
+ def __init__(self) -> None:
8
+ super().__init__(settings.auth_service_url)
9
+
10
+ async def login(self, username: str, password: str) -> dict[str, object]:
11
+ return await self.post("/api/token", json={"username": username, "password": password})
@@ -0,0 +1,11 @@
1
+ from csrd.delegate import BaseDelegate
2
+
3
+ from ..settings import settings
4
+
5
+
6
+ class IdentityDelegate(BaseDelegate):
7
+ def __init__(self) -> None:
8
+ super().__init__(settings.identity_service_url)
9
+
10
+ async def signup(self, username: str, password: str) -> dict[str, object]:
11
+ return await self.post("/api/signup", json={"username": username, "password": password})
@@ -0,0 +1,9 @@
1
+ from .auth_passthrough import AuthDelegateDep, IdentityDelegateDep
2
+ from .auth_service import VerifiedTokenDep, router_auth
3
+
4
+ __all__ = (
5
+ "AuthDelegateDep",
6
+ "IdentityDelegateDep",
7
+ "VerifiedTokenDep",
8
+ "router_auth",
9
+ )
@@ -0,0 +1,25 @@
1
+ from typing import Annotated
2
+
3
+ from fastapi import Depends
4
+
5
+ from ..delegates import AuthDelegate, IdentityDelegate
6
+
7
+
8
+ def auth_delegate_factory() -> AuthDelegate:
9
+ return AuthDelegate()
10
+
11
+
12
+ def identity_delegate_factory() -> IdentityDelegate:
13
+ return IdentityDelegate()
14
+
15
+
16
+ AuthDelegateDep = Annotated[AuthDelegate, Depends(auth_delegate_factory)]
17
+ IdentityDelegateDep = Annotated[IdentityDelegate, Depends(identity_delegate_factory)]
18
+
19
+
20
+ __all__ = (
21
+ "AuthDelegateDep",
22
+ "IdentityDelegateDep",
23
+ "auth_delegate_factory",
24
+ "identity_delegate_factory",
25
+ )
@@ -3,4 +3,5 @@ uvicorn[standard]>=0.30,<1
3
3
  pydantic-settings>=2.6,<3
4
4
  httpx>=0.27,<1
5
5
  csrd-auth>=0.1.0,<1
6
+ csrd-delegate>=0.1.0,<1
6
7
  csrd-versioning>=0.1.0,<1
@@ -7,6 +7,7 @@ class Settings(BaseSettings):
7
7
  app_name: str = "{{ cookiecutter.service_name }}"
8
8
  port: int = {{ cookiecutter.port }}
9
9
  auth_service_url: str = "{{ cookiecutter.auth_service_url }}"
10
+ identity_service_url: str = "{{ cookiecutter.identity_service_url }}"
10
11
 
11
12
 
12
13
  settings = Settings()
@@ -1,10 +1,11 @@
1
1
  from fastapi import FastAPI
2
2
 
3
- from . import health_view, items_view
3
+ from . import auth_service_view, health_view, items_view
4
4
 
5
5
  unversioned_app = FastAPI(title="{{ cookiecutter.service_name }}")
6
6
 
7
7
  unversioned_app.include_router(health_view.router)
8
+ unversioned_app.include_router(auth_service_view.router)
8
9
  unversioned_app.include_router(items_view.router)
9
10
 
10
11
  __all__ = ("unversioned_app",)
@@ -0,0 +1,28 @@
1
+ from fastapi import APIRouter
2
+ from pydantic import BaseModel
3
+
4
+ from ...dependencies import AuthDelegateDep, IdentityDelegateDep
5
+
6
+ router = APIRouter(tags=["Auth Service"])
7
+
8
+
9
+ class SignupRequest(BaseModel):
10
+ username: str
11
+ password: str
12
+
13
+
14
+ class LoginRequest(BaseModel):
15
+ username: str
16
+ password: str
17
+
18
+
19
+ @router.post("/signup")
20
+ async def signup(payload: SignupRequest, delegate: IdentityDelegateDep) -> dict[str, object]:
21
+ async with delegate:
22
+ return await delegate.signup(payload.username, payload.password)
23
+
24
+
25
+ @router.post("/login")
26
+ async def login(payload: LoginRequest, delegate: AuthDelegateDep) -> dict[str, object]:
27
+ async with delegate:
28
+ return await delegate.login(payload.username, payload.password)
@@ -1,3 +0,0 @@
1
- from .auth_service import VerifiedTokenDep, router_auth
2
-
3
- __all__ = ("VerifiedTokenDep", "router_auth")
File without changes
File without changes