sovereign 0.31.0__tar.gz → 0.32.0__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 (64) hide show
  1. {sovereign-0.31.0 → sovereign-0.32.0}/PKG-INFO +1 -1
  2. {sovereign-0.31.0 → sovereign-0.32.0}/pyproject.toml +1 -1
  3. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/views/discovery.py +13 -5
  4. {sovereign-0.31.0 → sovereign-0.32.0}/LICENSE.txt +0 -0
  5. {sovereign-0.31.0 → sovereign-0.32.0}/README.md +0 -0
  6. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/__init__.py +0 -0
  7. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/app.py +0 -0
  8. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/constants.py +0 -0
  9. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/context.py +0 -0
  10. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/discovery.py +0 -0
  11. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/dynamic_config/__init__.py +0 -0
  12. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/dynamic_config/deser.py +0 -0
  13. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/dynamic_config/loaders.py +0 -0
  14. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/error_info.py +0 -0
  15. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/logging/access_logger.py +0 -0
  16. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/logging/application_logger.py +0 -0
  17. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/logging/base_logger.py +0 -0
  18. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/logging/bootstrapper.py +0 -0
  19. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/logging/types.py +0 -0
  20. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/middlewares.py +0 -0
  21. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/modifiers/__init__.py +0 -0
  22. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/modifiers/lib.py +0 -0
  23. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/response_class.py +0 -0
  24. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/schemas.py +0 -0
  25. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/server.py +0 -0
  26. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/sources/__init__.py +0 -0
  27. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/sources/file.py +0 -0
  28. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/sources/inline.py +0 -0
  29. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/sources/lib.py +0 -0
  30. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/sources/poller.py +0 -0
  31. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/static/panel.js +0 -0
  32. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/static/sass/style.scss +0 -0
  33. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/static/search_filter.js +0 -0
  34. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/static/style.css +0 -0
  35. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/statistics.py +0 -0
  36. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/templates/base.html +0 -0
  37. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/templates/err.html +0 -0
  38. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/templates/resources.html +0 -0
  39. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/testing/loaders.py +0 -0
  40. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/testing/modifiers.py +0 -0
  41. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/tracing.py +0 -0
  42. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/__init__.py +0 -0
  43. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/auth.py +0 -0
  44. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/__init__.py +0 -0
  45. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/crypto.py +0 -0
  46. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/suites/__init__.py +0 -0
  47. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/suites/aes_gcm_cipher.py +0 -0
  48. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/suites/base_cipher.py +0 -0
  49. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/suites/disabled_cipher.py +0 -0
  50. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/crypto/suites/fernet_cipher.py +0 -0
  51. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/dictupdate.py +0 -0
  52. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/eds.py +0 -0
  53. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/entry_point_loader.py +0 -0
  54. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/mock.py +0 -0
  55. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/resources.py +0 -0
  56. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/templates.py +0 -0
  57. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/timer.py +0 -0
  58. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/version_info.py +0 -0
  59. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/utils/weighted_clusters.py +0 -0
  60. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/views/__init__.py +0 -0
  61. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/views/admin.py +0 -0
  62. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/views/crypto.py +0 -0
  63. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/views/healthchecks.py +0 -0
  64. {sovereign-0.31.0 → sovereign-0.32.0}/src/sovereign/views/interface.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sovereign
3
- Version: 0.31.0
3
+ Version: 0.32.0
4
4
  Summary: Envoy Proxy control-plane written in Python
5
5
  Home-page: https://pypi.org/project/sovereign/
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sovereign"
3
- version = "0.31.0"
3
+ version = "0.32.0"
4
4
  description = "Envoy Proxy control-plane written in Python"
5
5
  license = "Apache-2.0"
6
6
  packages = [
@@ -1,3 +1,4 @@
1
+ import os
1
2
  from typing import Dict
2
3
 
3
4
  from fastapi import Body, Header
@@ -117,8 +118,6 @@ async def perform_discovery(
117
118
  authenticate(req)
118
119
  if discovery_cache.enabled:
119
120
  logs.access_logger.queue_log_fields(CACHE_XDS_HIT=False)
120
- metadata_keys = discovery_cache.extra_keys.get("metadata", [])
121
- extra_metadata = [req.node.metadata.get(key, None) for key in metadata_keys]
122
121
  hash_keys = [
123
122
  api_version,
124
123
  resource_type,
@@ -130,11 +129,20 @@ async def perform_discovery(
130
129
  req.node.cluster,
131
130
  req.node.locality,
132
131
  # TODO: this is very bad and everyone should feel bad. Remove this in the next breaking release
133
- req.node.metadata.get("auth", None),
134
- req.node.metadata.get("num_cpus", None),
132
+ req.node.metadata.get("auth"),
133
+ req.node.metadata.get("num_cpus"),
135
134
  ]
135
+
136
+ metadata_keys = discovery_cache.extra_keys.get("metadata", [])
137
+ extra_metadata = [req.node.metadata.get(key) for key in metadata_keys]
136
138
  hash_keys += extra_metadata
137
- cache_key = compute_hash(hash_keys)
139
+
140
+ env_keys = discovery_cache.extra_keys.get("env_vars", [])
141
+ env_var_values = [os.getenv(key) for key in env_keys]
142
+ hash_keys += env_var_values
143
+
144
+ cache_key = compute_hash(*hash_keys)
145
+
138
146
  if template := await cache.get(key=cache_key, default=None):
139
147
  logs.access_logger.queue_log_fields(CACHE_XDS_HIT=True)
140
148
  return template # type: ignore[no-any-return]
File without changes
File without changes