Streamlit — ADEN Dashboard Runtime¶
Streamlit serves auto-generated dashboards produced by the ADEN (AKKO Data-Engine Native) pipeline. When a user asks a natural language question, ADEN generates SQL, executes it, and produces a Streamlit dashboard — this service renders those dashboards in the browser.
Architecture¶
ADEN Pipeline
|
| writes .py + data to PVC
|
+--v-------------------+
| akko-aden-reports |
| (shared PVC) |
+--+-------------------+
|
+--v-----------+
| Streamlit |
| (:8501) |
| serves .py |
+--------------+
- ADEN writes generated Streamlit
.pyfiles and data to the sharedakko-aden-reportsPVC - Streamlit mounts this PVC read-only and serves the dashboards
- Prometheus scrapes
/metricsvia ServiceMonitor
URLs¶
| Mode | URL |
|---|---|
| Kubernetes (k3d) | https://reports.<domain> |
Configuration (Helm values)¶
akko-streamlit:
enabled: true
image:
repository: localhost:5050/akko-streamlit
tag: "2026.04"
replicas: 1
service:
port: 8501
reportsPvc: "akko-aden-reports" # Must match akko-aden.reports.pvcName
ingress:
host: "reports.akko.local"
serviceMonitor:
enabled: true
interval: 30s
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
Health Check¶
Streamlit responds to HTTP requests on port 8501:
livenessProbe:
httpGet:
path: /healthz
port: 8501
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /healthz
port: 8501
initialDelaySeconds: 5
periodSeconds: 10
RBAC (who can access)¶
Streamlit dashboards are served through the ingress and protected by OAuth2-Proxy (ForwardAuth middleware). Users must be authenticated via Keycloak SSO.
For the ShinyProxy multi-tenant setup (recommended for production), each user gets an isolated Streamlit pod — see the ShinyProxy documentation.
Key Features¶
| Feature | Description |
|---|---|
| ADEN integration | Auto-renders dashboards generated by the NL-to-SQL pipeline |
| Shared PVC | Reads dashboards from the akko-aden-reports volume |
| Prometheus metrics | ServiceMonitor scrapes /metrics on port 8501 |
| Lightweight | 128 Mi RAM base, scales per dashboard complexity |
Resource Requirements¶
| Component | Minimum RAM | Recommended |
|---|---|---|
| Streamlit | 128 Mi | 512 Mi |
Troubleshooting¶
Dashboard Not Found¶
Symptoms: Accessing a dashboard URL returns a 404 or blank page.
Cause: The ADEN pipeline has not written the dashboard file to the PVC, or the PVC is not mounted correctly.
Solution:
# Check that the PVC exists and is bound
kubectl get pvc -n akko akko-aden-reports
# List files in the reports PVC
kubectl exec -n akko deploy/akko-akko-streamlit -- ls -la /reports/
# Check Streamlit logs
kubectl logs -n akko deploy/akko-akko-streamlit --tail=50
Streamlit Pod CrashLoopBackOff¶
Symptoms: The Streamlit pod restarts repeatedly.
Cause: Missing Python dependencies in the Streamlit image, or a generated dashboard script has a syntax error.
Solution: