Skip to content

Konfigurace

LukasSykora edited this page Jul 20, 2026 · 1 revision

API base URL

Klient používá injection token METACHECK_API_BASE_URL. Hodnota se skládá při startu aplikace z globální konfigurace v prohlížeči:

var METACHECK_GLOBAL = {
  apiUrl: '/api',
};

Soubor je načítaný z:

assets/shared/globals.js

Klient z hodnoty apiUrl odstraní případné koncové lomítko a automaticky přidá /rest/v1. Výchozí hodnota je tedy:

/api/rest/v1

Pokud window.METACHECK_GLOBAL.apiUrl není nastavené, použije se výchozí hodnota /api.

Příklady:

apiUrl v globals.js Výsledná base URL klienta
/api /api/rest/v1
https://metacheck.example.org/api https://metacheck.example.org/api/rest/v1
https://metacheck.example.org/metacheck https://metacheck.example.org/metacheck/rest/v1

Vývojová proxy

Lokální vývojový server se spouští příkazem:

npm run start

Skript používá Angular proxy konfiguraci:

{
  "/api": {
    "target": "https://metacheck.inovatika.dev",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true
  }
}

Lokální volání klienta na /api/rest/v1/... se tedy při vývoji přepošlou na:

https://metacheck.inovatika.dev/api/rest/v1/...

Pokud má vývoj používat jiný backend, upravuje se target v proxy.conf.json. globals.js může zůstat s hodnotou /api.

Produkční reverse proxy

Doporučené produkční nasazení je vystavit klienta i API pod stejnou doménou a API schovat za reverse proxy. Klient potom zůstává nakonfigurovaný na relativní hodnotu:

var METACHECK_GLOBAL = {
  apiUrl: '/api',
};

Web server musí přeposílat /api/ na backend MetacheckAPI tak, aby výsledná cesta na backendu odpovídala /api/rest/v1/... nebo byla podle potřeby přemapovaná na kontext backendové aplikace.

Příklad pro Nginx:

server {
  listen 80;
  server_name metacheck.example.org;

  root /var/www/metacheck-client;
  index index.html;

  location / {
    try_files $uri $uri/ /index.html;
  }

  location /api/ {
    proxy_pass http://127.0.0.1:8080/api/;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Pokud backend běží pod jiným kontextem, nastaví se proxy_pass podle skutečného nasazení, například:

location /api/ {
  proxy_pass http://127.0.0.1:8080/metacheck/api/;
}

Příklad pro Apache:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ - [S=1]

RewriteRule ^(.+)$ /index.html

ProxyPass /api/ http://127.0.0.1:8080/api/
ProxyPassReverse /api/ http://127.0.0.1:8080/api/

Konfigurace MetacheckAPI pro klienta

Klient při startu volá:

GET /application/clientConfig

Vzhledem k base URL jde při výchozí konfiguraci o:

GET /api/rest/v1/application/clientConfig

MetacheckAPI může klientskou konfiguraci načítat ze souboru nastaveného v metacheck.cfg:

metacheck.client.configPath=./metacheckClient.json

Relativní cesta se vyhodnocuje vůči METACHECK_HOME.

Aktuálně klient používá z odpovědi hlavně přepínač standaloneApp:

{
  "standaloneApp": true
}

Režim standaloneApp

standaloneApp řídí, zda klient běží jako samostatná aplikace pro zakládání dávek, nebo jako klient napojený na externí systém ProArc.

Hodnota Záložka Import Sloupec ProArc ID
true zobrazí se skryje se
false skryje se zobrazí se

Výchozí stav v klientovi je:

{
  "standaloneApp": true
}

Pokud endpoint /application/clientConfig není dostupný nebo vrátí chybu, klient zůstane ve výchozím standalone režimu. To znamená, že záložka Import bude viditelná a sloupec ProArc ID bude skrytý.

Pro nasazení, kde dávky vznikají v ProArcu a uživatel nemá v klientovi zakládat importy, nastavte:

{
  "standaloneApp": false
}

Tím se v horní navigaci skryje záložka Import a v přehledu dávek se zobrazí sloupec ProArc ID (proarcBatchId).

Lokalizace

Klient používá @ngx-translate/core.

Překlady jsou uložené v:

src/assets/i18n/cs.json
src/assets/i18n/en.json

Výchozí a fallback jazyk je čeština:

fallbackLang: 'cs'
lang: 'cs'

Soubory lokalizace jsou součástí buildu a nasazují se pod:

assets/i18n/

Stav dávky

Klient pracuje se stavy:

EMPTY
PLANNED
GENERATING
GENERATED
EDITING
EDITED
STOPPED
FAILED

Detail dávky lze otevřít pouze pro editovatelné stavy:

GENERATED
EDITING
EDITED

Pro ostatní stavy klient zobrazí uživatelskou hlášku a detail neotevře.

Souborová a obrazová data

Klient nezná přímo cesty k obrazům ani ALTO souborům. Vše získává přes MetacheckAPI:

GET /object/image
GET /object/alto

Přípony a fyzické umístění souborů proto zůstávají v konfiguraci backendu:

file.imageExtension=.full.jpg
file.previewExtension=.preview.jpg
file.thumbnailExtension=.thumb.jpg
file.altoExtension=.xml
file.ocrExtension=.txt

Web server

Protože jde o single page aplikaci, web server musí přesměrovat neexistující routy na index.html.

Typické routy klienta:

/
/batches
/batches/{batchId}
/import

Bez rewrite pravidla přestane fungovat přímé otevření detailu dávky nebo refresh prohlížeče na vnořené route.

CORS

Pokud klient a MetacheckAPI běží na rozdílných doménách, musí backend povolit CORS pro doménu klienta. Jednodušší provozní varianta je nasadit klienta i API pod stejnou doménu a API schovat za reverse proxy.

Clone this wiki locally