Sari la conținut

Configurare

eocube citește un singur fișier de configurare, în stil kubectl. Acesta conține surse de autentificare, definiții de stocare (storage), endpoint-uri stac, setări mcp și contexte care le leagă pe toate. O opțiune globală --context selectează contextul folosit de o comandă.

Locația fișierului

Implicit, fișierul se află la:

~/.config/eocube/eocube.yml

Locația respectă $XDG_CONFIG_HOME (deci $XDG_CONFIG_HOME/eocube/eocube.yml atunci când variabila este setată) și poate fi suprascrisă complet cu variabila de mediu EOCUBE_CONFIG:

export EOCUBE_CONFIG=/cale/catre/eocube.yml

Securitate

Fișierul stochează token-urile tale OIDC de reîmprospătare (refresh), așa că eocube îl creează cu permisiuni sigure — modul 0600 (citire/scriere doar pentru proprietar) într-un director 0700.

Permisiunile prea permisive sunt respinse

Așa cum OpenSSH refuză o cheie privată accesibilă tuturor, eocube refuză să citească fișierul de configurare dacă acesta este accesibil grupului sau altora. Dacă vezi o astfel de eroare, restrânge permisiunile cu chmod 600 ~/.config/eocube/eocube.yml. Păstrarea directorului în siguranță este responsabilitatea ta.

Configurare rapidă

Cel mai rapid început scrie valorile implicite EOCube.Ro și apoi te autentifică:

eocube setup init     # sursa de autentificare + stocarea + catalogul STAC implicite
eocube auth login     # salvează sesiunea în fișier

eocube setup init resetează configurația la valorile implicite ROCS. Cere confirmare înainte de a suprascrie un fișier existent (folosește --force pentru a sări peste confirmare).

Formatul fișierului

O configurație produsă de eocube setup init arată astfel:

authentication:                       # surse de autentificare, denumite
  eocube.ro:
    type: oidc
    oidc:
      discovery_url: https://aai.eocube.ro/realms/rocs/.well-known/openid-configuration
      # refresh_token / offline_refresh_token sunt scrise aici de `auth login`

storage:                              # definiții de stocare, denumite
  rocs-primary-storage-oidc:
    endpoint: https://storage.svc.uvt-01.eocube.ro
    auth:
      type: oidc                      # folosește token-ul OIDC al contextului
      oidc: {}

stac:                                 # endpoint-uri STAC, denumite
  eocube.ro:
    endpoint: https://stac.eocube.ro

mcp:                                  # valori implicite pentru serverul MCP (globale)
  port: 8002
  host: 127.0.0.1
  stateless: false
  allow-destructive: false

context:                              # contextele leagă secțiunile între ele
  primary: eocube.ro                  # contextul implicit
  contexts:
    eocube.ro:
      auth: eocube.ro                 # -> authentication.eocube.ro
      stac: eocube.ro                 # -> stac.eocube.ro
      storage:
        providers:                    # backend-uri de stocare pentru componente (ex. upload)
          default:
            ref: rocs-primary-storage-oidc
          user_storage:
            ref: rocs-primary-storage-oidc
        schemes:                      # rezolvă `storage:scheme` al unui item STAC
          eocube-uvt-01-s3:
            default: true
            ref: rocs-primary-storage-oidc

authentication

Fiecare intrare este o sursă de autentificare denumită. Tipul oidc indică un URL de descoperire (discovery) OpenID Connect; eocube auth login scrie refresh_token / offline_refresh_token rezultate înapoi în sursă.

storage

Backend-uri de stocare de obiecte, denumite — un endpoint plus un bloc auth. Autentificarea poate fi oidc (folosește token-ul OIDC al contextului), ref (reutilizează o sursă de autentificare denumită) sau simple (chei S3 statice).

stac

Endpoint-uri STAC API, denumite. O intrare stac poate avea propria referință auth; când lipsește, se folosește autentificarea contextului.

mcp

Valori implicite globale pentru eocube mcp serve (host, port, stateless, allow-destructive). Această secțiune nu depinde de context.

context

context.primary numește contextul implicit. Fiecare context asociază o sursă de autentificare, un endpoint STAC și stocare. Blocul storage are două părți, ambele folosite de funcționalități adăugate ulterior:

  • providers — backend-uri de stocare denumite, pentru componente precum upload; providerul numit default este folosit când nu se specifică altul.
  • schemes — o mapare folosită pentru a rezolva storage:scheme al unui item STAC către un backend (cel marcat cu default: true).

Construirea manuală

În loc de setup init, poți asambla configurația cu comenzile per-secțiune:

eocube setup auth add --name eocube.ro oidc \
  --discovery-url https://aai.eocube.ro/realms/rocs/.well-known/openid-configuration
eocube setup stac add --name eocube.ro --endpoint https://stac.eocube.ro
eocube setup storage add --name rocs-primary \
  --endpoint https://storage.svc.uvt-01.eocube.ro --auth-ref eocube.ro
eocube setup context add --name eocube.ro \
  --auth eocube.ro --storage rocs-primary --stac eocube.ro --primary

--storage setează providerul de upload default al contextului; --user-storage adaugă un provider user_storage.

Selectarea unui context

Fiecare comandă acceptă opțiunea globală --context pentru a alege contextul; când lipsește, se folosește context.primary:

eocube --context=eocube.ro services geospatialorg get-county-by-name --name Arad

Dacă niciun context nu este configurat, comenzile afișează un mesaj clar care te invită să rulezi eocube setup.

Variabile de mediu

Pentru utilizare headless, în container sau în CI, poți furniza credențiale și endpoint-uri prin variabile de mediu. Acestea au prioritate față de fișierul de configurare, astfel încât notebook-urile, sidecar-urile și runner-ele de CI funcționează fără un eocube.yml:

Variabilă Scop
EOCUBE_ACCESS_TOKEN / ROCS_AAI_ACCESS_TOKEN Un token de acces OIDC explicit
ROCS_AAI_REFRESH_TOKEN Un refresh token, reschimbat într-un token de acces la expirare
EOCUBE_CLIENT_ID + EOCUBE_CLIENT_SECRET Credențiale de client de tip service-account
EOCUBE_CLIENT_SCOPE Scopuri opționale pentru clientul service-account
STAC_API_ENDPOINT Suprascrie endpoint-ul STAC
EOCUBE_CONFIG Calea către fișierul de configurare

Actualizare de la o versiune mai veche

Versiunile mai vechi stocau token-urile în keychain-ul sistemului de operare. Keychain-ul nu mai este folosit — token-urile se află acum în eocube.yml. După actualizare, rulează o dată eocube auth login pentru a-ți recrea sesiunea.