MATIH Platform is in active MVP development. Documentation reflects current implementation status.
18. CI/CD & Build System
Stage 17: DP Frontend

Stage 17: Data Plane Frontend

Stage 17 deploys the data plane frontend applications: the data plane UI and all workbench applications. Each workbench provides a specialized interface for a different user persona.

Source file: scripts/stages/17-data-plane-frontend.sh


Applications Deployed

ApplicationPortDescription
data-plane-ui3005Data plane administration dashboard
bi-workbench3000Business intelligence analysis interface
ml-workbench3001Machine learning experiment workspace
data-workbench3002Data engineering pipeline management
agentic-workbench3003Conversational AI agent interface

Configuration

SettingSourceDescription
IMAGE_TAGBuild metadata or tag fileContainer image version
ACR_URLTerraform outputsAzure Container Registry URL
INGRESS_DOMAINEnvironment variable or auto-detectDomain for ingress routes
ENABLE_TLSEnvironment variableTLS termination (default: false)

Ingress Domain Resolution

If INGRESS_DOMAIN is not set, the stage auto-detects the LoadBalancer IP and constructs a nip.io domain:

<lb-ip>.nip.io

In production, each tenant gets a dedicated domain (e.g., acme.matih.ai).


Deployment

Each frontend application is deployed as a separate Helm release:

for app in data-plane-ui bi-workbench ml-workbench data-workbench agentic-workbench; do
    helm upgrade --install ${app} \
        infrastructure/helm/${app} \
        --namespace matih-data-plane \
        --set image.repository=${ACR_URL}/matih/${app} \
        --set image.tag=${IMAGE_TAG} \
        --set ingress.domain=${INGRESS_DOMAIN} \
        --wait --timeout 5m
done

Libraries Used

LibraryPurpose
core/config.shTerraform output access
k8s/namespace.shNamespace management
helm/deploy.shHelm deployment
acr/deploy.shACR image operations

Dependencies

  • Requires: 16-data-plane-services
  • Required by: 18-validate

Dependency Verification

kubectl get pods -n matih-data-plane -l app=bi-workbench
kubectl get ingress -n matih-data-plane