codemie-sdk-python 0.1.513__tar.gz → 0.1.515__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.513 → codemie_sdk_python-0.1.515}/PKG-INFO +1 -1
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/pyproject.toml +1 -1
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/client/client.py +4 -0
- codemie_sdk_python-0.1.515/src/codemie_sdk/models/activity_event.py +45 -0
- codemie_sdk_python-0.1.515/src/codemie_sdk/services/activity_event.py +103 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/user.py +16 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/README.md +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/__init__.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/auth/__init__.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/auth/credentials.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/client/__init__.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/exceptions.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/__init__.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/admin.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/analytics.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/assistant.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/categories.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/common.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/conversation.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/datasource.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/errors.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/file_operation.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/guardrails.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/integration.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/llm.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/mermaid.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/project.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/skill.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/task.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/user.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_state.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/admin.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/analytics.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/assistant.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/categories.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/conversation.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/datasource.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/files.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/integration.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/llm.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/mermaid.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/project.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/skill.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/task.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/webhook.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow_execution.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/utils/__init__.py +0 -0
- {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/utils/http.py +0 -0
|
@@ -24,6 +24,7 @@ from ..services.vendor_workflow import VendorWorkflowService
|
|
|
24
24
|
from ..services.vendor_knowledgebase import VendorKnowledgeBaseService
|
|
25
25
|
from ..services.vendor_guardrail import VendorGuardrailService
|
|
26
26
|
from ..services.vendor_runtime import VendorRuntimeService
|
|
27
|
+
from ..services.activity_event import ActivityEventService
|
|
27
28
|
from ..services.codemie_guardrails import CodemieGuardrailService
|
|
28
29
|
|
|
29
30
|
|
|
@@ -157,6 +158,9 @@ class CodeMieClient:
|
|
|
157
158
|
self.codemie_guardrails = CodemieGuardrailService(
|
|
158
159
|
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
159
160
|
)
|
|
161
|
+
self.activity_events = ActivityEventService(
|
|
162
|
+
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
163
|
+
)
|
|
160
164
|
|
|
161
165
|
@property
|
|
162
166
|
def token(self) -> str:
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""Models for activity event data structures."""
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing import Any, Dict, List, Optional
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, ConfigDict
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ActivityEventListItem(BaseModel):
|
|
10
|
+
model_config = ConfigDict(extra="ignore")
|
|
11
|
+
|
|
12
|
+
id: str
|
|
13
|
+
domain: str
|
|
14
|
+
event_type: str
|
|
15
|
+
entity_type: Optional[str] = None
|
|
16
|
+
entity_id: Optional[str] = None
|
|
17
|
+
actor_id: Optional[str] = None
|
|
18
|
+
actor_email: Optional[str] = None
|
|
19
|
+
actor_name: Optional[str] = None
|
|
20
|
+
attributes: Optional[Dict[str, Any]] = None
|
|
21
|
+
created_at: datetime
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ActivityEventPagination(BaseModel):
|
|
25
|
+
model_config = ConfigDict(extra="ignore")
|
|
26
|
+
|
|
27
|
+
total: int
|
|
28
|
+
page: int = 0
|
|
29
|
+
per_page: int
|
|
30
|
+
pages: int = 1
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class PaginatedActivityEventResponse(BaseModel):
|
|
34
|
+
model_config = ConfigDict(extra="ignore")
|
|
35
|
+
|
|
36
|
+
data: List[ActivityEventListItem]
|
|
37
|
+
pagination: ActivityEventPagination
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ActivityEventFilterOptions(BaseModel):
|
|
41
|
+
model_config = ConfigDict(extra="ignore")
|
|
42
|
+
|
|
43
|
+
domains: List[str]
|
|
44
|
+
event_types: List[str]
|
|
45
|
+
entity_types: List[str]
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"""Activity event service implementation (maintainer only)."""
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from ..models.activity_event import (
|
|
6
|
+
ActivityEventFilterOptions,
|
|
7
|
+
PaginatedActivityEventResponse,
|
|
8
|
+
)
|
|
9
|
+
from ..utils import ApiRequestHandler, TokenSource
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ActivityEventService:
|
|
13
|
+
"""Service for querying the activity events audit log.
|
|
14
|
+
|
|
15
|
+
Requires maintainer privileges — all methods raise HTTP 403 for
|
|
16
|
+
non-maintainer callers.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self, api_domain: str, token: TokenSource, verify_ssl: bool = True):
|
|
20
|
+
"""Initialize the activity event service.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
api_domain: Base URL for the CodeMie API
|
|
24
|
+
token: Authentication token source
|
|
25
|
+
verify_ssl: Whether to verify SSL certificates
|
|
26
|
+
"""
|
|
27
|
+
self._api = ApiRequestHandler(api_domain, token, verify_ssl)
|
|
28
|
+
|
|
29
|
+
def list_events(
|
|
30
|
+
self,
|
|
31
|
+
*,
|
|
32
|
+
actor_id: Optional[str] = None,
|
|
33
|
+
domain: Optional[List[str]] = None,
|
|
34
|
+
event_type: Optional[List[str]] = None,
|
|
35
|
+
entity_type: Optional[List[str]] = None,
|
|
36
|
+
entity_id: Optional[str] = None,
|
|
37
|
+
from_dt: Optional[str] = None,
|
|
38
|
+
to_dt: Optional[str] = None,
|
|
39
|
+
sort_dir: Optional[str] = None,
|
|
40
|
+
limit: Optional[int] = None,
|
|
41
|
+
offset: Optional[int] = None,
|
|
42
|
+
) -> PaginatedActivityEventResponse:
|
|
43
|
+
"""List activity events with optional filters.
|
|
44
|
+
|
|
45
|
+
Multi-value parameters (domain, event_type, entity_type) are serialised
|
|
46
|
+
as repeated query params: e.g. ?domain=user_management&domain=budget_management.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
actor_id: Filter by actor user ID
|
|
50
|
+
domain: Filter by domain(s)
|
|
51
|
+
event_type: Filter by event type(s)
|
|
52
|
+
entity_type: Filter by entity type(s)
|
|
53
|
+
entity_id: Filter by entity ID
|
|
54
|
+
from_dt: ISO 8601 lower bound datetime (maps to 'from' query param)
|
|
55
|
+
to_dt: ISO 8601 upper bound datetime (maps to 'to' query param)
|
|
56
|
+
sort_dir: 'asc' or 'desc' (default 'desc')
|
|
57
|
+
limit: Results per page, 1-1000 (default 50)
|
|
58
|
+
offset: Pagination offset (default 0)
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
PaginatedActivityEventResponse
|
|
62
|
+
"""
|
|
63
|
+
params: dict = {}
|
|
64
|
+
if actor_id is not None:
|
|
65
|
+
params["actor_id"] = actor_id
|
|
66
|
+
if domain is not None:
|
|
67
|
+
params["domain"] = domain
|
|
68
|
+
if event_type is not None:
|
|
69
|
+
params["event_type"] = event_type
|
|
70
|
+
if entity_type is not None:
|
|
71
|
+
params["entity_type"] = entity_type
|
|
72
|
+
if entity_id is not None:
|
|
73
|
+
params["entity_id"] = entity_id
|
|
74
|
+
if from_dt is not None:
|
|
75
|
+
params["from"] = from_dt
|
|
76
|
+
if to_dt is not None:
|
|
77
|
+
params["to"] = to_dt
|
|
78
|
+
if sort_dir is not None:
|
|
79
|
+
params["sort_dir"] = sort_dir
|
|
80
|
+
if limit is not None:
|
|
81
|
+
params["limit"] = limit
|
|
82
|
+
if offset is not None:
|
|
83
|
+
params["offset"] = offset
|
|
84
|
+
|
|
85
|
+
return self._api.get(
|
|
86
|
+
"/v1/admin/activity-events",
|
|
87
|
+
PaginatedActivityEventResponse,
|
|
88
|
+
params=params if params else None,
|
|
89
|
+
wrap_response=False,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
def get_filter_options(self) -> ActivityEventFilterOptions:
|
|
93
|
+
"""Get distinct filter options available for activity events.
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
ActivityEventFilterOptions with distinct domains, event_types,
|
|
97
|
+
and entity_types present in the audit log.
|
|
98
|
+
"""
|
|
99
|
+
return self._api.get(
|
|
100
|
+
"/v1/admin/activity-events/filter-options",
|
|
101
|
+
ActivityEventFilterOptions,
|
|
102
|
+
wrap_response=False,
|
|
103
|
+
)
|
|
@@ -170,3 +170,19 @@ class UserService:
|
|
|
170
170
|
dict,
|
|
171
171
|
wrap_response=False,
|
|
172
172
|
)
|
|
173
|
+
|
|
174
|
+
def reactivate_user(self, user_id: str) -> CodeMieUserDetail:
|
|
175
|
+
"""Reactivate a previously deactivated user (SuperAdmin only).
|
|
176
|
+
|
|
177
|
+
Args:
|
|
178
|
+
user_id: The user's unique identifier
|
|
179
|
+
|
|
180
|
+
Returns:
|
|
181
|
+
Updated user details with is_active=True
|
|
182
|
+
"""
|
|
183
|
+
return self._api.put(
|
|
184
|
+
f"/v1/admin/users/{user_id}",
|
|
185
|
+
CodeMieUserDetail,
|
|
186
|
+
json_data={"is_active": True},
|
|
187
|
+
wrap_response=False,
|
|
188
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/auth/credentials.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/analytics.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/conversation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/datasource.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/file_operation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/guardrails.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/integration.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.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_guardrail.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_runtime.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_workflow.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/analytics.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/conversation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/datasource.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/mermaid.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/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
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/webhook.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|