dominus-sdk-python 4.0.4__tar.gz → 4.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.
Files changed (58) hide show
  1. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/PKG-INFO +11 -2
  2. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/README.md +10 -1
  3. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/__init__.py +1 -1
  4. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/logs.py +51 -5
  5. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus_sdk_python.egg-info/PKG-INFO +11 -2
  6. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/pyproject.toml +1 -1
  7. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_logs.py +32 -0
  8. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/config/__init__.py +0 -0
  9. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/config/endpoints.py +0 -0
  10. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/errors.py +0 -0
  11. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/__init__.py +0 -0
  12. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/auth.py +0 -0
  13. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/cache.py +0 -0
  14. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/console_capture.py +0 -0
  15. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/core.py +0 -0
  16. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/crypto.py +0 -0
  17. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/sse.py +0 -0
  18. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/helpers/trace.py +0 -0
  19. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/__init__.py +0 -0
  20. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/admin.py +0 -0
  21. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/ai.py +0 -0
  22. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/artifacts.py +0 -0
  23. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/auth.py +0 -0
  24. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/authority.py +0 -0
  25. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/courier.py +0 -0
  26. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/db.py +0 -0
  27. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/ddl.py +0 -0
  28. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/deployer.py +0 -0
  29. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/fastapi.py +0 -0
  30. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/files.py +0 -0
  31. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/health.py +0 -0
  32. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/jobs.py +0 -0
  33. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/portal.py +0 -0
  34. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/processor.py +0 -0
  35. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/redis.py +0 -0
  36. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/secrets.py +0 -0
  37. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/secure.py +0 -0
  38. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/sync.py +0 -0
  39. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/warden.py +0 -0
  40. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/namespaces/workflow.py +0 -0
  41. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/services/__init__.py +0 -0
  42. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus/start.py +0 -0
  43. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus_sdk_python.egg-info/SOURCES.txt +0 -0
  44. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus_sdk_python.egg-info/dependency_links.txt +0 -0
  45. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus_sdk_python.egg-info/requires.txt +0 -0
  46. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/dominus_sdk_python.egg-info/top_level.txt +0 -0
  47. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/setup.cfg +0 -0
  48. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_auth.py +0 -0
  49. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_authority_public_vocabulary.py +0 -0
  50. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_control_plane_namespaces.py +0 -0
  51. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_errors.py +0 -0
  52. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_flat_commands.py +0 -0
  53. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_health.py +0 -0
  54. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_provisioning_parity.py +0 -0
  55. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_public_exports.py +0 -0
  56. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_transport_compat.py +0 -0
  57. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.0.5}/tests/test_workflow_lifecycle.py +0 -0
  58. {dominus_sdk_python-4.0.4 → dominus_sdk_python-4.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: 4.0.4
3
+ Version: 4.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: 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.4`
45
+ - Current package version: `4.0.5`
46
46
 
47
47
  ## Install
48
48
 
@@ -98,6 +98,15 @@ prune = await dominus.logs.prune_archive_retention(
98
98
  buffer_proof = await dominus.logs.dry_run_archive_buffer_maintenance(
99
99
  sample_limit=100,
100
100
  )
101
+ buffer_cleanup = await dominus.logs.run_archive_buffer_maintenance(
102
+ dry_run=False,
103
+ confirm="DELETE_ARCHIVE_BUFFER_RESIDUE",
104
+ salvage_missing_archive=True,
105
+ sample_limit=500,
106
+ max_archive_buckets=24,
107
+ batch_runs=5,
108
+ max_runtime_ms=8000,
109
+ )
101
110
  ```
102
111
 
103
112
  ## Session-Scoped Clients
@@ -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.4`
12
+ - Current package version: `4.0.5`
13
13
 
14
14
  ## Install
15
15
 
@@ -65,6 +65,15 @@ prune = await dominus.logs.prune_archive_retention(
65
65
  buffer_proof = await dominus.logs.dry_run_archive_buffer_maintenance(
66
66
  sample_limit=100,
67
67
  )
68
+ buffer_cleanup = await dominus.logs.run_archive_buffer_maintenance(
69
+ dry_run=False,
70
+ confirm="DELETE_ARCHIVE_BUFFER_RESIDUE",
71
+ salvage_missing_archive=True,
72
+ sample_limit=500,
73
+ max_archive_buckets=24,
74
+ batch_runs=5,
75
+ max_runtime_ms=8000,
76
+ )
68
77
  ```
69
78
 
70
79
  ## Session-Scoped Clients
@@ -163,7 +163,7 @@ from .errors import (
163
163
  TimeoutError as DominusTimeoutError,
164
164
  )
165
165
 
166
- __version__ = "4.0.4"
166
+ __version__ = "4.0.5"
167
167
  __all__ = [
168
168
  # Main SDK instance
169
169
  "dominus",
@@ -513,24 +513,41 @@ class LogsNamespace:
513
513
  use_gateway=True,
514
514
  )
515
515
 
516
- async def dry_run_archive_buffer_maintenance(
516
+ async def run_archive_buffer_maintenance(
517
517
  self,
518
518
  *,
519
+ dry_run: bool = True,
520
+ confirm: Optional[str] = None,
521
+ all_scopes: Optional[bool] = None,
522
+ max_scopes: Optional[int] = None,
523
+ salvage_missing_archive: Optional[bool] = None,
519
524
  sample_limit: Optional[int] = None,
520
525
  max_archive_buckets: Optional[int] = None,
526
+ batch_runs: Optional[int] = None,
527
+ stop_when_payload_fields_at_or_below: Optional[int] = None,
528
+ max_runtime_ms: Optional[int] = None,
521
529
  target_org_id: Optional[str] = None,
522
530
  target_env: Optional[str] = None,
523
531
  use_shared: Optional[bool] = None,
524
532
  ) -> Dict[str, Any]:
525
- """Dry-run Redis archive buffer/payload residue cleanup proof. ``POST /api/logs/archive-buffer-maintenance``.
533
+ """Dry-run or enforce Redis archive buffer/payload residue cleanup. ``POST /api/logs/archive-buffer-maintenance``.
526
534
 
527
- This is intentionally read-only. The Logs Worker rejects destructive
528
- cleanup attempts on this route.
535
+ Destructive cleanup requires ``dry_run=False`` and
536
+ ``confirm='DELETE_ARCHIVE_BUFFER_RESIDUE'``. ``batch_runs`` and
537
+ ``max_runtime_ms`` are bounded by the Logs Worker so callers can run
538
+ confirmed salvage in safe chunks.
529
539
  """
530
540
  body = {
531
- "dry_run": True,
541
+ "dry_run": dry_run,
542
+ "confirm": confirm,
543
+ "all_scopes": all_scopes,
544
+ "max_scopes": max_scopes,
545
+ "salvage_missing_archive": salvage_missing_archive,
532
546
  "sample_limit": sample_limit,
533
547
  "max_archive_buckets": max_archive_buckets,
548
+ "batch_runs": batch_runs,
549
+ "stop_when_payload_fields_at_or_below": stop_when_payload_fields_at_or_below,
550
+ "max_runtime_ms": max_runtime_ms,
534
551
  "target_org_id": target_org_id,
535
552
  "target_env": target_env,
536
553
  }
@@ -543,6 +560,35 @@ class LogsNamespace:
543
560
  use_gateway=True,
544
561
  )
545
562
 
563
+ async def dry_run_archive_buffer_maintenance(
564
+ self,
565
+ *,
566
+ all_scopes: Optional[bool] = None,
567
+ max_scopes: Optional[int] = None,
568
+ sample_limit: Optional[int] = None,
569
+ max_archive_buckets: Optional[int] = None,
570
+ batch_runs: Optional[int] = None,
571
+ stop_when_payload_fields_at_or_below: Optional[int] = None,
572
+ max_runtime_ms: Optional[int] = None,
573
+ target_org_id: Optional[str] = None,
574
+ target_env: Optional[str] = None,
575
+ use_shared: Optional[bool] = None,
576
+ ) -> Dict[str, Any]:
577
+ """Dry-run Redis archive buffer/payload residue cleanup proof."""
578
+ return await self.run_archive_buffer_maintenance(
579
+ dry_run=True,
580
+ all_scopes=all_scopes,
581
+ max_scopes=max_scopes,
582
+ sample_limit=sample_limit,
583
+ max_archive_buckets=max_archive_buckets,
584
+ batch_runs=batch_runs,
585
+ stop_when_payload_fields_at_or_below=stop_when_payload_fields_at_or_below,
586
+ max_runtime_ms=max_runtime_ms,
587
+ target_org_id=target_org_id,
588
+ target_env=target_env,
589
+ use_shared=use_shared,
590
+ )
591
+
546
592
  async def query(
547
593
  self,
548
594
  minutes: int = 10,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dominus-sdk-python
3
- Version: 4.0.4
3
+ Version: 4.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: 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.4`
45
+ - Current package version: `4.0.5`
46
46
 
47
47
  ## Install
48
48
 
@@ -98,6 +98,15 @@ prune = await dominus.logs.prune_archive_retention(
98
98
  buffer_proof = await dominus.logs.dry_run_archive_buffer_maintenance(
99
99
  sample_limit=100,
100
100
  )
101
+ buffer_cleanup = await dominus.logs.run_archive_buffer_maintenance(
102
+ dry_run=False,
103
+ confirm="DELETE_ARCHIVE_BUFFER_RESIDUE",
104
+ salvage_missing_archive=True,
105
+ sample_limit=500,
106
+ max_archive_buckets=24,
107
+ batch_runs=5,
108
+ max_runtime_ms=8000,
109
+ )
101
110
  ```
102
111
 
103
112
  ## Session-Scoped Clients
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dominus-sdk-python"
7
- version = "4.0.4"
7
+ version = "4.0.5"
8
8
  description = "Python SDK for the Dominus gateway-first platform"
9
9
  readme = "README.md"
10
10
  license = {text = "Proprietary"}
@@ -130,6 +130,21 @@ async def test_logs_archive_maintenance_helpers_forward_canonical_body():
130
130
  target_env="production",
131
131
  use_shared=True,
132
132
  )
133
+ await namespace.run_archive_buffer_maintenance(
134
+ dry_run=False,
135
+ confirm="DELETE_ARCHIVE_BUFFER_RESIDUE",
136
+ all_scopes=True,
137
+ max_scopes=1,
138
+ salvage_missing_archive=True,
139
+ sample_limit=500,
140
+ max_archive_buckets=24,
141
+ batch_runs=5,
142
+ stop_when_payload_fields_at_or_below=145000,
143
+ max_runtime_ms=8000,
144
+ target_org_id="org-123",
145
+ target_env="production",
146
+ use_shared=True,
147
+ )
133
148
 
134
149
  assert client.calls[0]["endpoint"] == "/api/logs/archive-repair"
135
150
  assert client.calls[0]["method"] == "POST"
@@ -164,3 +179,20 @@ async def test_logs_archive_maintenance_helpers_forward_canonical_body():
164
179
  "target_env": "production",
165
180
  "use_shared": True,
166
181
  }
182
+ assert client.calls[4]["endpoint"] == "/api/logs/archive-buffer-maintenance"
183
+ assert client.calls[4]["method"] == "POST"
184
+ assert client.calls[4]["body"] == {
185
+ "dry_run": False,
186
+ "confirm": "DELETE_ARCHIVE_BUFFER_RESIDUE",
187
+ "all_scopes": True,
188
+ "max_scopes": 1,
189
+ "salvage_missing_archive": True,
190
+ "sample_limit": 500,
191
+ "max_archive_buckets": 24,
192
+ "batch_runs": 5,
193
+ "stop_when_payload_fields_at_or_below": 145000,
194
+ "max_runtime_ms": 8000,
195
+ "target_org_id": "org-123",
196
+ "target_env": "production",
197
+ "use_shared": True,
198
+ }