codemie-sdk-python 0.1.589__tar.gz → 0.1.591__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.
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/PKG-INFO +1 -1
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/pyproject.toml +1 -1
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/__init__.py +2 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/client/client.py +4 -0
- codemie_sdk_python-0.1.591/src/codemie_sdk/services/customer_config_service.py +105 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/README.md +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/auth/__init__.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/auth/credentials.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/client/__init__.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/exceptions.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/__init__.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/activity_event.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/admin.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/analytics.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/assistant.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/categories.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/common.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/conversation.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/datasource.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/errors.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/file_operation.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/guardrails.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/integration.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/llm.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/mcp_config.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/mermaid.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/project.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/skill.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/task.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/user.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow_state.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow_transition.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/activity_event.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/admin.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/analytics.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/assistant.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/categories.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/conversation.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/datasource.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/dynamic_config.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/files.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/integration.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/llm.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/mcp_configs.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/mermaid.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/project.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/skill.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/task.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/user.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/webhook.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/workflow.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/workflow_execution.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/utils/__init__.py +0 -0
- {codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/utils/http.py +0 -0
|
@@ -94,6 +94,7 @@ from .models.analytics import (
|
|
|
94
94
|
AnalyticsQueryParams,
|
|
95
95
|
PaginatedAnalyticsQueryParams,
|
|
96
96
|
)
|
|
97
|
+
from .services.customer_config_service import CustomerConfigService
|
|
97
98
|
from .services.vendor_assistant import VendorAssistantService
|
|
98
99
|
from .services.vendor_workflow import VendorWorkflowService
|
|
99
100
|
from .services.vendor_knowledgebase import VendorKnowledgeBaseService
|
|
@@ -252,6 +253,7 @@ __all__ = [
|
|
|
252
253
|
"AnalyticsQueryParams",
|
|
253
254
|
"PaginatedAnalyticsQueryParams",
|
|
254
255
|
"AnalyticsService",
|
|
256
|
+
"CustomerConfigService",
|
|
255
257
|
"MermaidDiagramRequest",
|
|
256
258
|
"MermaidDiagramResponse",
|
|
257
259
|
"ContentType",
|
|
@@ -28,6 +28,7 @@ from ..services.activity_event import ActivityEventService
|
|
|
28
28
|
from ..services.codemie_guardrails import CodemieGuardrailService
|
|
29
29
|
from ..services.dynamic_config import DynamicConfigService
|
|
30
30
|
from ..services.mcp_configs import MCPConfigsService
|
|
31
|
+
from ..services.customer_config_service import CustomerConfigService
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
class CodeMieClient:
|
|
@@ -169,6 +170,9 @@ class CodeMieClient:
|
|
|
169
170
|
self.dynamic_config = DynamicConfigService(
|
|
170
171
|
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
171
172
|
)
|
|
173
|
+
self.customer_config = CustomerConfigService(
|
|
174
|
+
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
175
|
+
)
|
|
172
176
|
|
|
173
177
|
@property
|
|
174
178
|
def token(self) -> str:
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Customer config service implementation.
|
|
2
|
+
|
|
3
|
+
Wraps four endpoints introduced in EPMCDME-13983:
|
|
4
|
+
GET /v1/config/declarations — list dynamic-config declarations (admin/maintainer)
|
|
5
|
+
PUT /v1/config/declarations/{id} — save override settings for a component
|
|
6
|
+
DELETE /v1/config/declarations/{id} — reset component to YAML default (idempotent)
|
|
7
|
+
GET /v1/config — merged component values (anonymous)
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from ..utils.http import ApiRequestHandler, TokenSource
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CustomerConfigService:
|
|
14
|
+
"""Service for managing customer configuration overrides via the admin endpoint."""
|
|
15
|
+
|
|
16
|
+
def __init__(self, api_domain: str, token: TokenSource, verify_ssl: bool = True):
|
|
17
|
+
"""Initialize the customer config service.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
api_domain: Base URL for the CodeMie API
|
|
21
|
+
token: Authentication token source
|
|
22
|
+
verify_ssl: Whether to verify SSL certificates. Default: True
|
|
23
|
+
"""
|
|
24
|
+
self._api = ApiRequestHandler(api_domain, token, verify_ssl)
|
|
25
|
+
|
|
26
|
+
def list_declarations(self) -> list[dict]:
|
|
27
|
+
"""GET /v1/config/declarations — list all registered setting declarations.
|
|
28
|
+
|
|
29
|
+
Requires admin or maintainer role. Read path bypasses the TTL cache so
|
|
30
|
+
the response always reflects the current DB state.
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
List of declaration dicts, each containing:
|
|
34
|
+
``component_id``, ``label``, ``description``, ``overridden``,
|
|
35
|
+
``value`` (current merged value), ``fields`` (field metadata).
|
|
36
|
+
|
|
37
|
+
Raises:
|
|
38
|
+
requests.HTTPError: On non-2xx response (e.g. 403 for non-admin).
|
|
39
|
+
"""
|
|
40
|
+
return self._api.get(
|
|
41
|
+
"/v1/config/declarations",
|
|
42
|
+
list[dict],
|
|
43
|
+
wrap_response=False,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
def get_config(self) -> list[dict]:
|
|
47
|
+
"""GET /v1/config — merged component values (anonymous access).
|
|
48
|
+
|
|
49
|
+
Returns the merged list of all active components with their current
|
|
50
|
+
settings (YAML defaults merged with any dynamic overrides). The
|
|
51
|
+
writing pod invalidates its own cache immediately after a PUT or
|
|
52
|
+
DELETE, so a same-pod GET reflects the change right away (AC-20).
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
List of component dicts, each with ``id`` and ``settings``.
|
|
56
|
+
"""
|
|
57
|
+
return self._api.get(
|
|
58
|
+
"/v1/config",
|
|
59
|
+
list[dict],
|
|
60
|
+
wrap_response=False,
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
def save_setting(self, component_id: str, settings: dict) -> dict:
|
|
64
|
+
"""PUT /v1/config/declarations/{component_id} — persist a settings override.
|
|
65
|
+
|
|
66
|
+
Validates and sanitises the payload on the server side; rejects block-level
|
|
67
|
+
Markdown and ``javascript:`` URLs. Audits the change to the activity log.
|
|
68
|
+
Invalidates the writing-pod TTL cache immediately.
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
component_id: Component identifier, e.g. ``"chatDisclaimer"``.
|
|
72
|
+
settings: Key/value map of field names to new values,
|
|
73
|
+
e.g. ``{"enabled": True, "text": "Notice [link](https://...)"}``.
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
Response dict with ``component_id`` and ``settings`` as persisted.
|
|
77
|
+
|
|
78
|
+
Raises:
|
|
79
|
+
requests.HTTPError: 400 on validation failure, 403 for non-admin callers.
|
|
80
|
+
"""
|
|
81
|
+
return self._api.put(
|
|
82
|
+
f"/v1/config/declarations/{component_id}",
|
|
83
|
+
dict,
|
|
84
|
+
json_data={"settings": settings},
|
|
85
|
+
wrap_response=False,
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
def reset_setting(self, component_id: str) -> None:
|
|
89
|
+
"""DELETE /v1/config/declarations/{component_id} — reset to YAML default.
|
|
90
|
+
|
|
91
|
+
Removes the dynamic-config override row; the component reverts to its
|
|
92
|
+
YAML default on the next config read. Idempotent — 204 even when no
|
|
93
|
+
override row exists. Audits the reset to the activity log.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
component_id: Component identifier, e.g. ``"chatDisclaimer"``.
|
|
97
|
+
|
|
98
|
+
Raises:
|
|
99
|
+
requests.HTTPError: On non-2xx / non-204 response.
|
|
100
|
+
"""
|
|
101
|
+
self._api.delete(
|
|
102
|
+
f"/v1/config/declarations/{component_id}",
|
|
103
|
+
dict,
|
|
104
|
+
wrap_response=False,
|
|
105
|
+
)
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/auth/credentials.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/__init__.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/activity_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/analytics.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/conversation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/datasource.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/file_operation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/guardrails.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/mcp_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_guardrail.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_runtime.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/vendor_workflow.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/models/workflow_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/activity_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/analytics.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/conversation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/datasource.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/dynamic_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/mcp_configs.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/mermaid.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/project.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/vendor_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/webhook.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.589 → codemie_sdk_python-0.1.591}/src/codemie_sdk/services/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|