dominus-sdk-python 4.0.6__tar.gz → 4.0.7__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.
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/PKG-INFO +4 -2
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/README.md +3 -1
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/__init__.py +1 -1
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/auth.py +9 -2
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/PKG-INFO +4 -2
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/pyproject.toml +1 -1
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_auth.py +47 -1
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/config/__init__.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/config/endpoints.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/errors.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/__init__.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/auth.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/cache.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/console_capture.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/core.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/crypto.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/sse.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/helpers/trace.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/__init__.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/admin.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/ai.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/artifacts.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/authority.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/courier.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/db.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/ddl.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/deployer.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/fastapi.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/files.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/health.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/jobs.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/logs.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/portal.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/processor.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/redis.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/secrets.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/secure.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/sync.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/warden.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/namespaces/workflow.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/services/__init__.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus/start.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/SOURCES.txt +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/dependency_links.txt +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/requires.txt +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/top_level.txt +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/setup.cfg +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_authority_public_vocabulary.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_control_plane_namespaces.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_errors.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_flat_commands.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_health.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_logs.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_provisioning_parity.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_public_exports.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_transport_compat.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_workflow_lifecycle.py +0 -0
- {dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_workflow_refs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dominus-sdk-python
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.7
|
|
4
4
|
Summary: Python SDK for the Dominus gateway-first platform
|
|
5
5
|
Author-email: CareBridge Systems <dev@carebridge.io>
|
|
6
6
|
License: Proprietary
|
|
@@ -42,7 +42,7 @@ Async Python SDK for the Dominus gateway-first service plane.
|
|
|
42
42
|
- Gateway-scoped client mode for MCP and other user-JWT sessions
|
|
43
43
|
- Transport compatibility for wrapped `{success,data}` responses and unwrapped Warden/control-plane success objects
|
|
44
44
|
- Local helpers for JWT verification, trace propagation, retries, and console capture
|
|
45
|
-
- Current package version: `4.0.
|
|
45
|
+
- Current package version: `4.0.7`
|
|
46
46
|
|
|
47
47
|
## Install
|
|
48
48
|
|
|
@@ -185,6 +185,8 @@ operations:
|
|
|
185
185
|
|
|
186
186
|
New code should prefer namespace APIs.
|
|
187
187
|
|
|
188
|
+
Guardian navigation helpers expose nav-row `path` on `create_nav_item()` and `update_nav_item()`. Use that field when a sidebar item must route to a concrete URL independent of, or more specific than, the linked Guardian page row.
|
|
189
|
+
|
|
188
190
|
## Documentation
|
|
189
191
|
|
|
190
192
|
- [Architecture](docs/architecture.md) - request flow, gateway routing, resilience
|
|
@@ -9,7 +9,7 @@ Async Python SDK for the Dominus gateway-first service plane.
|
|
|
9
9
|
- Gateway-scoped client mode for MCP and other user-JWT sessions
|
|
10
10
|
- Transport compatibility for wrapped `{success,data}` responses and unwrapped Warden/control-plane success objects
|
|
11
11
|
- Local helpers for JWT verification, trace propagation, retries, and console capture
|
|
12
|
-
- Current package version: `4.0.
|
|
12
|
+
- Current package version: `4.0.7`
|
|
13
13
|
|
|
14
14
|
## Install
|
|
15
15
|
|
|
@@ -152,6 +152,8 @@ operations:
|
|
|
152
152
|
|
|
153
153
|
New code should prefer namespace APIs.
|
|
154
154
|
|
|
155
|
+
Guardian navigation helpers expose nav-row `path` on `create_nav_item()` and `update_nav_item()`. Use that field when a sidebar item must route to a concrete URL independent of, or more specific than, the linked Guardian page row.
|
|
156
|
+
|
|
155
157
|
## Documentation
|
|
156
158
|
|
|
157
159
|
- [Architecture](docs/architecture.md) - request flow, gateway routing, resilience
|
|
@@ -1421,7 +1421,8 @@ class AuthNamespace:
|
|
|
1421
1421
|
item_type: str = "link",
|
|
1422
1422
|
is_active: bool = True,
|
|
1423
1423
|
sort_order: int = 0,
|
|
1424
|
-
is_expanded_default: bool = False
|
|
1424
|
+
is_expanded_default: bool = False,
|
|
1425
|
+
path: Optional[str] = None
|
|
1425
1426
|
) -> Dict[str, Any]:
|
|
1426
1427
|
"""
|
|
1427
1428
|
Create a new navigation item.
|
|
@@ -1436,6 +1437,7 @@ class AuthNamespace:
|
|
|
1436
1437
|
is_active: Whether item is active
|
|
1437
1438
|
sort_order: Sort position
|
|
1438
1439
|
is_expanded_default: Whether group is expanded by default
|
|
1440
|
+
path: Direct navigation path. When set, Portal may use it instead of the linked page path.
|
|
1439
1441
|
"""
|
|
1440
1442
|
body = {
|
|
1441
1443
|
"title": title,
|
|
@@ -1444,6 +1446,8 @@ class AuthNamespace:
|
|
|
1444
1446
|
"is_active": is_active,
|
|
1445
1447
|
"is_expanded_default": is_expanded_default
|
|
1446
1448
|
}
|
|
1449
|
+
if path:
|
|
1450
|
+
body["path"] = path
|
|
1447
1451
|
if icon:
|
|
1448
1452
|
body["icon"] = icon
|
|
1449
1453
|
if description:
|
|
@@ -1515,12 +1519,15 @@ class AuthNamespace:
|
|
|
1515
1519
|
item_type: Optional[str] = None,
|
|
1516
1520
|
is_active: Optional[bool] = None,
|
|
1517
1521
|
sort_order: Optional[int] = None,
|
|
1518
|
-
is_expanded_default: Optional[bool] = None
|
|
1522
|
+
is_expanded_default: Optional[bool] = None,
|
|
1523
|
+
path: Optional[str] = None
|
|
1519
1524
|
) -> Dict[str, Any]:
|
|
1520
1525
|
"""Update navigation item."""
|
|
1521
1526
|
body = {}
|
|
1522
1527
|
if title is not None:
|
|
1523
1528
|
body["title"] = title
|
|
1529
|
+
if path is not None:
|
|
1530
|
+
body["path"] = path
|
|
1524
1531
|
if icon is not None:
|
|
1525
1532
|
body["icon"] = icon
|
|
1526
1533
|
if description is not None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dominus-sdk-python
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.7
|
|
4
4
|
Summary: Python SDK for the Dominus gateway-first platform
|
|
5
5
|
Author-email: CareBridge Systems <dev@carebridge.io>
|
|
6
6
|
License: Proprietary
|
|
@@ -42,7 +42,7 @@ Async Python SDK for the Dominus gateway-first service plane.
|
|
|
42
42
|
- Gateway-scoped client mode for MCP and other user-JWT sessions
|
|
43
43
|
- Transport compatibility for wrapped `{success,data}` responses and unwrapped Warden/control-plane success objects
|
|
44
44
|
- Local helpers for JWT verification, trace propagation, retries, and console capture
|
|
45
|
-
- Current package version: `4.0.
|
|
45
|
+
- Current package version: `4.0.7`
|
|
46
46
|
|
|
47
47
|
## Install
|
|
48
48
|
|
|
@@ -185,6 +185,8 @@ operations:
|
|
|
185
185
|
|
|
186
186
|
New code should prefer namespace APIs.
|
|
187
187
|
|
|
188
|
+
Guardian navigation helpers expose nav-row `path` on `create_nav_item()` and `update_nav_item()`. Use that field when a sidebar item must route to a concrete URL independent of, or more specific than, the linked Guardian page row.
|
|
189
|
+
|
|
188
190
|
## Documentation
|
|
189
191
|
|
|
190
192
|
- [Architecture](docs/architecture.md) - request flow, gateway routing, resilience
|
|
@@ -40,7 +40,12 @@ class FakeAsyncClient:
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class FakeClient:
|
|
43
|
-
|
|
43
|
+
def __init__(self):
|
|
44
|
+
self.calls = []
|
|
45
|
+
|
|
46
|
+
async def _request(self, **kwargs):
|
|
47
|
+
self.calls.append(kwargs)
|
|
48
|
+
return {"ok": True}
|
|
44
49
|
|
|
45
50
|
|
|
46
51
|
@pytest.mark.asyncio
|
|
@@ -59,3 +64,44 @@ async def test_get_jwks_uses_gateway_jwt_route_and_caches(monkeypatch):
|
|
|
59
64
|
assert second == first
|
|
60
65
|
assert len(FakeAsyncClient.calls) == 1
|
|
61
66
|
assert FakeAsyncClient.calls[0]["url"] == "https://gateway.example/jwt/jwks"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@pytest.mark.asyncio
|
|
70
|
+
async def test_nav_item_helpers_write_guardian_navigation_path():
|
|
71
|
+
client = FakeClient()
|
|
72
|
+
namespace = AuthNamespace(client)
|
|
73
|
+
|
|
74
|
+
await namespace.create_nav_item(
|
|
75
|
+
title="Structured Reporting",
|
|
76
|
+
path="/dashboard/radiologist/structured-reporting",
|
|
77
|
+
page_id="page-1",
|
|
78
|
+
icon="ListChecks",
|
|
79
|
+
)
|
|
80
|
+
await namespace.update_nav_item(
|
|
81
|
+
"nav-1",
|
|
82
|
+
path="/dashboard/radiologist/procedure-settings",
|
|
83
|
+
page_id="page-2",
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
assert client.calls[0]["endpoint"] == "/api/guardian/nav-items"
|
|
87
|
+
assert client.calls[0]["body"]["path"] == "/dashboard/radiologist/structured-reporting"
|
|
88
|
+
assert client.calls[0]["body"]["page_id"] == "page-1"
|
|
89
|
+
assert client.calls[1]["endpoint"] == "/api/guardian/nav-items/nav-1"
|
|
90
|
+
assert client.calls[1]["method"] == "PUT"
|
|
91
|
+
assert client.calls[1]["body"]["path"] == "/dashboard/radiologist/procedure-settings"
|
|
92
|
+
assert client.calls[1]["body"]["page_id"] == "page-2"
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@pytest.mark.asyncio
|
|
96
|
+
async def test_nav_item_helpers_preserve_positional_icon_compatibility():
|
|
97
|
+
client = FakeClient()
|
|
98
|
+
namespace = AuthNamespace(client)
|
|
99
|
+
|
|
100
|
+
await namespace.create_nav_item("Structured Reporting", "ListChecks")
|
|
101
|
+
await namespace.update_nav_item("nav-1", "Procedure Settings", "ClipboardList")
|
|
102
|
+
|
|
103
|
+
assert client.calls[0]["body"]["icon"] == "ListChecks"
|
|
104
|
+
assert "path" not in client.calls[0]["body"]
|
|
105
|
+
assert client.calls[1]["body"]["title"] == "Procedure Settings"
|
|
106
|
+
assert client.calls[1]["body"]["icon"] == "ClipboardList"
|
|
107
|
+
assert "path" not in client.calls[1]["body"]
|
|
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
|
{dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/dominus_sdk_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_authority_public_vocabulary.py
RENAMED
|
File without changes
|
{dominus_sdk_python-4.0.6 → dominus_sdk_python-4.0.7}/tests/test_control_plane_namespaces.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
|