ko-tasks-server 1.0.0__py3-none-any.whl
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.
- ko_tasks_server-1.0.0.dist-info/METADATA +253 -0
- ko_tasks_server-1.0.0.dist-info/RECORD +175 -0
- ko_tasks_server-1.0.0.dist-info/WHEEL +4 -0
- ko_tasks_server-1.0.0.dist-info/entry_points.txt +2 -0
- komus_tasks_server/__init__.py +3 -0
- komus_tasks_server/access_filter.py +321 -0
- komus_tasks_server/api/__init__.py +0 -0
- komus_tasks_server/api/admin_environments.py +543 -0
- komus_tasks_server/api/admin_health.py +48 -0
- komus_tasks_server/api/admin_metrics.py +114 -0
- komus_tasks_server/api/admin_tasks.py +678 -0
- komus_tasks_server/api/agent.py +286 -0
- komus_tasks_server/api/artifacts.py +679 -0
- komus_tasks_server/api/credentials.py +360 -0
- komus_tasks_server/api/files.py +775 -0
- komus_tasks_server/api/long_running.py +95 -0
- komus_tasks_server/api/metadata.py +138 -0
- komus_tasks_server/api/observability.py +334 -0
- komus_tasks_server/api/runs.py +248 -0
- komus_tasks_server/api/schedules.py +723 -0
- komus_tasks_server/api/settings.py +140 -0
- komus_tasks_server/api/threads.py +1192 -0
- komus_tasks_server/api/webhooks.py +511 -0
- komus_tasks_server/app_middleware.py +330 -0
- komus_tasks_server/artefact_backends/__init__.py +16 -0
- komus_tasks_server/artefact_backends/factory.py +117 -0
- komus_tasks_server/artefact_backends/local.py +47 -0
- komus_tasks_server/artefact_backends/mapping.py +222 -0
- komus_tasks_server/artefact_backends/platform.py +188 -0
- komus_tasks_server/artefact_backends/protocol.py +57 -0
- komus_tasks_server/artefact_backends/scope_lifecycle.py +80 -0
- komus_tasks_server/auth.py +108 -0
- komus_tasks_server/cli/__init__.py +13 -0
- komus_tasks_server/cli/run_inline.py +155 -0
- komus_tasks_server/delivery/__init__.py +2 -0
- komus_tasks_server/delivery/delivery_engine.py +685 -0
- komus_tasks_server/delivery/event_publisher.py +411 -0
- komus_tasks_server/delivery/filter.py +135 -0
- komus_tasks_server/delivery/payload_builder.py +263 -0
- komus_tasks_server/delivery/signature.py +133 -0
- komus_tasks_server/dependencies.py +594 -0
- komus_tasks_server/errors.py +62 -0
- komus_tasks_server/execution.py +1015 -0
- komus_tasks_server/framework.py +744 -0
- komus_tasks_server/health_endpoints.py +174 -0
- komus_tasks_server/interfaces/__init__.py +21 -0
- komus_tasks_server/interfaces/database.py +242 -0
- komus_tasks_server/interfaces/deployment_tracker_store.py +90 -0
- komus_tasks_server/interfaces/idempotency.py +41 -0
- komus_tasks_server/interfaces/logger.py +34 -0
- komus_tasks_server/interfaces/scheduler.py +31 -0
- komus_tasks_server/interfaces/storage.py +102 -0
- komus_tasks_server/interfaces/task_registry_store.py +139 -0
- komus_tasks_server/key_hasher.py +58 -0
- komus_tasks_server/lifecycle.py +494 -0
- komus_tasks_server/middleware/__init__.py +2 -0
- komus_tasks_server/middleware/admin_auth.py +85 -0
- komus_tasks_server/observability/__init__.py +5 -0
- komus_tasks_server/observability/metrics.py +314 -0
- komus_tasks_server/observability/otel.py +69 -0
- komus_tasks_server/observability/structlog_otel.py +33 -0
- komus_tasks_server/openapi_meta.py +117 -0
- komus_tasks_server/repositories/__init__.py +14 -0
- komus_tasks_server/repositories/elasticsearch/__init__.py +37 -0
- komus_tasks_server/repositories/elasticsearch/base.py +413 -0
- komus_tasks_server/repositories/elasticsearch/client.py +270 -0
- komus_tasks_server/repositories/elasticsearch/config_store.py +478 -0
- komus_tasks_server/repositories/elasticsearch/credential_store.py +304 -0
- komus_tasks_server/repositories/elasticsearch/database.py +751 -0
- komus_tasks_server/repositories/elasticsearch/deployment_tracker.py +184 -0
- komus_tasks_server/repositories/elasticsearch/file_store.py +228 -0
- komus_tasks_server/repositories/elasticsearch/idempotency.py +88 -0
- komus_tasks_server/repositories/elasticsearch/index_manager.py +286 -0
- komus_tasks_server/repositories/elasticsearch/locks.py +544 -0
- komus_tasks_server/repositories/elasticsearch/mapping_validation.py +82 -0
- komus_tasks_server/repositories/elasticsearch/mappings.py +447 -0
- komus_tasks_server/repositories/elasticsearch/schema_audit.py +510 -0
- komus_tasks_server/repositories/elasticsearch/settings_store.py +170 -0
- komus_tasks_server/repositories/elasticsearch/task_registry_store.py +254 -0
- komus_tasks_server/repositories/elasticsearch/webhook_db.py +242 -0
- komus_tasks_server/repositories/file_db.py +1242 -0
- komus_tasks_server/repositories/file_idempotency.py +106 -0
- komus_tasks_server/repositories/file_task_registry_store.py +374 -0
- komus_tasks_server/repositories/s3/__init__.py +7 -0
- komus_tasks_server/repositories/s3/task_storage.py +304 -0
- komus_tasks_server/repositories/task_deployment_tracker.py +457 -0
- komus_tasks_server/repositories/task_storage.py +468 -0
- komus_tasks_server/repositories/webhook_db.py +402 -0
- komus_tasks_server/routers.py +105 -0
- komus_tasks_server/scheduler/__init__.py +2 -0
- komus_tasks_server/scheduler/concurrency.py +267 -0
- komus_tasks_server/scheduler/retry.py +83 -0
- komus_tasks_server/scheduler/scheduler.py +89 -0
- komus_tasks_server/scheduler/utils.py +69 -0
- komus_tasks_server/sdk_bindings/__init__.py +28 -0
- komus_tasks_server/sdk_bindings/artifact_publisher_impl.py +70 -0
- komus_tasks_server/sdk_bindings/log_configurator_impl.py +34 -0
- komus_tasks_server/server.py +157 -0
- komus_tasks_server/services/__init__.py +14 -0
- komus_tasks_server/services/agent_gateway.py +623 -0
- komus_tasks_server/services/artifact_service.py +518 -0
- komus_tasks_server/services/concurrency_manager.py +261 -0
- komus_tasks_server/services/configuration_service.py +483 -0
- komus_tasks_server/services/credential_service.py +295 -0
- komus_tasks_server/services/encryption_service.py +200 -0
- komus_tasks_server/services/environment_registry.py +793 -0
- komus_tasks_server/services/file_log_sink.py +106 -0
- komus_tasks_server/services/file_service.py +311 -0
- komus_tasks_server/services/long_running_activation.py +213 -0
- komus_tasks_server/services/long_running_supervisor.py +731 -0
- komus_tasks_server/services/observability_service.py +1129 -0
- komus_tasks_server/services/registry_sync.py +234 -0
- komus_tasks_server/services/run_service.py +525 -0
- komus_tasks_server/services/scheduler_service.py +972 -0
- komus_tasks_server/services/task_bundle.py +187 -0
- komus_tasks_server/services/task_deployment.py +817 -0
- komus_tasks_server/services/task_loader.py +729 -0
- komus_tasks_server/services/task_registry.py +553 -0
- komus_tasks_server/services/thread_log_buffer.py +343 -0
- komus_tasks_server/services/thread_service.py +1018 -0
- komus_tasks_server/services/webhook_service.py +776 -0
- komus_tasks_server/services/worker_manager.py +1060 -0
- komus_tasks_server/services/worker_pool.py +91 -0
- komus_tasks_server/services/worker_transport.py +432 -0
- komus_tasks_server/state_transition.py +416 -0
- komus_tasks_server/storage/__init__.py +7 -0
- komus_tasks_server/storage/local.py +298 -0
- komus_tasks_server/storage/s3.py +508 -0
- komus_tasks_server/storage_factory.py +532 -0
- komus_tasks_server/tracing.py +205 -0
- komus_tasks_server/ui/ARCHITECTURE.md +1402 -0
- komus_tasks_server/ui/README.md +681 -0
- komus_tasks_server/ui/__init__.py +875 -0
- komus_tasks_server/ui/components/api-utils.html +218 -0
- komus_tasks_server/ui/components/deliveries-table.html +591 -0
- komus_tasks_server/ui/components/live-updates.html +248 -0
- komus_tasks_server/ui/components/runs-table.html +613 -0
- komus_tasks_server/ui/components/sidebar.html +681 -0
- komus_tasks_server/ui/components/task-selector.html +403 -0
- komus_tasks_server/ui/pages/agent-detail.html +231 -0
- komus_tasks_server/ui/pages/agents.html +222 -0
- komus_tasks_server/ui/pages/artifacts.html +1418 -0
- komus_tasks_server/ui/pages/credential-create.html +489 -0
- komus_tasks_server/ui/pages/credentials.html +481 -0
- komus_tasks_server/ui/pages/environment-detail.html +1825 -0
- komus_tasks_server/ui/pages/environments.html +659 -0
- komus_tasks_server/ui/pages/file-upload.html +855 -0
- komus_tasks_server/ui/pages/files.html +796 -0
- komus_tasks_server/ui/pages/index.html +372 -0
- komus_tasks_server/ui/pages/komus-tasks-console.html +2021 -0
- komus_tasks_server/ui/pages/long-running.html +352 -0
- komus_tasks_server/ui/pages/metadata.html +863 -0
- komus_tasks_server/ui/pages/observability.html +180 -0
- komus_tasks_server/ui/pages/schedule-create.html +1045 -0
- komus_tasks_server/ui/pages/schedule-details.html +552 -0
- komus_tasks_server/ui/pages/schedules.html +800 -0
- komus_tasks_server/ui/pages/settings.html +515 -0
- komus_tasks_server/ui/pages/system-settings.html +238 -0
- komus_tasks_server/ui/pages/task-config.html +596 -0
- komus_tasks_server/ui/pages/task-details.html +690 -0
- komus_tasks_server/ui/pages/task-upload.html +494 -0
- komus_tasks_server/ui/pages/task-versions.html +468 -0
- komus_tasks_server/ui/pages/tasks.html +775 -0
- komus_tasks_server/ui/pages/thread-artifacts.html +958 -0
- komus_tasks_server/ui/pages/thread-create.html +1596 -0
- komus_tasks_server/ui/pages/thread-detail.html +1669 -0
- komus_tasks_server/ui/pages/threads.html +1257 -0
- komus_tasks_server/ui/pages/webhook-create.html +720 -0
- komus_tasks_server/ui/pages/webhook-details.html +657 -0
- komus_tasks_server/ui/pages/webhooks.html +874 -0
- komus_tasks_server/ui_spa.py +43 -0
- komus_tasks_server/utils/__init__.py +0 -0
- komus_tasks_server/utils/metrics_helpers.py +63 -0
- komus_tasks_server/utils/registry_paths.py +63 -0
- komus_tasks_server/version.py +57 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: ko-tasks-server
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Komus Tasks server — deploy, schedule, and manage task workflows with a web UI, webhooks, and REST API
|
|
5
|
+
Project-URL: Documentation, https://github.com/Komus-ai/ko-tasks-platform#readme
|
|
6
|
+
Project-URL: Repository, https://github.com/Komus-ai/ko-tasks-platform
|
|
7
|
+
Project-URL: Issues, https://github.com/Komus-ai/ko-tasks-platform/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/Komus-ai/ko-tasks-platform/blob/main/CHANGELOG.md
|
|
9
|
+
Author-email: "Komus.ai" <codir@komus.ai>
|
|
10
|
+
License: MIT
|
|
11
|
+
Keywords: async,fastapi,observability,scheduling,server,task,webhooks,workflow
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Framework :: FastAPI
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: System Administrators
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.13
|
|
24
|
+
Requires-Dist: aiofiles>=24.1.0
|
|
25
|
+
Requires-Dist: apscheduler>=3.11.0
|
|
26
|
+
Requires-Dist: cryptography>=43.0.0
|
|
27
|
+
Requires-Dist: fastapi>=0.115.0
|
|
28
|
+
Requires-Dist: jsonschema>=4.23.0
|
|
29
|
+
Requires-Dist: ko-observability[elasticsearch,fastapi,httpx]<0.3,>=0.2.0
|
|
30
|
+
Requires-Dist: ko-tasks-sdk>=1.0.0
|
|
31
|
+
Requires-Dist: packaging>=24.0
|
|
32
|
+
Requires-Dist: python-multipart>=0.0.9
|
|
33
|
+
Requires-Dist: slowapi>=0.1.9
|
|
34
|
+
Requires-Dist: uvicorn[standard]>=0.32.0
|
|
35
|
+
Provides-Extra: all
|
|
36
|
+
Requires-Dist: aiobotocore>=3.4.0; extra == 'all'
|
|
37
|
+
Requires-Dist: boto3>=1.34.0; extra == 'all'
|
|
38
|
+
Requires-Dist: elasticsearch[async]>=9.0.0; extra == 'all'
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: boto3<2.0,>=1.35; extra == 'dev'
|
|
41
|
+
Requires-Dist: httpx>=0.27.0; extra == 'dev'
|
|
42
|
+
Requires-Dist: hypothesis>=6.100; extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
|
|
44
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
45
|
+
Requires-Dist: pytest>=8.3.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: pyyaml>=6.0; extra == 'dev'
|
|
47
|
+
Requires-Dist: ruff>=0.8.0; extra == 'dev'
|
|
48
|
+
Provides-Extra: elasticsearch
|
|
49
|
+
Requires-Dist: elasticsearch[async]>=9.0.0; extra == 'elasticsearch'
|
|
50
|
+
Provides-Extra: observability
|
|
51
|
+
Requires-Dist: ko-observability[elasticsearch,fastapi,httpx]<0.3,>=0.2.0; extra == 'observability'
|
|
52
|
+
Provides-Extra: s3
|
|
53
|
+
Requires-Dist: aiobotocore>=3.4.0; extra == 's3'
|
|
54
|
+
Requires-Dist: boto3>=1.34.0; extra == 's3'
|
|
55
|
+
Provides-Extra: test
|
|
56
|
+
Requires-Dist: httpx>=0.27.0; extra == 'test'
|
|
57
|
+
Requires-Dist: playwright>=1.40.0; extra == 'test'
|
|
58
|
+
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'test'
|
|
59
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'test'
|
|
60
|
+
Requires-Dist: pytest-playwright>=0.4.0; extra == 'test'
|
|
61
|
+
Requires-Dist: pytest>=8.3.0; extra == 'test'
|
|
62
|
+
Description-Content-Type: text/markdown
|
|
63
|
+
|
|
64
|
+
# Komus Tasks Server
|
|
65
|
+
|
|
66
|
+
Production-grade task execution server with web UI, webhooks, scheduling, and multi-task support.
|
|
67
|
+
|
|
68
|
+
## Installation
|
|
69
|
+
|
|
70
|
+
First public PyPI release: **1.0.0**.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install ko-tasks-server
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Quick Start
|
|
77
|
+
|
|
78
|
+
### Start the server
|
|
79
|
+
|
|
80
|
+
`ko-tasks-server` takes no flags — configure it with environment variables:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
export PORT=3000
|
|
84
|
+
export BASE_PATH=/var/lib/ko-tasks-server
|
|
85
|
+
export API_KEYS=your-api-key
|
|
86
|
+
export ADMIN_API_KEYS=your-admin-key
|
|
87
|
+
ko-tasks-server
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Access
|
|
91
|
+
|
|
92
|
+
| Endpoint | Description |
|
|
93
|
+
|----------|-------------|
|
|
94
|
+
| `http://localhost:3000/ui` | Komus Tasks Console (default dashboard) |
|
|
95
|
+
| `http://localhost:3000/ui-old` | Legacy htmx web dashboard |
|
|
96
|
+
| `http://localhost:3000/docs` | OpenAPI Documentation |
|
|
97
|
+
| `http://localhost:3000/health` | Health Check |
|
|
98
|
+
| `http://localhost:3000/metrics` | Prometheus Metrics |
|
|
99
|
+
|
|
100
|
+
## Configuration
|
|
101
|
+
|
|
102
|
+
### Environment Variables
|
|
103
|
+
|
|
104
|
+
| Variable | Default | Description |
|
|
105
|
+
|----------|---------|-------------|
|
|
106
|
+
| `PORT` | `3000` | Server port |
|
|
107
|
+
| `BASE_PATH` | `./data` | Base path for data storage |
|
|
108
|
+
| `API_KEYS` | — | Comma-separated API keys for client auth |
|
|
109
|
+
| `ADMIN_API_KEYS` | — | Comma-separated admin API keys |
|
|
110
|
+
| `STORAGE_TYPE` | `file` | Record/database backend: `file` or `elasticsearch` |
|
|
111
|
+
| `FILE_STORAGE_TYPE` | `local` | File storage backend: `local` or `s3` |
|
|
112
|
+
| `LOG_LEVEL` | `INFO` | Logging level |
|
|
113
|
+
|
|
114
|
+
### S3 Storage (optional)
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
export FILE_STORAGE_TYPE=s3
|
|
118
|
+
export S3_BUCKET=my-task-artifacts
|
|
119
|
+
export S3_REGION=eu-west-1
|
|
120
|
+
export AWS_ACCESS_KEY_ID=...
|
|
121
|
+
export AWS_SECRET_ACCESS_KEY=...
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Elasticsearch (optional)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
export STORAGE_TYPE=elasticsearch
|
|
128
|
+
export ELASTICSEARCH_HOSTS=http://localhost:9200
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Deployment
|
|
132
|
+
|
|
133
|
+
### Docker
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
docker build -t ko-tasks-server .
|
|
137
|
+
docker run -p 3000:3000 \
|
|
138
|
+
-e API_KEYS=your-key \
|
|
139
|
+
-e ADMIN_API_KEYS=your-admin-key \
|
|
140
|
+
-v ./data:/data \
|
|
141
|
+
ko-tasks-server
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Docker Compose
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
docker-compose up -d
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Pre-configured variants:
|
|
151
|
+
- `docker-compose.yml` — Basic setup
|
|
152
|
+
- `docker-compose.elasticsearch.yml` — With Elasticsearch
|
|
153
|
+
- `docker-compose.cloud.yml` — Cloud-ready with S3
|
|
154
|
+
- `docker-compose.standalone.yml` — Standalone mode
|
|
155
|
+
|
|
156
|
+
## API Overview
|
|
157
|
+
|
|
158
|
+
### Task Management (Admin)
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Deploy a task
|
|
162
|
+
curl -X POST http://localhost:3000/admin/tasks \
|
|
163
|
+
-H "X-Admin-API-Key: your-admin-key" \
|
|
164
|
+
-F "file=@my-task-1.0.0.zip"
|
|
165
|
+
|
|
166
|
+
# List deployed tasks
|
|
167
|
+
curl http://localhost:3000/admin/tasks \
|
|
168
|
+
-H "X-Admin-API-Key: your-admin-key"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Thread Execution
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Create and run a thread
|
|
175
|
+
curl -X POST http://localhost:3000/threads \
|
|
176
|
+
-H "X-API-Key: your-key" \
|
|
177
|
+
-H "X-App-Id: my-app" \
|
|
178
|
+
-H "X-User-Id: user-1" \
|
|
179
|
+
-H "Content-Type: application/json" \
|
|
180
|
+
-d '{"mode": "sync", "inputs": [{"kind": "text", "text": "Hello"}]}'
|
|
181
|
+
|
|
182
|
+
# Get thread status
|
|
183
|
+
curl http://localhost:3000/threads/{thread_id} \
|
|
184
|
+
-H "X-API-Key: your-key"
|
|
185
|
+
|
|
186
|
+
# Pause/Resume
|
|
187
|
+
curl -X POST http://localhost:3000/threads/{thread_id}:pause \
|
|
188
|
+
-H "X-API-Key: your-key"
|
|
189
|
+
curl -X POST http://localhost:3000/threads/{thread_id}:resume \
|
|
190
|
+
-H "X-API-Key: your-key"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Webhooks
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# Create a webhook
|
|
197
|
+
curl -X POST http://localhost:3000/webhooks \
|
|
198
|
+
-H "X-Admin-API-Key: your-admin-key" \
|
|
199
|
+
-H "Content-Type: application/json" \
|
|
200
|
+
-d '{
|
|
201
|
+
"url": "https://hooks.example.com/task-events",
|
|
202
|
+
"events": ["thread.succeeded", "thread.failed"],
|
|
203
|
+
"secret": "webhook-signing-secret"
|
|
204
|
+
}'
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Schedules
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Create a schedule
|
|
211
|
+
curl -X POST http://localhost:3000/schedules \
|
|
212
|
+
-H "X-Admin-API-Key: your-admin-key" \
|
|
213
|
+
-H "Content-Type: application/json" \
|
|
214
|
+
-d '{
|
|
215
|
+
"task_id": "my-task",
|
|
216
|
+
"cron": "0 8 * * MON",
|
|
217
|
+
"timezone": "Europe/Paris",
|
|
218
|
+
"inputs": [{"kind": "text", "text": "Weekly run"}]
|
|
219
|
+
}'
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Features
|
|
223
|
+
|
|
224
|
+
- **Multi-task deployment** with isolated code + venv per task
|
|
225
|
+
- **Worker subprocess isolation** with JSON Lines IPC
|
|
226
|
+
- **Progress, pause, resume, cancel** — cooperative task control
|
|
227
|
+
- **Python & Node.js** task runtimes
|
|
228
|
+
- **Web Dashboard** — full CRUD for all resources
|
|
229
|
+
- **Webhook system** — HMAC-signed, scoped, with delivery tracking
|
|
230
|
+
- **Cron scheduling** — with concurrency policies
|
|
231
|
+
- **Artifact management** — local or S3 storage
|
|
232
|
+
- **Credential vault** — AES-encrypted secret storage
|
|
233
|
+
- **Prometheus metrics** — request counts, durations, thread states
|
|
234
|
+
- **Idempotency** — duplicate request detection
|
|
235
|
+
|
|
236
|
+
## Development
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Clone and setup
|
|
240
|
+
git clone https://github.com/Komus-ai/ko-tasks-platform.git
|
|
241
|
+
cd ko-tasks-platform
|
|
242
|
+
uv sync
|
|
243
|
+
|
|
244
|
+
# Run server tests
|
|
245
|
+
uv run --package ko-tasks-server pytest packages/server/tests/ -v
|
|
246
|
+
|
|
247
|
+
# Start dev server
|
|
248
|
+
uv run --package ko-tasks-server python -m komus_tasks_server.server
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## License
|
|
252
|
+
|
|
253
|
+
MIT
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
komus_tasks_server/__init__.py,sha256=xo0GhQBtlGAW9nMLESUGy3DeQmbuVQKm1sAODbpX2tY,95
|
|
2
|
+
komus_tasks_server/access_filter.py,sha256=_uvzrF_gGfyVM8GYXNoiA2vdtcr-4rnCqsqnlhflfTc,11338
|
|
3
|
+
komus_tasks_server/app_middleware.py,sha256=eEuvYn5MzzA_IlKxPx663KP351-mqlnn0hUwLmyvXP0,13164
|
|
4
|
+
komus_tasks_server/auth.py,sha256=-RICKShKuSpTO7pwMBviDzSJTGmrldA6HC1mWO6V-cM,3835
|
|
5
|
+
komus_tasks_server/dependencies.py,sha256=WXx5XyYGdyCt9m42rQEqm8mh9XTk6hGXN9mkXfJ12To,23047
|
|
6
|
+
komus_tasks_server/errors.py,sha256=WHs91GRlJeOInLEYkoIoYjaMHOixnL3TmrZT-D72TNg,1960
|
|
7
|
+
komus_tasks_server/execution.py,sha256=EtNmhM1oRXh7yeAU1I9mjo2xb4bsue_C0jbKOarrCRY,42808
|
|
8
|
+
komus_tasks_server/framework.py,sha256=ArZr5NsItyS0OUjcYy4uqlteszDuRh_8ejPWvh4dwMI,30864
|
|
9
|
+
komus_tasks_server/health_endpoints.py,sha256=cqSLbQ2hqnneKBhx11VVszLEBHjF_LjLzPWJ6N5AQv0,6474
|
|
10
|
+
komus_tasks_server/key_hasher.py,sha256=I3HjZ_DHtcWkdgPLKG7dgxRNe_ge1kS1r234kT_ROD8,2376
|
|
11
|
+
komus_tasks_server/lifecycle.py,sha256=VWxOypzCAnfusva0_Wq2P22hzX148vFvwvcp2c4JXF0,17496
|
|
12
|
+
komus_tasks_server/openapi_meta.py,sha256=1CZnpT13TWNdh5YiyK74WxpqzCFtpouq8gagPt-1NgY,4529
|
|
13
|
+
komus_tasks_server/routers.py,sha256=asPILlWhwMrT_NjDTCecFyEiGToYXI74jnBkAPwy3gQ,3451
|
|
14
|
+
komus_tasks_server/server.py,sha256=Ypk1B2uz4JXQSiSVZsd5UmpBEMt8lYhy2xmXOOt2MGs,5479
|
|
15
|
+
komus_tasks_server/state_transition.py,sha256=p3DT5isdx7bkl1GUMUSOyJVg_jGedWg5xYKuLioFEd0,14904
|
|
16
|
+
komus_tasks_server/storage_factory.py,sha256=EQd8Gb382Io_1FcqK7KqwyTeaA9uQxr3C94wYjIMpGM,20998
|
|
17
|
+
komus_tasks_server/tracing.py,sha256=oYVxo0Uoq8wSspLXmb5H7442n-qkMbqx819cbH7JSTs,7511
|
|
18
|
+
komus_tasks_server/ui_spa.py,sha256=acWJ-mEADoCUe4pam2qUzfXboGOPx49cHOL8fWjCA8E,1469
|
|
19
|
+
komus_tasks_server/version.py,sha256=vqQRGm9HQeTHzADiJF60KgdOPjDO42TkvCCtI8-FtH4,1630
|
|
20
|
+
komus_tasks_server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
+
komus_tasks_server/api/admin_environments.py,sha256=yjAAH7KH-MhHm3vmdNouWQoJpINshb0g4RYLvuPq-FM,19233
|
|
22
|
+
komus_tasks_server/api/admin_health.py,sha256=kVb_J6Q1Bf8vxbPzqhA6RIJ8pptvw6coDYK8pKbtKns,1995
|
|
23
|
+
komus_tasks_server/api/admin_metrics.py,sha256=MlhaHvXQKbleplStXnqursSf1XligB-4iLAxqFbfG_I,4156
|
|
24
|
+
komus_tasks_server/api/admin_tasks.py,sha256=gQMfIgdLxqXZC4k3BsRapI_Ya1dSPq2Sg8rp-t6mvdo,23021
|
|
25
|
+
komus_tasks_server/api/agent.py,sha256=tvTuntgywDAML3u_673ahbbKvkeoyW7R_9_XP8byscY,10508
|
|
26
|
+
komus_tasks_server/api/artifacts.py,sha256=2wgeG-3fjsAN0HkAVdo9QNWv4EW4QGOuED_aib3_wsE,26628
|
|
27
|
+
komus_tasks_server/api/credentials.py,sha256=L9IgD9o-ts4TkxL1ej2H5PCK55NptbvV4Qzhz-Rvv2U,11057
|
|
28
|
+
komus_tasks_server/api/files.py,sha256=jPyrOWEayZCFLhCmDYdqxyBbB23x5QsOzY88pPVQAo4,28185
|
|
29
|
+
komus_tasks_server/api/long_running.py,sha256=ZGC4GMR6Ln1rrs5lkDt87B-f_Ucpt4qihgbN98G1kso,3586
|
|
30
|
+
komus_tasks_server/api/metadata.py,sha256=j7HvkUS_HWxHrV5zlEz7DpWaAvQw1VB_QJfHBEdp8XQ,5312
|
|
31
|
+
komus_tasks_server/api/observability.py,sha256=LYOZlsliaYnPqdPu-4P2BTd5gk0tENYMGXV47HFQcbg,12459
|
|
32
|
+
komus_tasks_server/api/runs.py,sha256=92w80lvUTjTGYOE1gquMck6TSSGyfz1MWvPALgQw-EE,9935
|
|
33
|
+
komus_tasks_server/api/schedules.py,sha256=PZKk29uIsPXfQ4OFB_-99d3_rWY_JqGn_AHTZgFDYkY,25383
|
|
34
|
+
komus_tasks_server/api/settings.py,sha256=1o5r8F005pVA-HVuqWn_2_SdNH2-dm_ZhHBkFwdSro4,4574
|
|
35
|
+
komus_tasks_server/api/threads.py,sha256=axCTl_SRaJm8JVqCzh6P3CAeFy4gIQy7DYWB5TuppcI,49468
|
|
36
|
+
komus_tasks_server/api/webhooks.py,sha256=4JINJcrX7-yDRW1fro80OE98Q11kvoUbF3KQJzfofUs,19970
|
|
37
|
+
komus_tasks_server/artefact_backends/__init__.py,sha256=VIa6hq9Wdof6bveZN_X81XByKTKY48BKOdrRrf1IgdY,702
|
|
38
|
+
komus_tasks_server/artefact_backends/factory.py,sha256=yjEf81yt1SnXd8Q6vtcoJf2u2GMIRfDva6zGjko0uBo,3952
|
|
39
|
+
komus_tasks_server/artefact_backends/local.py,sha256=Kz3786QDx401ZtfhAsURx1wxXzxl39hxMi6C1ZqGoVw,1688
|
|
40
|
+
komus_tasks_server/artefact_backends/mapping.py,sha256=tj58DidaWX6FNfHtennfu0lxD-tBOJdcV6pbjRfQmtQ,7726
|
|
41
|
+
komus_tasks_server/artefact_backends/platform.py,sha256=CXLZuZG3ngQmZkxsFb_hD_c1S7lLsY80f2wditT6R0E,7505
|
|
42
|
+
komus_tasks_server/artefact_backends/protocol.py,sha256=FF9FmiB4O6f50ZX1n4XAd3XQb_1UJXmmurVMYopcguM,2154
|
|
43
|
+
komus_tasks_server/artefact_backends/scope_lifecycle.py,sha256=LR7zRufkOJ4kNTIj4S-1gevUVIwlpqAavPA_EEElif0,2638
|
|
44
|
+
komus_tasks_server/cli/__init__.py,sha256=SMUqQUgQhxIb557OwIvQixJDRrI0T341kdiWOKUmcm8,704
|
|
45
|
+
komus_tasks_server/cli/run_inline.py,sha256=loolVTnmWd2QN2HMGL2Pl4jsuIqAbnSTzqgaHkVL_mk,5770
|
|
46
|
+
komus_tasks_server/delivery/__init__.py,sha256=aLKfl9ZQocNVTLxZF9jut6rpu5VIFDxJ4f7m8l1BY98,56
|
|
47
|
+
komus_tasks_server/delivery/delivery_engine.py,sha256=A_Fbgo7_Dt_DaaDFj3b3u1IDu3IAiM9UjW3W7j__pqY,31059
|
|
48
|
+
komus_tasks_server/delivery/event_publisher.py,sha256=ZBcQtjsyh2N1sY1mHJen0DbAPioCzYMJWtPpo460P9E,16269
|
|
49
|
+
komus_tasks_server/delivery/filter.py,sha256=kVBJy0c13praBPc6e2vkdkctREKhYWfa-GyQadiOEWY,4903
|
|
50
|
+
komus_tasks_server/delivery/payload_builder.py,sha256=UkW51JsQhZ6QOWD0McEjHMDqVCjVwGr2H1Mj3uJVS4M,8490
|
|
51
|
+
komus_tasks_server/delivery/signature.py,sha256=HZRqaohfs1vufaZNA0SlaG9NPyesMugnqzZY7bZcsH4,4786
|
|
52
|
+
komus_tasks_server/interfaces/__init__.py,sha256=eCgsHHy3iP-XGhTc-ki48-4g659IpeMh-J3hps0CJ1E,707
|
|
53
|
+
komus_tasks_server/interfaces/database.py,sha256=GekwXIKJ2bgrmBiJRnaE4GsE_McAae2Fb9vYLyXmbkU,7896
|
|
54
|
+
komus_tasks_server/interfaces/deployment_tracker_store.py,sha256=E4GlklPHtE1qZsC_Bs8A6qUu2N4jKiqfWywqWbGuzzw,2452
|
|
55
|
+
komus_tasks_server/interfaces/idempotency.py,sha256=QMYjmQPkxongRejzdrgqfhtwnhZTugkiL64uc-cYQ6g,1479
|
|
56
|
+
komus_tasks_server/interfaces/logger.py,sha256=xduo4dTzGUuJvpOMu1hmNcpmF_JvFCqtsi4TCgiqhUg,817
|
|
57
|
+
komus_tasks_server/interfaces/scheduler.py,sha256=b0u4qC3t2XjwrbWSp5vtsKXs3Q9wk1hEw-9dXlzIP-A,764
|
|
58
|
+
komus_tasks_server/interfaces/storage.py,sha256=GF8ZKbKSHBOcq05r6vGRfIVPQ4yULUY3_wMsW9SXSd0,3110
|
|
59
|
+
komus_tasks_server/interfaces/task_registry_store.py,sha256=MDRH1GStfjk4O0PMtQBoTp6a1ZL7BzhQ7b_e7XsZEno,3842
|
|
60
|
+
komus_tasks_server/middleware/__init__.py,sha256=ZoV8qnCLadhGBGpN3e8_zEoarHm3MJZJd_5WeYlNsRc,52
|
|
61
|
+
komus_tasks_server/middleware/admin_auth.py,sha256=xAPcvuz1v2kfmINeiS8KYwZLC7xYSWV747Gcaj1GJUY,3162
|
|
62
|
+
komus_tasks_server/observability/__init__.py,sha256=grj0IZi_eRXYWEyjswEY4JSGh-PrKJUB8vaFcL1hofk,114
|
|
63
|
+
komus_tasks_server/observability/metrics.py,sha256=boorjmyKZjRZxqsvOCT10F1tI5ZFjfWZpSFBpQhEDCM,12116
|
|
64
|
+
komus_tasks_server/observability/otel.py,sha256=VPTeofxsBsN0cw9fZUH4L5DXt3tMV8mL4C-aPXk-KFE,2510
|
|
65
|
+
komus_tasks_server/observability/structlog_otel.py,sha256=_NCoS2nP6g-rCN6Y7_DwULU5-hyPxbjqgdEkUWmLzmE,822
|
|
66
|
+
komus_tasks_server/repositories/__init__.py,sha256=Sfm6vPH1QuFTicXx7osxNAs4o56IWL0T2G6vyU4ipLo,459
|
|
67
|
+
komus_tasks_server/repositories/file_db.py,sha256=GiIoa0mRX09bJBIi_lN6x-OCtIZMVlA7yhCK4CPwUCI,50372
|
|
68
|
+
komus_tasks_server/repositories/file_idempotency.py,sha256=eJ-nV2awySktM5ckVSQrwypWTifBPhNnzGYTywmyGLw,3799
|
|
69
|
+
komus_tasks_server/repositories/file_task_registry_store.py,sha256=qQYr2W6gMm0rL8nrR6gmnjQ7oT7Q9T7KIuAnb04OyJ0,13898
|
|
70
|
+
komus_tasks_server/repositories/task_deployment_tracker.py,sha256=pHfH_4U6jZoR8kpzoAFXoq9uTvTwdh1TbC3BtqeuPX4,15203
|
|
71
|
+
komus_tasks_server/repositories/task_storage.py,sha256=dUnVUoPdkcW7SMUtmeTQ8-tZ1UYrquI6IHbOMM4zecc,14581
|
|
72
|
+
komus_tasks_server/repositories/webhook_db.py,sha256=eIpa6olraGoh5Ecfz3MyQWfCl4L0qc3xW6QUq55Cip8,14105
|
|
73
|
+
komus_tasks_server/repositories/elasticsearch/__init__.py,sha256=GraZF7XyHhDexHzzE9KhxfSlk1_ImolfPFLMatc5IAU,1535
|
|
74
|
+
komus_tasks_server/repositories/elasticsearch/base.py,sha256=azt8AJ9iZ5aTa-6P-dBNpBTIKCZEJcTeDsTLOg1_Ry4,13746
|
|
75
|
+
komus_tasks_server/repositories/elasticsearch/client.py,sha256=UrQiET5mKi5hQJTWqYp_f7E-Rx1H5WhyBhZQwaVye54,10441
|
|
76
|
+
komus_tasks_server/repositories/elasticsearch/config_store.py,sha256=DYB5gbSux4LlFnBMPYrcGMdJ5_hu5YDjY4MGA3Z4FJI,16389
|
|
77
|
+
komus_tasks_server/repositories/elasticsearch/credential_store.py,sha256=AKboT_iSHXkIvIZOQ-D9ntqYmwWkBJun4hGJIGh59ko,10205
|
|
78
|
+
komus_tasks_server/repositories/elasticsearch/database.py,sha256=J58XWlm1Ertj8NMKKdYCz-2vPEKdqqZSrTpgK0_t2nc,29791
|
|
79
|
+
komus_tasks_server/repositories/elasticsearch/deployment_tracker.py,sha256=w2PEYRcu9PVRVTrCas1700tZ9uer9TKegDmat2_s0Dc,6644
|
|
80
|
+
komus_tasks_server/repositories/elasticsearch/file_store.py,sha256=sO_tCmTqxtnkHs2JgV_goqUe_SpN36iU1BK6wl8kdio,7559
|
|
81
|
+
komus_tasks_server/repositories/elasticsearch/idempotency.py,sha256=lvZN2socrrDM1xQKUDILKEU_GMuBKwnIGua4jUGy4-o,3150
|
|
82
|
+
komus_tasks_server/repositories/elasticsearch/index_manager.py,sha256=PfGNtb1rnIFN06FKrmCQFMHORZtfzOmYDjkOqQaJW7c,10256
|
|
83
|
+
komus_tasks_server/repositories/elasticsearch/locks.py,sha256=xePoWziFmPMjTmRtbz0smv5aXKVUPvHllr7qXjDtTAU,19092
|
|
84
|
+
komus_tasks_server/repositories/elasticsearch/mapping_validation.py,sha256=UMY4BP09Nbtyr7bkljDz17Jxc3Kveqz9mPM_RRnVHHg,3015
|
|
85
|
+
komus_tasks_server/repositories/elasticsearch/mappings.py,sha256=LrhmqnM8JAPj9roduaCPkmrDaty4PGDne0VE1htEwFo,15809
|
|
86
|
+
komus_tasks_server/repositories/elasticsearch/schema_audit.py,sha256=vEHPFi5XoV-uL907Tux4uwT8yzBXYAJ-CRN3DquzQtk,17009
|
|
87
|
+
komus_tasks_server/repositories/elasticsearch/settings_store.py,sha256=iPndMPXz9PAgiEUyLfsaZSx0G8UHGTae6RFtT5RUcVU,5123
|
|
88
|
+
komus_tasks_server/repositories/elasticsearch/task_registry_store.py,sha256=pta3iUa1DDczELUcCxmmaU-vFzGFaWq4VJtOBjdcTGs,9695
|
|
89
|
+
komus_tasks_server/repositories/elasticsearch/webhook_db.py,sha256=tXuGsWVrqlJDGe0W3pf47V-2jrhhTTIu7PBMUy9fXeI,8987
|
|
90
|
+
komus_tasks_server/repositories/s3/__init__.py,sha256=C03NniRoXe1daAenekMoj0HjfSPSfe8UBmtXg8yNrUo,142
|
|
91
|
+
komus_tasks_server/repositories/s3/task_storage.py,sha256=jTDyPZ1vKlp_hx9PlLP-8L1hbCo2eC0yfDYbW_-Hlds,10102
|
|
92
|
+
komus_tasks_server/scheduler/__init__.py,sha256=vX-PBwLjrvS7KnPh5Zyaetq6xt_5kmKpNWZZKI8XRAY,51
|
|
93
|
+
komus_tasks_server/scheduler/concurrency.py,sha256=FrLKV5HqrBfeP23R__cwHIxWVXaY0RJz7dPskxJLFy4,10741
|
|
94
|
+
komus_tasks_server/scheduler/retry.py,sha256=1bBkZLojcyokH5KCKCKw8uirzkBwBiGU1M0W5RXJ-Fw,2289
|
|
95
|
+
komus_tasks_server/scheduler/scheduler.py,sha256=fOwzlBub49VplncfmeOr5j8powMh6Yqfmg_pk6EmrU0,2508
|
|
96
|
+
komus_tasks_server/scheduler/utils.py,sha256=5K9P31SJjewlzE2dskwJ9N5EoJNttl_GgIhzi61K8ZY,2414
|
|
97
|
+
komus_tasks_server/sdk_bindings/__init__.py,sha256=ICdyYYovHEbe-NmS84HdATxyQ_f31dAY-8PJDN1bIog,1031
|
|
98
|
+
komus_tasks_server/sdk_bindings/artifact_publisher_impl.py,sha256=1CGSEdORb26c7ppCiaXZeqHYx6JJRIjX2qIrXDVXkwo,2948
|
|
99
|
+
komus_tasks_server/sdk_bindings/log_configurator_impl.py,sha256=iZEGCgHIdVPSE0sT88fB_NdfopMMdlfUSdxYltzyjY0,1354
|
|
100
|
+
komus_tasks_server/services/__init__.py,sha256=GxSuRWNxnPy2OvTMdP3Ed9se-YuzP5oaLjBlF20PWpQ,429
|
|
101
|
+
komus_tasks_server/services/agent_gateway.py,sha256=pIDQZ22OHqrZ92FkIg3LL2ZMo4pgNF9m0EU49af3w8I,25336
|
|
102
|
+
komus_tasks_server/services/artifact_service.py,sha256=sBoTsR0wTBX0Jz8u6uqGTwpkSKFp0ST7GVydq2wD-sg,20505
|
|
103
|
+
komus_tasks_server/services/concurrency_manager.py,sha256=pNjYcNIZxZ6Nic-ai88hK4I5ujaeZVQnR8pJCuKxX-E,9145
|
|
104
|
+
komus_tasks_server/services/configuration_service.py,sha256=qXZBVOSyrCtcnz5PXWorXY0LxKq8eT6rAXDYfq2lSpM,17960
|
|
105
|
+
komus_tasks_server/services/credential_service.py,sha256=3t_Ns-yGy_8FlCLbKnXuGj9A6TEUhvVqKyg7tQunT9Q,9623
|
|
106
|
+
komus_tasks_server/services/encryption_service.py,sha256=W4N6u5B3mp8WQRiIwjnUXGcEFggA5HXGazN3kuGcJL4,7339
|
|
107
|
+
komus_tasks_server/services/environment_registry.py,sha256=zwGdk6tUBNYbUsIgVWeuU4tYBfDEH8Z_zuXkAsvcX_k,31299
|
|
108
|
+
komus_tasks_server/services/file_log_sink.py,sha256=0M625Vi2gsZTvx7m6xqbJsWyd9EM1c5269IokHY254k,3590
|
|
109
|
+
komus_tasks_server/services/file_service.py,sha256=Gid0blKD1aREjw6mPYQyp8KMGnC9bnFl53DI7WW-XiI,10872
|
|
110
|
+
komus_tasks_server/services/long_running_activation.py,sha256=gxMXXHH3NEruklsubgDL_Pclk4R86SrdDm1mgr_8Hc4,8453
|
|
111
|
+
komus_tasks_server/services/long_running_supervisor.py,sha256=8ZEcaIzLLQVuQc3vRVF4l-NzEnI7hIdO9REiyGj6mOQ,30373
|
|
112
|
+
komus_tasks_server/services/observability_service.py,sha256=NWhdzpun6SUQey6kzG86c1rGSN5qtXraXQRwz-iPmbk,44489
|
|
113
|
+
komus_tasks_server/services/registry_sync.py,sha256=K1tEHAqq_HEkkIjAN5nPwRz6pjX-L2isetaHDHr1HcI,7395
|
|
114
|
+
komus_tasks_server/services/run_service.py,sha256=qhXPysxMHvXa83STzIYH7rNc_0SDE3GqXNjQORWvrhg,19593
|
|
115
|
+
komus_tasks_server/services/scheduler_service.py,sha256=GJP6p9jWiJyfSt7zUAV8TnJaZd3gOQFSVczjSUDgrU0,38137
|
|
116
|
+
komus_tasks_server/services/task_bundle.py,sha256=Uu2HKpIRBd5bMja2yZWVE61nMTndHXkidJAzVRBO4Pw,7427
|
|
117
|
+
komus_tasks_server/services/task_deployment.py,sha256=_QvGK0G42Vq4ZHGTlrtW1IFHde9TUcLrKZ_G0EPu83s,30511
|
|
118
|
+
komus_tasks_server/services/task_loader.py,sha256=Qr8IWR6NP1Lcv40vN5j9cfWZSfaBHgo7MJgfsXwfLfQ,25874
|
|
119
|
+
komus_tasks_server/services/task_registry.py,sha256=6govFhKCGVgiHYRxrhkHzAnl2qT-uarZD3Bf5A-nVyI,20574
|
|
120
|
+
komus_tasks_server/services/thread_log_buffer.py,sha256=2Wyxdfl7b5utgptIo0m9893eGucgPiHinSmaeRJSKCs,14044
|
|
121
|
+
komus_tasks_server/services/thread_service.py,sha256=FgGIyk4IiBrcnuEoxTZrN4-CkMPKfSnFX3LieFtVOg4,43907
|
|
122
|
+
komus_tasks_server/services/webhook_service.py,sha256=qAf4qEDWtF0Hq40Tb57nEuI_VCJHrmWNB69YzzihQSQ,26170
|
|
123
|
+
komus_tasks_server/services/worker_manager.py,sha256=4xFB6ddSy8OuQApi4c90vQx9YfQcWk3xbZ1BkwmuVwA,44112
|
|
124
|
+
komus_tasks_server/services/worker_pool.py,sha256=OFxBzHoWBr22mVlXs8nV_cTAt3RThrUY6D_Ts_k6XHc,3520
|
|
125
|
+
komus_tasks_server/services/worker_transport.py,sha256=tC7yLm_1h1WcsdSRQLxsTVVYMhrYT2CdCJY9nGOXocE,17495
|
|
126
|
+
komus_tasks_server/storage/__init__.py,sha256=0_25vIgbjtT1Hqv6DsBkn8dgpp7k-enG9nC3hPSgTpw,136
|
|
127
|
+
komus_tasks_server/storage/local.py,sha256=Sd0jHd5yd82Tc6B5Y5bzA1167Vjje8IccJUkGr0ezns,10938
|
|
128
|
+
komus_tasks_server/storage/s3.py,sha256=ebH-7Fnw6HWrQwtcvCHkWTyP8HnM1rY56ABHC2SQPXA,17030
|
|
129
|
+
komus_tasks_server/ui/ARCHITECTURE.md,sha256=abbJ_51gyPPzW8zrmTgjWAVfhyIRJ3rTOS4J0oFkz28,53498
|
|
130
|
+
komus_tasks_server/ui/README.md,sha256=J07frqjGYL1AulNDEJxyfRj2_xbNdTvEJvXHjyteehA,22013
|
|
131
|
+
komus_tasks_server/ui/__init__.py,sha256=bfpTMwZJWXxaWuFvqDPWlY3WSwvcSPsVmlPfPCUPxd0,29189
|
|
132
|
+
komus_tasks_server/ui/components/api-utils.html,sha256=aE4FSCZsnbmb_nVMZfho0hUdVyt74jS0-xg5NOfnkJU,7453
|
|
133
|
+
komus_tasks_server/ui/components/deliveries-table.html,sha256=i5oPrhPoihAusQbKR1l6gJkGx7ODUE1A87pSQ9Ah2d8,20337
|
|
134
|
+
komus_tasks_server/ui/components/live-updates.html,sha256=PyeXVGWeKuOcIClOCcKIvz1YsPS0S3ysqlJBZp0cLcA,7413
|
|
135
|
+
komus_tasks_server/ui/components/runs-table.html,sha256=Ycith_HLbjPHr3HRUe0wgFvt7U0Mhejr-2wRRy11His,21202
|
|
136
|
+
komus_tasks_server/ui/components/sidebar.html,sha256=qgr_678qWwoCoQnib3sm7ImBpGP6RaCOxx5H9XtBUXI,31364
|
|
137
|
+
komus_tasks_server/ui/components/task-selector.html,sha256=jRd8QOy-TSToZ3czrs9PC16pcT6W7sxicmf6av1K6gs,13904
|
|
138
|
+
komus_tasks_server/ui/pages/agent-detail.html,sha256=0-sildsaJb7sYy0OGmkda26FHCJbPfKrl7XwqpuZ9C0,11586
|
|
139
|
+
komus_tasks_server/ui/pages/agents.html,sha256=xSZ5yddn1fUn0UePnPQzM7kIDZ1whJQi_NNxBAEwd7E,11332
|
|
140
|
+
komus_tasks_server/ui/pages/artifacts.html,sha256=GchirhAa-nWGAh1dbog1prSyD2nMC_u4Vs92KPSLPUQ,52896
|
|
141
|
+
komus_tasks_server/ui/pages/credential-create.html,sha256=b1AE_tsmTj-53YECVlQa0aqHv7PJanSPiw6uDBHjI3k,21804
|
|
142
|
+
komus_tasks_server/ui/pages/credentials.html,sha256=En70XZnAR6LrZU1xZXXt8NYC_jn7hYZ1EPlrqLoAI2s,19519
|
|
143
|
+
komus_tasks_server/ui/pages/environment-detail.html,sha256=vqMHzzJqjMyk5dNqDyBOyvsJfC4A3vMwGx8nLYn_Zfg,87661
|
|
144
|
+
komus_tasks_server/ui/pages/environments.html,sha256=6Jg_QbGY89Z_8D2zilzhYk9k3IVZcOQA0htQFdX3yj4,28046
|
|
145
|
+
komus_tasks_server/ui/pages/file-upload.html,sha256=SFPwKfnIRGL7Zb0aN-PRvWy28EjN3t87wWL5X1HyFa4,31002
|
|
146
|
+
komus_tasks_server/ui/pages/files.html,sha256=uGQGv5Bci2ADB8x0df5rO64iOd-kMVFiGxTWZKyOe9c,28878
|
|
147
|
+
komus_tasks_server/ui/pages/index.html,sha256=tSXuUbiJqnRWqsqWNL5n0KFjtR91IAmrV-mIUcVA6vk,16757
|
|
148
|
+
komus_tasks_server/ui/pages/komus-tasks-console.html,sha256=FLCHdE_zCk7RAO_e0klsf0ZfKx-PpZ72yZZLtNroDAw,254340
|
|
149
|
+
komus_tasks_server/ui/pages/long-running.html,sha256=jBuNnYL5NGtKaBklTE_ARB7ctOFJljwOl42U26qVtM0,17562
|
|
150
|
+
komus_tasks_server/ui/pages/metadata.html,sha256=AW-6dEfQKOYUVAgMaGBB4X9oTOcy-oBTeE99pujbE-c,33456
|
|
151
|
+
komus_tasks_server/ui/pages/observability.html,sha256=j5C25qgJVD7rQKzqtK6f8kH8htQgwShkQ6yKRZeObKY,9346
|
|
152
|
+
komus_tasks_server/ui/pages/schedule-create.html,sha256=P2MLpUkQmNugOwHiSrPDC8MgWu2m_yC6MBBy5fN0SZg,38825
|
|
153
|
+
komus_tasks_server/ui/pages/schedule-details.html,sha256=msDurbP01TJDDQmmX4xHx28M8cpe6y9qzv2xgoW1pks,21565
|
|
154
|
+
komus_tasks_server/ui/pages/schedules.html,sha256=-g3FBkSRTw6Dexeimper8ltpRKyO7vL3oLqSs4VaBL0,29941
|
|
155
|
+
komus_tasks_server/ui/pages/settings.html,sha256=eqrnrm1mZp4jC97PKqBvZeKslw2BfWtQhiMPq56bbSI,18784
|
|
156
|
+
komus_tasks_server/ui/pages/system-settings.html,sha256=s1z0XV7mKiE_JjMOgnU2LM5LqRi7TPxsOsOyHOS2nGM,14251
|
|
157
|
+
komus_tasks_server/ui/pages/task-config.html,sha256=IZe_kXvN8vDr-TLXW3y28umNnktD64ahxI4rd8Qt148,28300
|
|
158
|
+
komus_tasks_server/ui/pages/task-details.html,sha256=qJ5ZTzVFYAmqMy-iBBX91vmE0eb-tFnQYrm7W7gdWDc,27941
|
|
159
|
+
komus_tasks_server/ui/pages/task-upload.html,sha256=6qEc_wIDa8QuFnYA6JZeBDJGdIMAV3JdZHbRATK-0SY,20161
|
|
160
|
+
komus_tasks_server/ui/pages/task-versions.html,sha256=ZOyNe8pD99YAMIPh27GfN7NqbqtsC8xVz5Sg91S8o98,17209
|
|
161
|
+
komus_tasks_server/ui/pages/tasks.html,sha256=tWJVKmYYQNFizDjDpGOJ06ovr7rp_xzEzBMe3fnyv8g,29391
|
|
162
|
+
komus_tasks_server/ui/pages/thread-artifacts.html,sha256=-vdTrYVJMzUQFX5LCw3w-BZqNtHNo3FhjiKjcyBlzQM,35150
|
|
163
|
+
komus_tasks_server/ui/pages/thread-create.html,sha256=ybuz_9SBp97Ny3gQdTBBDyNK6D2Nur5HSYTwLMOxtcs,81969
|
|
164
|
+
komus_tasks_server/ui/pages/thread-detail.html,sha256=nWG_Ce7Qaok5D-yfmPLJIOc0Jiu0Lmd4tzslB1WsZ04,69586
|
|
165
|
+
komus_tasks_server/ui/pages/threads.html,sha256=6BsBR44B42w0gw0yyV7MjbSKMjjUc9XUfE0fL9PGz0w,49502
|
|
166
|
+
komus_tasks_server/ui/pages/webhook-create.html,sha256=Sz1X1KT8z0kC9yfL7wkgB3iBSs_kJrQP96ieJGN-6-0,26565
|
|
167
|
+
komus_tasks_server/ui/pages/webhook-details.html,sha256=ZPsjBNg8RLzMJdt3ABXH8UQ15zqMcUPJd7KXHMQOA9I,26183
|
|
168
|
+
komus_tasks_server/ui/pages/webhooks.html,sha256=W1LSx5xE0I0VbJAEIBogQwD83Uwznqewqve9iU1Upbk,31600
|
|
169
|
+
komus_tasks_server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
170
|
+
komus_tasks_server/utils/metrics_helpers.py,sha256=ytpPbroZo6r0pHcUSdg6sSM5A4sfWj0fSknG721lRg8,2564
|
|
171
|
+
komus_tasks_server/utils/registry_paths.py,sha256=7cWnOYF9jC0Z9E4GL5CiXTHefckPuPyLi2dDSm5rVhQ,2256
|
|
172
|
+
ko_tasks_server-1.0.0.dist-info/METADATA,sha256=Xe2-d6xt42G-4CCBcVEMnwGrkP1QocQ6fWssC2lVyWM,7573
|
|
173
|
+
ko_tasks_server-1.0.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
174
|
+
ko_tasks_server-1.0.0.dist-info/entry_points.txt,sha256=BhdZm02Jh0bEA2Lz62mjLEB3n5V9UnWDMOByp1jqQ0I,67
|
|
175
|
+
ko_tasks_server-1.0.0.dist-info/RECORD,,
|