flowyml 1.7.2__py3-none-any.whl → 1.8.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.
- flowyml/assets/base.py +15 -0
- flowyml/assets/metrics.py +5 -0
- flowyml/cli/main.py +709 -0
- flowyml/cli/stack_cli.py +138 -25
- flowyml/core/__init__.py +17 -0
- flowyml/core/executor.py +161 -26
- flowyml/core/image_builder.py +129 -0
- flowyml/core/log_streamer.py +227 -0
- flowyml/core/orchestrator.py +22 -2
- flowyml/core/pipeline.py +34 -10
- flowyml/core/routing.py +558 -0
- flowyml/core/step.py +9 -1
- flowyml/core/step_grouping.py +49 -35
- flowyml/core/types.py +407 -0
- flowyml/monitoring/alerts.py +10 -0
- flowyml/monitoring/notifications.py +104 -25
- flowyml/monitoring/slack_blocks.py +323 -0
- flowyml/plugins/__init__.py +251 -0
- flowyml/plugins/alerters/__init__.py +1 -0
- flowyml/plugins/alerters/slack.py +168 -0
- flowyml/plugins/base.py +752 -0
- flowyml/plugins/config.py +478 -0
- flowyml/plugins/deployers/__init__.py +22 -0
- flowyml/plugins/deployers/gcp_cloud_run.py +200 -0
- flowyml/plugins/deployers/sagemaker.py +306 -0
- flowyml/plugins/deployers/vertex.py +290 -0
- flowyml/plugins/integration.py +369 -0
- flowyml/plugins/manager.py +510 -0
- flowyml/plugins/model_registries/__init__.py +22 -0
- flowyml/plugins/model_registries/mlflow.py +159 -0
- flowyml/plugins/model_registries/sagemaker.py +489 -0
- flowyml/plugins/model_registries/vertex.py +386 -0
- flowyml/plugins/orchestrators/__init__.py +13 -0
- flowyml/plugins/orchestrators/sagemaker.py +443 -0
- flowyml/plugins/orchestrators/vertex_ai.py +461 -0
- flowyml/plugins/registries/__init__.py +13 -0
- flowyml/plugins/registries/ecr.py +321 -0
- flowyml/plugins/registries/gcr.py +313 -0
- flowyml/plugins/registry.py +454 -0
- flowyml/plugins/stack.py +494 -0
- flowyml/plugins/stack_config.py +537 -0
- flowyml/plugins/stores/__init__.py +13 -0
- flowyml/plugins/stores/gcs.py +460 -0
- flowyml/plugins/stores/s3.py +453 -0
- flowyml/plugins/trackers/__init__.py +11 -0
- flowyml/plugins/trackers/mlflow.py +316 -0
- flowyml/plugins/validators/__init__.py +3 -0
- flowyml/plugins/validators/deepchecks.py +119 -0
- flowyml/registry/__init__.py +2 -1
- flowyml/registry/model_environment.py +109 -0
- flowyml/registry/model_registry.py +241 -96
- flowyml/serving/__init__.py +17 -0
- flowyml/serving/model_server.py +628 -0
- flowyml/stacks/__init__.py +60 -0
- flowyml/stacks/aws.py +93 -0
- flowyml/stacks/base.py +62 -0
- flowyml/stacks/components.py +12 -0
- flowyml/stacks/gcp.py +44 -9
- flowyml/stacks/plugins.py +115 -0
- flowyml/stacks/registry.py +2 -1
- flowyml/storage/sql.py +401 -12
- flowyml/tracking/experiment.py +8 -5
- flowyml/ui/backend/Dockerfile +87 -16
- flowyml/ui/backend/auth.py +12 -2
- flowyml/ui/backend/main.py +149 -5
- flowyml/ui/backend/routers/ai_context.py +226 -0
- flowyml/ui/backend/routers/assets.py +23 -4
- flowyml/ui/backend/routers/auth.py +96 -0
- flowyml/ui/backend/routers/deployments.py +660 -0
- flowyml/ui/backend/routers/model_explorer.py +597 -0
- flowyml/ui/backend/routers/plugins.py +103 -51
- flowyml/ui/backend/routers/projects.py +91 -8
- flowyml/ui/backend/routers/runs.py +20 -1
- flowyml/ui/backend/routers/schedules.py +22 -17
- flowyml/ui/backend/routers/templates.py +319 -0
- flowyml/ui/backend/routers/websocket.py +2 -2
- flowyml/ui/frontend/Dockerfile +55 -6
- flowyml/ui/frontend/dist/assets/index-B5AsPTSz.css +1 -0
- flowyml/ui/frontend/dist/assets/index-dFbZ8wD8.js +753 -0
- flowyml/ui/frontend/dist/index.html +2 -2
- flowyml/ui/frontend/dist/logo.png +0 -0
- flowyml/ui/frontend/nginx.conf +65 -4
- flowyml/ui/frontend/package-lock.json +1404 -74
- flowyml/ui/frontend/package.json +3 -0
- flowyml/ui/frontend/public/logo.png +0 -0
- flowyml/ui/frontend/src/App.jsx +10 -7
- flowyml/ui/frontend/src/app/auth/Login.jsx +90 -0
- flowyml/ui/frontend/src/app/dashboard/page.jsx +8 -8
- flowyml/ui/frontend/src/app/deployments/page.jsx +786 -0
- flowyml/ui/frontend/src/app/model-explorer/page.jsx +1031 -0
- flowyml/ui/frontend/src/app/pipelines/page.jsx +12 -2
- flowyml/ui/frontend/src/app/projects/[projectId]/_components/ProjectExperimentsList.jsx +19 -6
- flowyml/ui/frontend/src/app/runs/[runId]/page.jsx +36 -24
- flowyml/ui/frontend/src/app/runs/page.jsx +8 -2
- flowyml/ui/frontend/src/app/settings/page.jsx +267 -253
- flowyml/ui/frontend/src/components/AssetDetailsPanel.jsx +29 -7
- flowyml/ui/frontend/src/components/Layout.jsx +6 -0
- flowyml/ui/frontend/src/components/PipelineGraph.jsx +79 -29
- flowyml/ui/frontend/src/components/RunDetailsPanel.jsx +36 -6
- flowyml/ui/frontend/src/components/RunMetaPanel.jsx +113 -0
- flowyml/ui/frontend/src/components/ai/AIAssistantButton.jsx +71 -0
- flowyml/ui/frontend/src/components/ai/AIAssistantPanel.jsx +420 -0
- flowyml/ui/frontend/src/components/header/Header.jsx +22 -0
- flowyml/ui/frontend/src/components/plugins/PluginManager.jsx +4 -4
- flowyml/ui/frontend/src/components/plugins/{ZenMLIntegration.jsx → StackImport.jsx} +38 -12
- flowyml/ui/frontend/src/components/sidebar/Sidebar.jsx +36 -13
- flowyml/ui/frontend/src/contexts/AIAssistantContext.jsx +245 -0
- flowyml/ui/frontend/src/contexts/AuthContext.jsx +108 -0
- flowyml/ui/frontend/src/hooks/useAIContext.js +156 -0
- flowyml/ui/frontend/src/hooks/useWebGPU.js +54 -0
- flowyml/ui/frontend/src/layouts/MainLayout.jsx +6 -0
- flowyml/ui/frontend/src/router/index.jsx +47 -20
- flowyml/ui/frontend/src/services/pluginService.js +3 -1
- flowyml/ui/server_manager.py +5 -5
- flowyml/ui/utils.py +157 -39
- flowyml/utils/config.py +37 -15
- flowyml/utils/model_introspection.py +123 -0
- flowyml/utils/observability.py +30 -0
- flowyml-1.8.0.dist-info/METADATA +174 -0
- {flowyml-1.7.2.dist-info → flowyml-1.8.0.dist-info}/RECORD +123 -65
- {flowyml-1.7.2.dist-info → flowyml-1.8.0.dist-info}/WHEEL +1 -1
- flowyml/ui/frontend/dist/assets/index-B40RsQDq.css +0 -1
- flowyml/ui/frontend/dist/assets/index-CjI0zKCn.js +0 -685
- flowyml-1.7.2.dist-info/METADATA +0 -477
- {flowyml-1.7.2.dist-info → flowyml-1.8.0.dist-info}/entry_points.txt +0 -0
- {flowyml-1.7.2.dist-info → flowyml-1.8.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>FlowyML</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-dFbZ8wD8.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-B5AsPTSz.css">
|
|
10
10
|
</head>
|
|
11
11
|
|
|
12
12
|
<body>
|
|
Binary file
|
flowyml/ui/frontend/nginx.conf
CHANGED
|
@@ -1,26 +1,87 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# FlowyML Frontend - Nginx Configuration
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
1
5
|
server {
|
|
2
6
|
listen 80;
|
|
3
7
|
server_name localhost;
|
|
4
8
|
|
|
9
|
+
# Allow large uploads for artifacts
|
|
10
|
+
client_max_body_size 100M;
|
|
11
|
+
|
|
5
12
|
root /usr/share/nginx/html;
|
|
6
13
|
index index.html;
|
|
7
14
|
|
|
8
|
-
#
|
|
15
|
+
# Gzip compression
|
|
16
|
+
gzip on;
|
|
17
|
+
gzip_vary on;
|
|
18
|
+
gzip_min_length 1024;
|
|
19
|
+
gzip_proxied expired no-cache no-store private auth;
|
|
20
|
+
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/javascript application/json;
|
|
21
|
+
|
|
22
|
+
# Security headers
|
|
23
|
+
add_header X-Frame-Options "SAMEORIGIN" always;
|
|
24
|
+
add_header X-Content-Type-Options "nosniff" always;
|
|
25
|
+
add_header X-XSS-Protection "1; mode=block" always;
|
|
26
|
+
|
|
27
|
+
# Static assets with caching
|
|
9
28
|
location /assets {
|
|
29
|
+
expires 1y;
|
|
30
|
+
add_header Cache-Control "public, immutable";
|
|
10
31
|
try_files $uri $uri/ =404;
|
|
11
32
|
}
|
|
12
33
|
|
|
13
34
|
# Proxy API requests to backend
|
|
14
35
|
location /api {
|
|
15
|
-
|
|
16
|
-
|
|
36
|
+
resolver 127.0.0.11 valid=30s;
|
|
37
|
+
set $upstream_backend backend;
|
|
38
|
+
proxy_pass http://$upstream_backend:8080;
|
|
39
|
+
|
|
40
|
+
proxy_http_version 1.1;
|
|
41
|
+
# CRITICAL: Use $http_host to preserve the port in redirects
|
|
42
|
+
proxy_set_header Host $http_host;
|
|
17
43
|
proxy_set_header X-Real-IP $remote_addr;
|
|
18
44
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
19
45
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
46
|
+
proxy_set_header X-Forwarded-Host $http_host;
|
|
47
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
48
|
+
proxy_set_header Connection $connection_upgrade;
|
|
49
|
+
proxy_connect_timeout 60s;
|
|
50
|
+
proxy_send_timeout 60s;
|
|
51
|
+
proxy_read_timeout 60s;
|
|
20
52
|
}
|
|
21
53
|
|
|
22
|
-
#
|
|
54
|
+
# WebSocket connections
|
|
55
|
+
location /ws {
|
|
56
|
+
resolver 127.0.0.11 valid=30s;
|
|
57
|
+
set $upstream_backend backend;
|
|
58
|
+
proxy_pass http://$upstream_backend:8080;
|
|
59
|
+
|
|
60
|
+
proxy_http_version 1.1;
|
|
61
|
+
proxy_set_header Host $http_host;
|
|
62
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
63
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
64
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
65
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
66
|
+
proxy_set_header Connection "upgrade";
|
|
67
|
+
proxy_read_timeout 86400;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
# SPA routing
|
|
23
71
|
location / {
|
|
24
72
|
try_files $uri $uri/ /index.html;
|
|
25
73
|
}
|
|
74
|
+
|
|
75
|
+
# Health check
|
|
76
|
+
location /health {
|
|
77
|
+
access_log off;
|
|
78
|
+
return 200 "healthy\n";
|
|
79
|
+
add_header Content-Type text/plain;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Map for connection upgrade (WebSocket support)
|
|
84
|
+
map $http_upgrade $connection_upgrade {
|
|
85
|
+
default upgrade;
|
|
86
|
+
'' close;
|
|
26
87
|
}
|