dominus-sdk-python 9.0.4__tar.gz → 9.0.5__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-9.0.4 → dominus_sdk_python-9.0.5}/PKG-INFO +2 -2
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/README.md +1 -1
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/__init__.py +1 -1
- dominus_sdk_python-9.0.5/dominus/contract/__init__.py +10 -0
- dominus_sdk_python-9.0.5/dominus/contract/envelope.py +23 -0
- dominus_sdk_python-9.0.5/dominus/contract/projections.py +22 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/PKG-INFO +2 -2
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/SOURCES.txt +4 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/pyproject.toml +1 -1
- dominus_sdk_python-9.0.5/tests/test_contract.py +70 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/config/__init__.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/config/endpoints.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/errors.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/__init__.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/auth.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/cache.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/console_capture.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/core.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/crypto.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/sse.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/helpers/trace.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/__init__.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/admin.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/ai.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/artifacts.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/auth.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/authority.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/browser.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/coder.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/courier.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/db.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/ddl.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/deployer.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/fastapi.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/files.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/health.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/jobs.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/logs.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/platform.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/portal.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/processor.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/publisher.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/recipes.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/redis.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/secrets.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/secure.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/stash.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/sync.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/warden.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/namespaces/workflow.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/py.typed +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/services/__init__.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus/start.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/dependency_links.txt +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/requires.txt +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/top_level.txt +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/setup.cfg +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_auth.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_authority_public_vocabulary.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_browser_namespace.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_control_plane_namespaces.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_error_recovery_action.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_errors.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_flat_commands.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_health.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_logs.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_namespace_barrel_exports.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_platform_coder_namespaces.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_provisioning_parity.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_public_exports.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_publisher_namespace.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_readme_quickstart_catalog.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_recipes_namespace.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_recipes_stash_routing.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_secrets_presence_contract.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_stash_artifact_facade.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_stash_tables_namespace.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_transport_compat.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_workflow_lifecycle.py +0 -0
- {dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/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: 9.0.
|
|
3
|
+
Version: 9.0.5
|
|
4
4
|
Summary: Python SDK for the Dominus gateway-first platform
|
|
5
5
|
Author-email: CareBridge Systems <dev@carebridge.io>
|
|
6
6
|
License-Expression: LicenseRef-Proprietary
|
|
@@ -48,7 +48,7 @@ cleanup audit is `docs/janitor/2026-08-04-sdk-python-cleanup-audit.md`.
|
|
|
48
48
|
- Gateway-scoped client mode for MCP and other user-JWT sessions
|
|
49
49
|
- Transport compatibility for wrapped `{success,data}` responses and unwrapped Warden/control-plane success objects
|
|
50
50
|
- Local helpers for JWT verification, trace propagation, retries, and console capture
|
|
51
|
-
- Current package version: `9.0.
|
|
51
|
+
- Current package version: `9.0.5`
|
|
52
52
|
|
|
53
53
|
## Install
|
|
54
54
|
|
|
@@ -15,7 +15,7 @@ cleanup audit is `docs/janitor/2026-08-04-sdk-python-cleanup-audit.md`.
|
|
|
15
15
|
- Gateway-scoped client mode for MCP and other user-JWT sessions
|
|
16
16
|
- Transport compatibility for wrapped `{success,data}` responses and unwrapped Warden/control-plane success objects
|
|
17
17
|
- Local helpers for JWT verification, trace propagation, retries, and console capture
|
|
18
|
-
- Current package version: `9.0.
|
|
18
|
+
- Current package version: `9.0.5`
|
|
19
19
|
|
|
20
20
|
## Install
|
|
21
21
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"""Python SDK contract module (S-4.8): envelope + projection helpers."""
|
|
2
|
+
from .envelope import python_envelope, python_raise_for_status
|
|
3
|
+
from .projections import Projections, python_projections
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"Projections",
|
|
7
|
+
"python_envelope",
|
|
8
|
+
"python_projections",
|
|
9
|
+
"python_raise_for_status",
|
|
10
|
+
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Surface-adapter view of the canonical error envelope.
|
|
2
|
+
|
|
3
|
+
Wraps existing ``DominusError.to_dict()`` / ``raise_for_status`` — no
|
|
4
|
+
wire-shape change. Existing call sites stay on those APIs directly.
|
|
5
|
+
"""
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import Any, Dict, Optional
|
|
9
|
+
|
|
10
|
+
from dominus.errors import DominusError, raise_for_status
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def python_envelope(error: DominusError) -> Dict[str, Any]:
|
|
14
|
+
return error.to_dict()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def python_raise_for_status(
|
|
18
|
+
status_code: int,
|
|
19
|
+
message: str,
|
|
20
|
+
details: Optional[Dict[str, Any]] = None,
|
|
21
|
+
endpoint: Optional[str] = None,
|
|
22
|
+
) -> None:
|
|
23
|
+
raise_for_status(status_code, message, details, endpoint)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""Typed passthrough builder for per-surface name projections (ADR-0009).
|
|
2
|
+
|
|
3
|
+
This SDK has no projection catalog; the helper accepts a projections
|
|
4
|
+
object and returns it unchanged.
|
|
5
|
+
"""
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Projections(TypedDict, total=False):
|
|
12
|
+
gateway_path: str
|
|
13
|
+
sdk_python: str
|
|
14
|
+
sdk_nodejs: str
|
|
15
|
+
error_code_prefix: str
|
|
16
|
+
log_event_name: str
|
|
17
|
+
timeline_event_type: str
|
|
18
|
+
deploy_class: str
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def python_projections(projections: Projections) -> Projections:
|
|
22
|
+
return projections
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dominus-sdk-python
|
|
3
|
-
Version: 9.0.
|
|
3
|
+
Version: 9.0.5
|
|
4
4
|
Summary: Python SDK for the Dominus gateway-first platform
|
|
5
5
|
Author-email: CareBridge Systems <dev@carebridge.io>
|
|
6
6
|
License-Expression: LicenseRef-Proprietary
|
|
@@ -48,7 +48,7 @@ cleanup audit is `docs/janitor/2026-08-04-sdk-python-cleanup-audit.md`.
|
|
|
48
48
|
- Gateway-scoped client mode for MCP and other user-JWT sessions
|
|
49
49
|
- Transport compatibility for wrapped `{success,data}` responses and unwrapped Warden/control-plane success objects
|
|
50
50
|
- Local helpers for JWT verification, trace propagation, retries, and console capture
|
|
51
|
-
- Current package version: `9.0.
|
|
51
|
+
- Current package version: `9.0.5`
|
|
52
52
|
|
|
53
53
|
## Install
|
|
54
54
|
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/SOURCES.txt
RENAMED
|
@@ -6,6 +6,9 @@ dominus/py.typed
|
|
|
6
6
|
dominus/start.py
|
|
7
7
|
dominus/config/__init__.py
|
|
8
8
|
dominus/config/endpoints.py
|
|
9
|
+
dominus/contract/__init__.py
|
|
10
|
+
dominus/contract/envelope.py
|
|
11
|
+
dominus/contract/projections.py
|
|
9
12
|
dominus/helpers/__init__.py
|
|
10
13
|
dominus/helpers/auth.py
|
|
11
14
|
dominus/helpers/cache.py
|
|
@@ -52,6 +55,7 @@ dominus_sdk_python.egg-info/top_level.txt
|
|
|
52
55
|
tests/test_auth.py
|
|
53
56
|
tests/test_authority_public_vocabulary.py
|
|
54
57
|
tests/test_browser_namespace.py
|
|
58
|
+
tests/test_contract.py
|
|
55
59
|
tests/test_control_plane_namespaces.py
|
|
56
60
|
tests/test_error_recovery_action.py
|
|
57
61
|
tests/test_errors.py
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from dominus.errors import DominusError, raise_for_status
|
|
2
|
+
from dominus.contract import python_envelope, python_projections, python_raise_for_status
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def test_python_envelope_wraps_to_dict_without_changing_wire_shape():
|
|
6
|
+
error = DominusError(
|
|
7
|
+
"Missing resource",
|
|
8
|
+
status_code=404,
|
|
9
|
+
details={
|
|
10
|
+
"code": "authority.resource.not_found",
|
|
11
|
+
"kind": "not_found",
|
|
12
|
+
"request_id": "req-python-contract-1",
|
|
13
|
+
"correlation_id": "corr-python-contract-1",
|
|
14
|
+
},
|
|
15
|
+
endpoint="/svc/authority/runs/status",
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
from_class = error.to_dict()
|
|
19
|
+
from_contract = python_envelope(error)
|
|
20
|
+
|
|
21
|
+
assert from_contract == from_class
|
|
22
|
+
assert from_contract["kind"] == "not_found"
|
|
23
|
+
assert from_contract["code"] == "authority.resource.not_found"
|
|
24
|
+
assert from_contract["request_id"] == "req-python-contract-1"
|
|
25
|
+
assert from_contract["http_status"] == 404
|
|
26
|
+
assert from_contract["envelope_version"] == "1"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def test_python_raise_for_status_wraps_existing_raise_for_status():
|
|
30
|
+
try:
|
|
31
|
+
python_raise_for_status(
|
|
32
|
+
401,
|
|
33
|
+
"bad token",
|
|
34
|
+
{"kind": "unauthorized", "code": "kernel.auth.token_invalid"},
|
|
35
|
+
)
|
|
36
|
+
except DominusError as error:
|
|
37
|
+
assert error.kind == "unauthorized"
|
|
38
|
+
assert python_envelope(error) == error.to_dict()
|
|
39
|
+
else:
|
|
40
|
+
raise AssertionError("python_raise_for_status should raise DominusError")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def test_python_raise_for_status_matches_raise_for_status_class():
|
|
44
|
+
raised = None
|
|
45
|
+
wrapped = None
|
|
46
|
+
try:
|
|
47
|
+
raise_for_status(404, "gone")
|
|
48
|
+
except DominusError as error:
|
|
49
|
+
raised = type(error)
|
|
50
|
+
try:
|
|
51
|
+
python_raise_for_status(404, "gone")
|
|
52
|
+
except DominusError as error:
|
|
53
|
+
wrapped = type(error)
|
|
54
|
+
assert raised is not None and raised is wrapped
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def test_python_projections_is_typed_passthrough_builder():
|
|
58
|
+
incoming = {
|
|
59
|
+
"gateway_path": "/svc/authority/runs/ensure",
|
|
60
|
+
"sdk_python": "dominus.workflow.ensure",
|
|
61
|
+
"sdk_nodejs": "dominus.workflow.ensure",
|
|
62
|
+
"error_code_prefix": "authority.",
|
|
63
|
+
"log_event_name": "authority.run.ensure",
|
|
64
|
+
"timeline_event_type": "authority.run.ensured",
|
|
65
|
+
"deploy_class": "worker_ga",
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
out = python_projections(incoming)
|
|
69
|
+
assert out is incoming
|
|
70
|
+
assert out == incoming
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/dominus_sdk_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_authority_public_vocabulary.py
RENAMED
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/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
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_namespace_barrel_exports.py
RENAMED
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_platform_coder_namespaces.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_readme_quickstart_catalog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dominus_sdk_python-9.0.4 → dominus_sdk_python-9.0.5}/tests/test_secrets_presence_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|