dominus-sdk-python 3.0.2__tar.gz → 3.0.4__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 (58) hide show
  1. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/PKG-INFO +5 -2
  2. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/README.md +4 -1
  3. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/__init__.py +4 -0
  4. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/config/endpoints.py +16 -16
  5. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/__init__.py +4 -0
  6. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/authority.py +267 -62
  7. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/db.py +4 -4
  8. dominus_sdk_python-3.0.4/dominus/namespaces/deployer.py +39 -0
  9. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/secrets.py +1 -1
  10. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/sync.py +6 -6
  11. dominus_sdk_python-3.0.4/dominus/namespaces/warden.py +39 -0
  12. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/workflow.py +10 -10
  13. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/start.py +131 -0
  14. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus_sdk_python.egg-info/PKG-INFO +5 -2
  15. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus_sdk_python.egg-info/SOURCES.txt +3 -0
  16. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/pyproject.toml +1 -1
  17. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_authority_public_vocabulary.py +83 -12
  18. dominus_sdk_python-3.0.4/tests/test_control_plane_namespaces.py +49 -0
  19. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_provisioning_parity.py +2 -2
  20. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_public_exports.py +8 -1
  21. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_workflow_lifecycle.py +2 -2
  22. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/config/__init__.py +0 -0
  23. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/errors.py +0 -0
  24. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/__init__.py +0 -0
  25. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/auth.py +0 -0
  26. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/cache.py +0 -0
  27. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/console_capture.py +0 -0
  28. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/core.py +0 -0
  29. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/crypto.py +0 -0
  30. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/sse.py +0 -0
  31. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/helpers/trace.py +0 -0
  32. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/admin.py +0 -0
  33. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/ai.py +0 -0
  34. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/artifacts.py +0 -0
  35. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/auth.py +0 -0
  36. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/courier.py +0 -0
  37. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/ddl.py +0 -0
  38. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/fastapi.py +0 -0
  39. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/files.py +0 -0
  40. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/health.py +0 -0
  41. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/jobs.py +0 -0
  42. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/logs.py +0 -0
  43. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/portal.py +0 -0
  44. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/processor.py +0 -0
  45. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/redis.py +0 -0
  46. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/namespaces/secure.py +0 -0
  47. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus/services/__init__.py +0 -0
  48. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus_sdk_python.egg-info/dependency_links.txt +0 -0
  49. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus_sdk_python.egg-info/requires.txt +0 -0
  50. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/dominus_sdk_python.egg-info/top_level.txt +0 -0
  51. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/setup.cfg +0 -0
  52. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_auth.py +0 -0
  53. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_errors.py +0 -0
  54. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_flat_commands.py +0 -0
  55. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_health.py +0 -0
  56. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_logs.py +0 -0
  57. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/tests/test_transport_compat.py +0 -0
  58. {dominus_sdk_python-3.0.2 → dominus_sdk_python-3.0.4}/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: 3.0.2
3
+ Version: 3.0.4
4
4
  Summary: Python SDK for the Dominus gateway-first platform
5
5
  Author-email: CareBridge Systems <dev@carebridge.io>
6
6
  License: Proprietary
@@ -41,7 +41,7 @@ Async Python SDK for the Dominus gateway-first service plane.
41
41
  - Namespace-first API with a small root shortcut surface
42
42
  - Gateway-scoped client mode for MCP and other user-JWT sessions
43
43
  - Local helpers for JWT verification, trace propagation, retries, and console capture
44
- - Current package version: `3.0.2`
44
+ - Current package version: `3.0.4`
45
45
 
46
46
  ## Install
47
47
 
@@ -95,6 +95,7 @@ JWT and selected scope headers directly through Gateway.
95
95
 
96
96
  ## Transport Model
97
97
 
98
+ - Default HTTP targets are the production gateway (`https://gateway.getdominus.app`); they do not change based on your app’s git branch or PyPI package variant. Set `DOMINUS_GATEWAY_URL` (or `DOMINUS_BASE_URL` / `DOMINUS_JWT_URL`) only for local or custom routing.
98
99
  - `DOMINUS_TOKEN` is exchanged for a JWT through `POST /jwt/mint`
99
100
  - Service JWTs are cached for 14 minutes with a 60-second refresh window
100
101
  - Auth-required worker routes still send base64-encoded JSON bodies as `text/plain`
@@ -125,6 +126,8 @@ JWT and selected scope headers directly through Gateway.
125
126
  | `processor` | Processor | Batch and single-job processing |
126
127
  | `sync` | Sync Worker | KV synchronization |
127
128
  | `authority` | Dominus Authority | Runs, companies, deploys, managed clients, context |
129
+ | `deployer` | Deployer | Thin operator control-plane request surface |
130
+ | `warden` | Warden | Thin operator control-plane request surface |
128
131
  | `fastapi` | Local decorators | `@jwt`, `@psk`, `@scopes(...)` |
129
132
 
130
133
  ## Root Shortcuts
@@ -8,7 +8,7 @@ Async Python SDK for the Dominus gateway-first service plane.
8
8
  - Namespace-first API with a small root shortcut surface
9
9
  - Gateway-scoped client mode for MCP and other user-JWT sessions
10
10
  - Local helpers for JWT verification, trace propagation, retries, and console capture
11
- - Current package version: `3.0.2`
11
+ - Current package version: `3.0.4`
12
12
 
13
13
  ## Install
14
14
 
@@ -62,6 +62,7 @@ JWT and selected scope headers directly through Gateway.
62
62
 
63
63
  ## Transport Model
64
64
 
65
+ - Default HTTP targets are the production gateway (`https://gateway.getdominus.app`); they do not change based on your app’s git branch or PyPI package variant. Set `DOMINUS_GATEWAY_URL` (or `DOMINUS_BASE_URL` / `DOMINUS_JWT_URL`) only for local or custom routing.
65
66
  - `DOMINUS_TOKEN` is exchanged for a JWT through `POST /jwt/mint`
66
67
  - Service JWTs are cached for 14 minutes with a 60-second refresh window
67
68
  - Auth-required worker routes still send base64-encoded JSON bodies as `text/plain`
@@ -92,6 +93,8 @@ JWT and selected scope headers directly through Gateway.
92
93
  | `processor` | Processor | Batch and single-job processing |
93
94
  | `sync` | Sync Worker | KV synchronization |
94
95
  | `authority` | Dominus Authority | Runs, companies, deploys, managed clients, context |
96
+ | `deployer` | Deployer | Thin operator control-plane request surface |
97
+ | `warden` | Warden | Thin operator control-plane request surface |
95
98
  | `fastapi` | Local decorators | `@jwt`, `@psk`, `@scopes(...)` |
96
99
 
97
100
  ## Root Shortcuts
@@ -111,6 +111,8 @@ from .namespaces.jobs import JobsNamespace
111
111
  from .namespaces.processor import ProcessorNamespace
112
112
  from .namespaces.sync import SyncNamespace
113
113
  from .namespaces.authority import AuthorityNamespace
114
+ from .namespaces.deployer import DeployerNamespace
115
+ from .namespaces.warden import WardenNamespace
114
116
 
115
117
  # Export AI namespace for agent-runtime operations
116
118
  from .namespaces.ai import (
@@ -211,6 +213,8 @@ __all__ = [
211
213
  "ProcessorNamespace",
212
214
  "SyncNamespace",
213
215
  "AuthorityNamespace",
216
+ "DeployerNamespace",
217
+ "WardenNamespace",
214
218
  # AI namespace for agent-runtime operations
215
219
  "AiNamespace",
216
220
  "RagSubNamespace",
@@ -2,13 +2,17 @@
2
2
  Dominus SDK Endpoints
3
3
 
4
4
  Gateway URL for service routing and health checks.
5
- JWT URL for authentication (JWT minting).
5
+ JWT URL for authentication (JWT minting) — defaults to the same host as the gateway.
6
6
  Logs URL for log ingestion.
7
7
  Base URL for SDK requests (defaults to gateway).
8
8
 
9
+ Defaults always target the production gateway. They do not depend on the caller’s
10
+ git branch, PyPI package variant, or deployment environment. Override only with
11
+ DOMINUS_* env vars for local or advanced routing.
12
+
9
13
  Configuration:
10
14
  Set DOMINUS_GATEWAY_URL to override the gateway URL.
11
- Set DOMINUS_JWT_URL to override the JWT minting URL.
15
+ Set DOMINUS_JWT_URL to override the JWT minting URL (defaults to gateway URL).
12
16
  Set DOMINUS_LOGS_URL to override the logs URL.
13
17
  Set DOMINUS_BASE_URL to override the SDK request base URL.
14
18
  Example: export DOMINUS_BASE_URL=http://localhost:5000
@@ -18,23 +22,21 @@ Usage:
18
22
  """
19
23
  import os
20
24
 
21
- # Default URLs - Cloudflare Workers
25
+ # Production gateway (Cloudflare Worker). Canonical default for all SDK HTTP traffic.
22
26
  _DEFAULT_GATEWAY_URL = "https://gateway.getdominus.app"
23
- _DEFAULT_JWT_URL = "https://jwt.getdominus.app"
24
27
  _DEFAULT_LOGS_URL = "https://logs.getdominus.app"
25
- _DEFAULT_BASE_URL = _DEFAULT_GATEWAY_URL
26
28
 
27
29
  # Gateway URL for service routing (can be overridden via DOMINUS_GATEWAY_URL)
28
30
  GATEWAY_URL = os.environ.get("DOMINUS_GATEWAY_URL", _DEFAULT_GATEWAY_URL)
29
31
 
30
- # JWT URL for authentication (can be overridden via DOMINUS_JWT_URL)
31
- JWT_URL = os.environ.get("DOMINUS_JWT_URL", _DEFAULT_JWT_URL)
32
+ # JWT mint/JWKS: same host as gateway by default (matches Node SDK).
33
+ JWT_URL = os.environ.get("DOMINUS_JWT_URL", GATEWAY_URL)
32
34
 
33
35
  # Logs URL for log ingestion (can be overridden via DOMINUS_LOGS_URL)
34
36
  LOGS_URL = os.environ.get("DOMINUS_LOGS_URL", _DEFAULT_LOGS_URL)
35
37
 
36
- # Base URL for SDK requests (can be overridden via DOMINUS_BASE_URL environment variable)
37
- BASE_URL = os.environ.get("DOMINUS_BASE_URL", _DEFAULT_BASE_URL)
38
+ # Base URL for non-gateway SDK paths defaults to the same resolved gateway URL.
39
+ BASE_URL = os.environ.get("DOMINUS_BASE_URL", GATEWAY_URL)
38
40
 
39
41
  # Legacy aliases retained as gateway-first aliases.
40
42
  SOVEREIGN_URL = BASE_URL
@@ -77,12 +79,11 @@ def get_gateway_url() -> str:
77
79
 
78
80
  def get_jwt_url() -> str:
79
81
  """
80
- Get the JWT worker URL for authentication (JWT minting/validation).
82
+ Get the base URL for JWT mint/JWKS (defaults to the same host as the gateway).
81
83
 
82
- Returns the value of DOMINUS_JWT_URL environment variable if set,
83
- otherwise returns the default Cloudflare Worker URL.
84
+ Returns DOMINUS_JWT_URL if set, otherwise the same resolution as get_gateway_url().
84
85
  """
85
- return os.environ.get("DOMINUS_JWT_URL", _DEFAULT_JWT_URL)
86
+ return os.environ.get("DOMINUS_JWT_URL", get_gateway_url())
86
87
 
87
88
 
88
89
  def get_logs_url() -> str:
@@ -99,10 +100,9 @@ def get_base_url() -> str:
99
100
  """
100
101
  Get the SDK request base URL.
101
102
 
102
- Returns the value of DOMINUS_BASE_URL environment variable if set,
103
- otherwise returns the default gateway URL.
103
+ Returns DOMINUS_BASE_URL if set, otherwise the same resolution as get_gateway_url().
104
104
  """
105
- return os.environ.get("DOMINUS_BASE_URL", _DEFAULT_BASE_URL)
105
+ return os.environ.get("DOMINUS_BASE_URL", get_gateway_url())
106
106
 
107
107
 
108
108
  # DEPRECATED - use get_base_url()
@@ -15,6 +15,8 @@ from .jobs import JobsNamespace
15
15
  from .processor import ProcessorNamespace
16
16
  from .sync import SyncNamespace
17
17
  from .authority import AuthorityNamespace
18
+ from .deployer import DeployerNamespace
19
+ from .warden import WardenNamespace
18
20
  from .ai import (
19
21
  AiNamespace,
20
22
  RagSubNamespace,
@@ -40,6 +42,8 @@ __all__ = [
40
42
  "ProcessorNamespace",
41
43
  "SyncNamespace",
42
44
  "AuthorityNamespace",
45
+ "DeployerNamespace",
46
+ "WardenNamespace",
43
47
  "AiNamespace",
44
48
  "RagSubNamespace",
45
49
  "ArtifactsSubNamespace",