Skip to content

Diagrams

Fetching variables from an external variable provider

sequenceDiagram
    box Client
    participant workload as Application
    participant ezoidc as ezoidc CLI
    end

    box https://test.ezoidc.dev
    participant ezoidc-server
    participant auth as server/auth.go
    participant OPA
    participant providers
    end



    Note over workload,ezoidc: EZOIDC_TOKEN is set
    workload->>ezoidc: ezoidc variables json
    ezoidc->>ezoidc-server: POST /ezoidc/1.0/variables
    ezoidc-server->>auth: Validate token

    auth->>ezoidc-server: Validated claims
    note over ezoidc-server,OPA: OPA is given only the variable names at this point
    ezoidc-server->>OPA: Eval _queries.allowed_variables
    OPA->>ezoidc-server: Allowed variable names
    ezoidc-server->>providers: Fetch value of allowed variables
    providers<<->>AWS SSM: GetParameters in batches<br>of 10 variables
    providers->>ezoidc-server: Variables values
    note over ezoidc-server,OPA: OPA is given allowed variable values
    ezoidc-server->>OPA: Eval _queries.variables_response
    OPA->>ezoidc-server: Variables & definitions
    ezoidc-server->>ezoidc: Variables response
    ezoidc->>workload: Parse JSON and<br>use variables