# pm

Project management. Namespace: `pm`.

```mermaid
flowchart LR
    GW[Istio Gateway]:::infra
    PG[(PostgreSQL)]:::data
    Redis[(Redis)]:::data
    KC[Keycloak]:::idp

    subgraph NS["ns: pm"]
        Backend[deployment: backend<br/>Service]:::comp
        Celery[deployment: celery<br/>worker]:::comp
        Cfg{{configmap: backend}}:::cfg
        Cfg -.-> Backend
        Backend -. tasks .-> Celery
    end

    CI[control-interface]:::peer
    Projects[projects]:::peer
    Contracts[contracts]:::peer
    Resources[resources]:::peer

    GW -->|/pm| Backend
    CI -->|REST| Backend
    Backend -->|REST| Projects
    Backend -->|REST| Contracts
    Backend -->|REST| Resources
    Backend --> PG
    Celery -->|broker| Redis
    Backend -->|cache| Redis
    Backend -. JWT .-> KC

    classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
    classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
    classDef data fill:#10b981,stroke:#065f46,color:#fff
    classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
    classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
    classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
    style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
```
