dominus-sdk-python 9.0.8__tar.gz → 9.0.10__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 (82) hide show
  1. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/PKG-INFO +4 -4
  2. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/README.md +3 -3
  3. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/__init__.py +1 -1
  4. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/auth.py +0 -16
  5. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/logs.py +8 -0
  6. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus_sdk_python.egg-info/PKG-INFO +4 -4
  7. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus_sdk_python.egg-info/SOURCES.txt +1 -0
  8. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/pyproject.toml +1 -1
  9. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_auth.py +7 -0
  10. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_logs.py +4 -1
  11. dominus_sdk_python-9.0.10/tests/test_version_consistency.py +38 -0
  12. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/config/__init__.py +0 -0
  13. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/config/endpoints.py +0 -0
  14. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/contract/__init__.py +0 -0
  15. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/contract/envelope.py +0 -0
  16. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/contract/projections.py +0 -0
  17. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/errors.py +0 -0
  18. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/__init__.py +0 -0
  19. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/auth.py +0 -0
  20. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/cache.py +0 -0
  21. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/console_capture.py +0 -0
  22. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/core.py +0 -0
  23. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/crypto.py +0 -0
  24. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/sse.py +0 -0
  25. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/helpers/trace.py +0 -0
  26. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/__init__.py +0 -0
  27. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/admin.py +0 -0
  28. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/ai.py +0 -0
  29. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/artifacts.py +0 -0
  30. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/authority.py +0 -0
  31. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/browser.py +0 -0
  32. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/coder.py +0 -0
  33. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/courier.py +0 -0
  34. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/db.py +0 -0
  35. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/ddl.py +0 -0
  36. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/deployer.py +0 -0
  37. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/fastapi.py +0 -0
  38. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/files.py +0 -0
  39. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/health.py +0 -0
  40. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/jobs.py +0 -0
  41. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/platform.py +0 -0
  42. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/portal.py +0 -0
  43. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/processor.py +0 -0
  44. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/publisher.py +0 -0
  45. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/recipes.py +0 -0
  46. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/redis.py +0 -0
  47. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/secrets.py +0 -0
  48. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/secure.py +0 -0
  49. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/stash.py +0 -0
  50. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/sync.py +0 -0
  51. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/warden.py +0 -0
  52. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/namespaces/workflow.py +0 -0
  53. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/py.typed +0 -0
  54. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/services/__init__.py +0 -0
  55. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus/start.py +0 -0
  56. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus_sdk_python.egg-info/dependency_links.txt +0 -0
  57. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus_sdk_python.egg-info/requires.txt +0 -0
  58. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/dominus_sdk_python.egg-info/top_level.txt +0 -0
  59. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/setup.cfg +0 -0
  60. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_authority_public_vocabulary.py +0 -0
  61. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_browser_namespace.py +0 -0
  62. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_contract.py +0 -0
  63. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_control_plane_namespaces.py +0 -0
  64. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_error_recovery_action.py +0 -0
  65. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_errors.py +0 -0
  66. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_errors_aliases.py +0 -0
  67. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_flat_commands.py +0 -0
  68. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_health.py +0 -0
  69. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_namespace_barrel_exports.py +0 -0
  70. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_platform_coder_namespaces.py +0 -0
  71. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_provisioning_parity.py +0 -0
  72. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_public_exports.py +0 -0
  73. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_publisher_namespace.py +0 -0
  74. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_readme_quickstart_catalog.py +0 -0
  75. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_recipes_namespace.py +0 -0
  76. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_recipes_stash_routing.py +0 -0
  77. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_secrets_presence_contract.py +0 -0
  78. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_stash_artifact_facade.py +0 -0
  79. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_stash_tables_namespace.py +0 -0
  80. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_transport_compat.py +0 -0
  81. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/tests/test_workflow_lifecycle.py +0 -0
  82. {dominus_sdk_python-9.0.8 → dominus_sdk_python-9.0.10}/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.8
3
+ Version: 9.0.10
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
@@ -38,8 +38,8 @@ Async Python SDK for the Dominus gateway-first service plane.
38
38
  ## Agent Guide
39
39
 
40
40
  Start with `docs/agent-guide/INDEX.md`. The current snapshot is
41
- `docs/agent-guide/2026-09-03-0942-sdk-python/00-reading-order.md`; the latest
42
- cleanup audit is `docs/janitor/2026-09-03-0942-sdk-python-cleanup-audit.md`.
41
+ `docs/agent-guide/2026-09-10-1002-sdk-python/00-reading-order.md`; the latest
42
+ cleanup audit is `docs/janitor/2026-09-10-1002-sdk-python-cleanup-audit.md`.
43
43
 
44
44
  ## What This Repo Ships
45
45
 
@@ -48,7 +48,7 @@ cleanup audit is `docs/janitor/2026-09-03-0942-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.6`
51
+ - Current package version: `9.0.9`
52
52
 
53
53
  ## Install
54
54
 
@@ -5,8 +5,8 @@ Async Python SDK for the Dominus gateway-first service plane.
5
5
  ## Agent Guide
6
6
 
7
7
  Start with `docs/agent-guide/INDEX.md`. The current snapshot is
8
- `docs/agent-guide/2026-09-03-0942-sdk-python/00-reading-order.md`; the latest
9
- cleanup audit is `docs/janitor/2026-09-03-0942-sdk-python-cleanup-audit.md`.
8
+ `docs/agent-guide/2026-09-10-1002-sdk-python/00-reading-order.md`; the latest
9
+ cleanup audit is `docs/janitor/2026-09-10-1002-sdk-python-cleanup-audit.md`.
10
10
 
11
11
  ## What This Repo Ships
12
12
 
@@ -15,7 +15,7 @@ cleanup audit is `docs/janitor/2026-09-03-0942-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.6`
18
+ - Current package version: `9.0.9`
19
19
 
20
20
  ## Install
21
21
 
@@ -190,7 +190,7 @@ from .errors import (
190
190
  TimeoutError as DominusTimeoutError,
191
191
  )
192
192
 
193
- __version__ = "9.0.8"
193
+ __version__ = "9.0.10"
194
194
  __all__ = [
195
195
  # Main SDK instance
196
196
  "dominus",
@@ -28,7 +28,6 @@ class AuthNamespace:
28
28
  # User management
29
29
  user = await dominus.auth.create_user(username="john", email="j@ex.com", password="secret")
30
30
  users = await dominus.auth.list_users(status="active")
31
- await dominus.auth.update_password(user_id, "new_password")
32
31
 
33
32
  # Role management
34
33
  role = await dominus.auth.create_role(name="admin", description="Admin role")
@@ -145,21 +144,6 @@ class AuthNamespace:
145
144
  method="DELETE"
146
145
  )
147
146
 
148
- async def update_password(self, user_id: str, password: str) -> Dict[str, Any]:
149
- """Update user password."""
150
- return await self._client._request(
151
- endpoint=f"/api/guardian/users/{user_id}/password",
152
- method="PUT",
153
- body={"password": password}
154
- )
155
-
156
- async def verify_password(self, user_id: str, password: str) -> Dict[str, Any]:
157
- """Verify user password."""
158
- return await self._client._request(
159
- endpoint=f"/api/guardian/users/{user_id}/verify-password",
160
- body={"password": password}
161
- )
162
-
163
147
  # User profiles
164
148
  async def get_user_profile(self, user_id: str) -> Optional[Dict[str, Any]]:
165
149
  """Get user profile by user_id. Returns None if no profile exists."""
@@ -329,6 +329,8 @@ class LogsNamespace:
329
329
  until: Optional[str] = None,
330
330
  service: Optional[str] = None,
331
331
  level: Optional[str] = None,
332
+ event_name: Optional[str] = None,
333
+ route_path: Optional[str] = None,
332
334
  company: Optional[str] = None,
333
335
  subject: Optional[str] = None,
334
336
  run_id: Optional[str] = None,
@@ -347,6 +349,8 @@ class LogsNamespace:
347
349
  trace_id: Optional trace_id filter to return only events from a specific trace
348
350
  since: Optional ISO timestamp lower bound
349
351
  level: Optional minimum log level (e.g. debug, info, warn, error)
352
+ event_name: Optional exact event name filter
353
+ route_path: Optional attrs.route_path filter
350
354
  company: Optional canonical company slug filter
351
355
  subject: Optional domain subject filter
352
356
  run_id: Optional workflow or Authority run id filter
@@ -376,6 +380,10 @@ class LogsNamespace:
376
380
  params["service"] = service
377
381
  if level:
378
382
  params["level"] = level
383
+ if event_name:
384
+ params["event_name"] = event_name
385
+ if route_path:
386
+ params["route_path"] = route_path
379
387
  if company:
380
388
  params["company"] = company
381
389
  if subject:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dominus-sdk-python
3
- Version: 9.0.8
3
+ Version: 9.0.10
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
@@ -38,8 +38,8 @@ Async Python SDK for the Dominus gateway-first service plane.
38
38
  ## Agent Guide
39
39
 
40
40
  Start with `docs/agent-guide/INDEX.md`. The current snapshot is
41
- `docs/agent-guide/2026-09-03-0942-sdk-python/00-reading-order.md`; the latest
42
- cleanup audit is `docs/janitor/2026-09-03-0942-sdk-python-cleanup-audit.md`.
41
+ `docs/agent-guide/2026-09-10-1002-sdk-python/00-reading-order.md`; the latest
42
+ cleanup audit is `docs/janitor/2026-09-10-1002-sdk-python-cleanup-audit.md`.
43
43
 
44
44
  ## What This Repo Ships
45
45
 
@@ -48,7 +48,7 @@ cleanup audit is `docs/janitor/2026-09-03-0942-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.6`
51
+ - Current package version: `9.0.9`
52
52
 
53
53
  ## Install
54
54
 
@@ -75,5 +75,6 @@ tests/test_secrets_presence_contract.py
75
75
  tests/test_stash_artifact_facade.py
76
76
  tests/test_stash_tables_namespace.py
77
77
  tests/test_transport_compat.py
78
+ tests/test_version_consistency.py
78
79
  tests/test_workflow_lifecycle.py
79
80
  tests/test_workflow_refs.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dominus-sdk-python"
7
- version = "9.0.8"
7
+ version = "9.0.10"
8
8
  description = "Python SDK for the Dominus gateway-first platform"
9
9
  readme = "README.md"
10
10
  license = "LicenseRef-Proprietary"
@@ -105,3 +105,10 @@ async def test_nav_item_helpers_preserve_positional_icon_compatibility():
105
105
  assert client.calls[1]["body"]["title"] == "Procedure Settings"
106
106
  assert client.calls[1]["body"]["icon"] == "ClipboardList"
107
107
  assert "path" not in client.calls[1]["body"]
108
+
109
+
110
+ def test_auth_namespace_does_not_expose_retired_guardian_password_routes():
111
+ namespace = AuthNamespace(FakeClient())
112
+
113
+ assert not hasattr(namespace, "update_password")
114
+ assert not hasattr(namespace, "verify_password")
@@ -50,6 +50,8 @@ async def test_logs_tail_forwards_business_filters():
50
50
  until="2026-04-11T09:33:00Z",
51
51
  service="dominus-authority",
52
52
  level="error",
53
+ event_name="fast_complete",
54
+ route_path="/api/envoy/complete/fast",
53
55
  company="carebridge-summit",
54
56
  subject="PCM47474562",
55
57
  run_id="run-123",
@@ -63,7 +65,8 @@ async def test_logs_tail_forwards_business_filters():
63
65
  assert client.calls[0]["endpoint"] == (
64
66
  "/api/logs/tail?"
65
67
  "limit=25&trace_id=trace-123&request_id=req-123&since=2026-04-11T08%3A33%3A00Z"
66
- "&until=2026-04-11T09%3A33%3A00Z&service=dominus-authority&level=error&company=carebridge-summit"
68
+ "&until=2026-04-11T09%3A33%3A00Z&service=dominus-authority&level=error&event_name=fast_complete"
69
+ "&route_path=%2Fapi%2Fenvoy%2Fcomplete%2Ffast&company=carebridge-summit"
67
70
  "&subject=PCM47474562&run_id=run-123&deploy_id=deploy-123"
68
71
  "&installation_id=inst-123&artifact_ref="
69
72
  "ar%3A%2F%2Fcarebridge%2Fsummit%2Fproduction%2Fcompany%2Freport_snapshot_current"
@@ -0,0 +1,38 @@
1
+ """Executable contract for Non-Negotiable #7: the two version authorities agree.
2
+
3
+ `pyproject.toml` is what the production publish workflow stamps on the artifact
4
+ (and what PyPI is queried with); `dominus/__init__.py` is what the installed
5
+ package reports at runtime. When they drift, a production push publishes a
6
+ package that misreports its own version. The drift has recurred twice
7
+ (9.0.7/9.0.6, then 9.0.9/9.0.8), so it is asserted mechanically here.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import re
13
+ from pathlib import Path
14
+
15
+ import dominus
16
+
17
+ ROOT = Path(__file__).resolve().parents[1]
18
+ PYPROJECT = ROOT / "pyproject.toml"
19
+
20
+ _VERSION_LINE = re.compile(r'^version\s*=\s*"([^"]+)"', re.MULTILINE)
21
+
22
+
23
+ def _pyproject_version() -> str:
24
+ raw = PYPROJECT.read_bytes()
25
+ try:
26
+ import tomllib
27
+ except ModuleNotFoundError: # Python 3.9/3.10
28
+ match = _VERSION_LINE.search(raw.decode("utf-8"))
29
+ assert match is not None, "pyproject.toml declares no [project] version"
30
+ return match.group(1)
31
+ return tomllib.loads(raw.decode("utf-8"))["project"]["version"]
32
+
33
+
34
+ def test_pyproject_and_package_version_match() -> None:
35
+ assert _pyproject_version() == dominus.__version__, (
36
+ "pyproject.toml and dominus/__init__.py versions have drifted: "
37
+ f"pyproject={_pyproject_version()!r}, dominus.__version__={dominus.__version__!r}"
38
+ )