sovereign 1.0.0b127__tar.gz → 1.0.0b128__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.0b127 → sovereign-1.0.0b128}/PKG-INFO +4 -4
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/pyproject.toml +3 -2
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/app.py +1 -1
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/rendering.py +7 -9
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/server.py +4 -3
- sovereign-1.0.0b128/src/sovereign/views/__init__.py +0 -0
- sovereign-1.0.0b128/src/sovereign-files/static/style.css +16143 -0
- sovereign-1.0.0b128/src/sovereign-files/static/style.css.map +1 -0
- sovereign-1.0.0b127/LICENSE.txt +0 -13
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/README.md +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/cache.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/constants.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/context.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/dynamic_config/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/dynamic_config/deser.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/dynamic_config/loaders.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/error_info.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/logging/access_logger.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/logging/application_logger.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/logging/base_logger.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/logging/bootstrapper.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/logging/types.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/middlewares.py +0 -0
- {sovereign-1.0.0b127/src/sovereign/utils → sovereign-1.0.0b128/src/sovereign/modifiers}/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/modifiers/lib.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/response_class.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/schemas.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/sources/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/sources/file.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/sources/inline.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/sources/lib.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/sources/poller.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/statistics.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/templates/base.html +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/templates/err.html +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/templates/resources.html +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/testing/loaders.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/testing/modifiers.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/tracing.py +0 -0
- {sovereign-1.0.0b127/src/sovereign/utils/crypto → sovereign-1.0.0b128/src/sovereign/utils}/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/auth.py +0 -0
- {sovereign-1.0.0b127/src/sovereign/views → sovereign-1.0.0b128/src/sovereign/utils/crypto}/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/crypto/crypto.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/crypto/suites/__init__.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/crypto/suites/aes_gcm_cipher.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/crypto/suites/base_cipher.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/crypto/suites/disabled_cipher.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/crypto/suites/fernet_cipher.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/dictupdate.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/eds.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/entry_point_loader.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/mock.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/resources.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/templates.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/timer.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/version_info.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/utils/weighted_clusters.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/views/api.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/views/crypto.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/views/discovery.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/views/healthchecks.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/views/interface.py +0 -0
- {sovereign-1.0.0b127 → sovereign-1.0.0b128}/src/sovereign/worker.py +0 -0
- {sovereign-1.0.0b127/src/sovereign/modifiers → sovereign-1.0.0b128/src/sovereign-files}/__init__.py +0 -0
- {sovereign-1.0.0b127/src/sovereign → sovereign-1.0.0b128/src/sovereign-files}/static/darkmode.js +0 -0
- {sovereign-1.0.0b127/src/sovereign → sovereign-1.0.0b128/src/sovereign-files}/static/node_expression.js +0 -0
- {sovereign-1.0.0b127/src/sovereign → sovereign-1.0.0b128/src/sovereign-files}/static/panel.js +0 -0
- {sovereign-1.0.0b127/src/sovereign → sovereign-1.0.0b128/src/sovereign-files}/static/resources.css +0 -0
- {sovereign-1.0.0b127/src/sovereign → sovereign-1.0.0b128/src/sovereign-files}/static/resources.js +0 -0
- {sovereign-1.0.0b127/src/sovereign → sovereign-1.0.0b128/src/sovereign-files}/static/sass/style.scss +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: sovereign
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0b128
|
|
4
4
|
Summary: Envoy Proxy control-plane written in Python
|
|
5
|
-
Home-page: https://pypi.org/project/sovereign/
|
|
6
5
|
License: Apache-2.0
|
|
7
6
|
Keywords: envoy,envoyproxy,control-plane,management,server
|
|
8
7
|
Author: Vasili Syrakis
|
|
@@ -20,6 +19,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.8
|
|
25
25
|
Classifier: Programming Language :: Python :: 3.9
|
|
@@ -49,7 +49,6 @@ Requires-Dist: jmespath (>=1.0.1,<2.0.0)
|
|
|
49
49
|
Requires-Dist: orjson (>=3.9.15,<4.0.0) ; extra == "orjson"
|
|
50
50
|
Requires-Dist: pydantic (>=2.7.2,<3.0.0)
|
|
51
51
|
Requires-Dist: pydantic-settings (<2.6.0)
|
|
52
|
-
Requires-Dist: redis (<=5.0.0)
|
|
53
52
|
Requires-Dist: requests (>=2.32.4,<3.0.0)
|
|
54
53
|
Requires-Dist: sentry-sdk (>=2.14.0,<3.0.0) ; extra == "sentry"
|
|
55
54
|
Requires-Dist: starlette (>=0.47.2,<0.48.0)
|
|
@@ -60,6 +59,7 @@ Requires-Dist: ujson (>=5.8.0,<6.0.0) ; extra == "ujson"
|
|
|
60
59
|
Requires-Dist: uvicorn (>=0.23.2,<0.24.0)
|
|
61
60
|
Requires-Dist: uvloop (>=0.19.0,<0.20.0)
|
|
62
61
|
Project-URL: Documentation, https://developer.atlassian.com/platform/sovereign/
|
|
62
|
+
Project-URL: Homepage, https://pypi.org/project/sovereign/
|
|
63
63
|
Project-URL: Repository, https://bitbucket.org/atlassian/sovereign/src/master/
|
|
64
64
|
Description-Content-Type: text/markdown
|
|
65
65
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "sovereign"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.0b128"
|
|
4
4
|
description = "Envoy Proxy control-plane written in Python"
|
|
5
5
|
license = "Apache-2.0"
|
|
6
6
|
packages = [
|
|
7
|
-
{ include = "sovereign", from = "src", format = "sdist" }
|
|
7
|
+
{ include = "sovereign", from = "src", format = "sdist" },
|
|
8
|
+
{ include = "sovereign-files", from = "src", format = "sdist" },
|
|
8
9
|
]
|
|
9
10
|
readme = "README.md"
|
|
10
11
|
#include = ["CHANGELOG.md", "CODE_OF_CONDUCT.md"]
|
|
@@ -101,7 +101,7 @@ def init_app() -> FastAPI:
|
|
|
101
101
|
|
|
102
102
|
@application.get("/static/{filename}", summary="Return a static asset")
|
|
103
103
|
async def static(filename: str) -> Response:
|
|
104
|
-
return FileResponse(get_package_file("sovereign", f"static/{filename}")) # type: ignore[arg-type]
|
|
104
|
+
return FileResponse(get_package_file("sovereign-files", f"static/{filename}")) # type: ignore[arg-type]
|
|
105
105
|
|
|
106
106
|
@application.get(
|
|
107
107
|
"/admin/xds_dump",
|
|
@@ -7,8 +7,8 @@ Functions used to render and return discovery responses to Envoy proxies.
|
|
|
7
7
|
The templates are configurable. `todo See ref:Configuration#Templates`
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
import
|
|
11
|
-
from multiprocessing import Process,
|
|
10
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
11
|
+
from multiprocessing import Process, cpu_count
|
|
12
12
|
from typing import Any, Dict, List
|
|
13
13
|
|
|
14
14
|
import yaml
|
|
@@ -30,7 +30,7 @@ from sovereign.schemas import (
|
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
# limit render jobs to number of cores
|
|
33
|
-
|
|
33
|
+
POOL = ThreadPoolExecutor(max_workers=cpu_count())
|
|
34
34
|
|
|
35
35
|
type_urls = {
|
|
36
36
|
"v2": {
|
|
@@ -59,14 +59,12 @@ class RenderJob(pydantic.BaseModel):
|
|
|
59
59
|
context: dict[str, Any]
|
|
60
60
|
|
|
61
61
|
def spawn(self):
|
|
62
|
-
|
|
63
|
-
t.start()
|
|
62
|
+
POOL.submit(self._run)
|
|
64
63
|
|
|
65
64
|
def _run(self):
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
proc.join()
|
|
65
|
+
proc = Process(target=generate, args=[self])
|
|
66
|
+
proc.start()
|
|
67
|
+
proc.join()
|
|
70
68
|
|
|
71
69
|
|
|
72
70
|
def generate(job: RenderJob) -> None:
|
|
@@ -6,16 +6,15 @@ from pathlib import Path
|
|
|
6
6
|
import uvicorn
|
|
7
7
|
|
|
8
8
|
from sovereign import application_logger as log
|
|
9
|
-
from sovereign.app import app
|
|
10
|
-
from sovereign.worker import worker as worker_app
|
|
11
9
|
from sovereign.schemas import SovereignAsgiConfig, SupervisordConfig
|
|
12
10
|
|
|
13
|
-
|
|
14
11
|
asgi_config = SovereignAsgiConfig()
|
|
15
12
|
supervisord_config = SupervisordConfig()
|
|
16
13
|
|
|
17
14
|
|
|
18
15
|
def web() -> None:
|
|
16
|
+
from sovereign.app import app
|
|
17
|
+
|
|
19
18
|
log.debug("Starting web server")
|
|
20
19
|
uvicorn.run(
|
|
21
20
|
app,
|
|
@@ -30,6 +29,8 @@ def web() -> None:
|
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
def worker():
|
|
32
|
+
from sovereign.worker import worker as worker_app
|
|
33
|
+
|
|
33
34
|
log.debug("Starting worker")
|
|
34
35
|
uvicorn.run(
|
|
35
36
|
worker_app,
|
|
File without changes
|