sovereign 1.0.0b104__tar.gz → 1.0.0b107__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.
Potentially problematic release.
This version of sovereign might be problematic. Click here for more details.
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/PKG-INFO +2 -2
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/pyproject.toml +2 -2
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/schemas.py +17 -1
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/server.py +7 -3
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/sources/poller.py +3 -3
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/LICENSE.txt +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/README.md +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/app.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/cache.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/constants.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/context.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/dynamic_config/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/dynamic_config/deser.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/dynamic_config/loaders.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/error_info.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/logging/access_logger.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/logging/application_logger.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/logging/base_logger.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/logging/bootstrapper.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/logging/types.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/middlewares.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/modifiers/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/modifiers/lib.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/rendering.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/response_class.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/sources/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/sources/file.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/sources/inline.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/sources/lib.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/static/node_expression.js +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/static/panel.js +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/static/sass/style.scss +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/static/style.css +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/statistics.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/templates/base.html +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/templates/err.html +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/templates/resources.html +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/testing/loaders.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/testing/modifiers.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/tracing.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/auth.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/crypto.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/aes_gcm_cipher.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/base_cipher.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/disabled_cipher.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/fernet_cipher.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/dictupdate.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/eds.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/entry_point_loader.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/mock.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/resources.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/templates.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/timer.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/version_info.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/weighted_clusters.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/views/__init__.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/views/api.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/views/crypto.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/views/discovery.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/views/healthchecks.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/views/interface.py +0 -0
- {sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/worker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sovereign
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0b107
|
|
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
|
|
@@ -39,7 +39,7 @@ Requires-Dist: cachelib (>=0.10.2,<0.11.0)
|
|
|
39
39
|
Requires-Dist: cachetools (>=5.3.2,<6.0.0)
|
|
40
40
|
Requires-Dist: cashews[redis] (>=6.3.0,<7.0.0) ; extra == "caching"
|
|
41
41
|
Requires-Dist: croniter (>=1.4.1,<2.0.0)
|
|
42
|
-
Requires-Dist: cryptography (>=
|
|
42
|
+
Requires-Dist: cryptography (>=45.0.2)
|
|
43
43
|
Requires-Dist: datadog (>=0.50.1) ; extra == "statsd"
|
|
44
44
|
Requires-Dist: fastapi (>=0.115.2,<0.116.0)
|
|
45
45
|
Requires-Dist: glom (>=23.3.0,<24.0.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "sovereign"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.0b107"
|
|
4
4
|
description = "Envoy Proxy control-plane written in Python"
|
|
5
5
|
license = "Apache-2.0"
|
|
6
6
|
packages = [
|
|
@@ -76,7 +76,7 @@ Jinja2 = "^3.1.2"
|
|
|
76
76
|
structlog = "^23.1.0"
|
|
77
77
|
cachelib = "^0.10.2"
|
|
78
78
|
glom = "^23.3.0"
|
|
79
|
-
cryptography = "
|
|
79
|
+
cryptography = ">=45.0.2"
|
|
80
80
|
fastapi = "^0.115.2"
|
|
81
81
|
uvloop = "^0.19.0"
|
|
82
82
|
sentry-sdk = "^2.14.0"
|
|
@@ -6,7 +6,6 @@ from pathlib import Path
|
|
|
6
6
|
from enum import Enum
|
|
7
7
|
from os import getenv
|
|
8
8
|
from types import ModuleType
|
|
9
|
-
from collections import defaultdict
|
|
10
9
|
from dataclasses import dataclass
|
|
11
10
|
from functools import cached_property
|
|
12
11
|
from typing import Any, Dict, List, Mapping, Optional, Self, Tuple, Union, Callable
|
|
@@ -767,6 +766,20 @@ class TracingConfig(BaseSettings):
|
|
|
767
766
|
return values
|
|
768
767
|
|
|
769
768
|
|
|
769
|
+
class SupervisordConfig(BaseSettings):
|
|
770
|
+
nodaemon: bool = Field(True, alias="SOVEREIGN_SUPERVISORD_NODAEMON")
|
|
771
|
+
loglevel: str = Field("error", alias="SOVEREIGN_SUPERVISORD_LOGLEVEL")
|
|
772
|
+
pidfile: str = Field("/tmp/supervisord.pid", alias="SOVEREIGN_SUPERVISORD_PIDFILE")
|
|
773
|
+
logfile: str = Field("/tmp/supervisord.log", alias="SOVEREIGN_SUPERVISORD_LOGFILE")
|
|
774
|
+
directory: str = Field("%(here)s", alias="SOVEREIGN_SUPERVISORD_DIRECTORY")
|
|
775
|
+
model_config = SettingsConfigDict(
|
|
776
|
+
env_file=".env",
|
|
777
|
+
extra="ignore",
|
|
778
|
+
env_file_encoding="utf-8",
|
|
779
|
+
populate_by_name=True,
|
|
780
|
+
)
|
|
781
|
+
|
|
782
|
+
|
|
770
783
|
class LegacyConfig(BaseSettings):
|
|
771
784
|
regions: Optional[List[str]] = None
|
|
772
785
|
eds_priority_matrix: Optional[Dict[str, Dict[str, int]]] = None
|
|
@@ -858,6 +871,9 @@ class SovereignConfigv2(BaseSettings):
|
|
|
858
871
|
tracing: Optional[TracingConfig] = Field(default_factory=TracingConfig)
|
|
859
872
|
debug: bool = Field(False, alias="SOVEREIGN_DEBUG")
|
|
860
873
|
|
|
874
|
+
# Supervisord settings
|
|
875
|
+
supervisord: SupervisordConfig = SupervisordConfig()
|
|
876
|
+
|
|
861
877
|
# Deprecated in 0.30
|
|
862
878
|
sources: Optional[List[ConfiguredSource]] = Field(None, deprecated=True)
|
|
863
879
|
source_config: SourcesConfiguration = Field(
|
|
@@ -8,10 +8,11 @@ import uvicorn
|
|
|
8
8
|
from sovereign import application_logger as log
|
|
9
9
|
from sovereign.app import app
|
|
10
10
|
from sovereign.worker import worker as worker_app
|
|
11
|
-
from sovereign.schemas import SovereignAsgiConfig
|
|
11
|
+
from sovereign.schemas import SovereignAsgiConfig, SupervisordConfig
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
asgi_config = SovereignAsgiConfig()
|
|
15
|
+
supervisord_config = SupervisordConfig()
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
def web() -> None:
|
|
@@ -59,8 +60,11 @@ def write_supervisor_conf() -> Path:
|
|
|
59
60
|
|
|
60
61
|
conf = configparser.RawConfigParser()
|
|
61
62
|
conf["supervisord"] = supervisord = {
|
|
62
|
-
"nodaemon":
|
|
63
|
-
"loglevel":
|
|
63
|
+
"nodaemon": str(supervisord_config.nodaemon).lower(),
|
|
64
|
+
"loglevel": supervisord_config.loglevel,
|
|
65
|
+
"pidfile": supervisord_config.pidfile,
|
|
66
|
+
"logfile": supervisord_config.logfile,
|
|
67
|
+
"directory": supervisord_config.directory,
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
conf["fcgi-program:web"] = web = {
|
|
@@ -35,7 +35,7 @@ GMods = Dict[str, Type[GlobalModifier]]
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
def _deep_diff(old, new, path="") -> list[dict[str, Any]]:
|
|
38
|
-
changes = []
|
|
38
|
+
changes: list[dict[str, Any]] = []
|
|
39
39
|
|
|
40
40
|
# handle add/remove
|
|
41
41
|
if (old, new) == (None, None):
|
|
@@ -148,7 +148,7 @@ def source_diff_summary(prev, curr) -> dict[str, Any]:
|
|
|
148
148
|
n_old = len(old)
|
|
149
149
|
n_new = len(new)
|
|
150
150
|
|
|
151
|
-
scope_changes = {}
|
|
151
|
+
scope_changes: dict[str, Any] = {}
|
|
152
152
|
|
|
153
153
|
if n_old == 0 and n_new > 0:
|
|
154
154
|
scope_changes["added"] = n_new
|
|
@@ -161,7 +161,7 @@ def source_diff_summary(prev, curr) -> dict[str, Any]:
|
|
|
161
161
|
scope_changes["count_change"] = n_new - n_old
|
|
162
162
|
|
|
163
163
|
if scope_changes:
|
|
164
|
-
summary["scopes"][scope] = scope_changes
|
|
164
|
+
summary["scopes"][scope] = scope_changes # type: ignore
|
|
165
165
|
|
|
166
166
|
if not summary["scopes"]:
|
|
167
167
|
summary = {"type": "no_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
|
{sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/aes_gcm_cipher.py
RENAMED
|
File without changes
|
{sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/base_cipher.py
RENAMED
|
File without changes
|
{sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/disabled_cipher.py
RENAMED
|
File without changes
|
{sovereign-1.0.0b104 → sovereign-1.0.0b107}/src/sovereign/utils/crypto/suites/fernet_cipher.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
|