StatusType

architektur

flowchart LR
    %% === Eingabeebene ===
    subgraph Eingabe
        User([πŸ‘€ User])
        Meta[πŸ“„ Metadata File]
        Binary[πŸ“¦ Binary File]
    end

    %% === Authentifizierung ===
    subgraph Security
        Keycloak["πŸ” Keycloak - IAM"]
    end

    %% === Upload-Prozess ===
    subgraph UploadPipeline
        Upload[‴️ Upload Service]
        AccessManager["πŸ”“ AccessManager"]
    end

    %% === Step-Kette (Processing Steps 1-4) ===
    subgraph "πŸ§ͺ Processing Steps"
        direction LR
        Step1["🦠 Step 1: Virus Scan"]
        Step2["πŸͺͺ Step 2: Authentication"]
        Step3["🧠 Step 3: Metadata Enrichment"]
        Step4["πŸ“Š Step 4: Analytics"]
    end

    %% === Verarbeitung ===
    subgraph Processing
        Processor[βš™οΈ Processing Service]
        Workflow[πŸ” Argo Workflows]
    end

    %% === Speicherung ===
    subgraph Storage
        Datapool[🧊 Datenpool]
    end

    %% === Metadatenspeicher ===
    subgraph IndexSearch
        Metadatastore[πŸ“‚ Metadatastore]
        Zeitreihen[⏱️ Zeitreihen]
        Kibana["πŸ“ˆ Kibana"]
    end

    %% === Monitoring ===
    subgraph Monitoring
        Grafana["πŸ“Š Grafana"]
        Loki["πŸ“₯ Loki"]
    end

    %% === Beziehungen ===
    User -->|REST| Upload
    Meta --> Upload
    Binary --> Upload
    Upload --> Step1 --> Step2 --> AccessManager
    AccessManager -->|βœ… Access| Datapool
    AccessManager --> Processor

    Processor --> Step3 --> Step4 --> Workflow

    Processor -->|β†’ metadata| Metadatastore
    Processor -->|β†’ zeitreihen| Zeitreihen
    Metadatastore --> Kibana

    User -->|REST| AccessManager
    User -->|REST| Processor
    User -->|REST| Metadatastore

    Loki --> Grafana
    Kibana --> User
    Grafana --> User