Files
csbot-prototype/.env.example
T
JiriUhlir 22dda2d139 Struktura podle zasad: rozdeleni souboru, lint, testy, prisny TypeScript
Projekt srovnan se zasadami v D:\GitHubRepository\CLAUDE.md bez zmeny chovani.

Struktura: scripts/ (skripty konektoru) -> connectors/, src/scripts ->
src/runtime/scripts; src/index.ts jen startuje, novy src/app.ts s createApp();
routes/dashboard.ts a routes/settings.ts rozdeleny do slozek; openapi.ts
rozdelen na openapi/{index,helpers,components} a paths/* (98 cest overeno
shodnych); ticketStore, automationStore a services jsou fasady nad slozkami
data/tickets, data/automations a data/services/catalog. process.env se cte
jen v config.ts. Web: hooky v hooks/, sdilena ui/Table a ui/ServiceIcon,
surove inputy nahrazeny komponentami, sedm velkych souboru rozdeleno.

Nastroje: eslint (typescript-eslint, react-hooks v7), prettier, editorconfig,
nvmrc, .env.example, vitest; skripty lint, format, test. Lint je cisty bez
jedineho eslint-disable (nove hooky useLatest a useSyncFromSource, odvozeny
stav misto setState v effectu). noUncheckedIndexedAccess v obou tsconfig,
84 mist zuzeno bez non-null operatoru; odhalilo zalohu backoffu fronty pri
nule pokusu a Retry-After NaN pri max 0. Cely kod naformatovan prettierem.

Testy: 8 souboru, 105 testu (prava, viditelnost, podminky a opakovani
v executoru, redaktor tajemstvi, sitove guardy, migrace resitelu, tickety,
health a prihlaseni pres supertest). Testy odhalily dve chyby ve vyhodnoceni
podminek, obe opravene: chybejici castka se porovnavala jako nula a podminka
nad vystupem druheho kroku cetla hodnotu prvniho se stejnym nazvem.

Pojmenovane konstanty misto magickych hodnot, ctx.util.base64 pro skripty
konektoru, README a dokumentace aktualizovany vcetne znamych odchylek.
2026-09-09 15:11:02 +02:00

67 lines
2.7 KiB
Bash

# Promenne prostredi aplikace. Zkopirovat do .env (ten je mimo git) nebo
# nastavit v AppFactory jako variables a secrets. Vsechny se ctou jen
# v src/config.ts. Zadna neni povinna: aplikace nastartuje i bez nich,
# jen s omezenim popsanym u kazde.
# --- beh a proxy ---------------------------------------------------------
# Port urcuje AppFactory sablona, nemenit bez upravy metadat.
PORT=3000
# Prefix verejne adresy za Caddy, napr. /apps/csbot-prototype.
ROOT_PATH=
# Verejna adresa bez prefixu, napr. https://services.csbot.cz. Sklada se z ni
# absolutni adresa webhooku. Prazdne = relativni tvar.
PUBLIC_ORIGIN=
# Povolene originy CORS pro lokalni vyvoj s Vite.
CORS_ORIGIN=http://localhost:5173,http://localhost:4173
NODE_ENV=development
# --- prihlaseni (secret) -------------------------------------------------
# Bez JWT_SECRET se vygeneruje nahodny klic platny do restartu, tokeny pak
# po restartu neplati.
JWT_SECRET=
JWT_EXPIRES_IN=8h
# --- uloziste ------------------------------------------------------------
# Postgres, napr. postgres://user:pass@host:5432/csbot. Prazdne = soubor.
DATABASE_URL=
# Klic pro sifrovani pristupovych udaju konektoru (secret). Bez nej se
# konektory neukladaji do databaze. Generovani viz documentation/14-databaze.md.
SECRETS_KEY=
DATABASE_POOL_MAX=10
DATABASE_SSL=false
# Slozka pro JSON bez databaze. Prazdna hodnota = jen pamet procesu.
DATA_DIR=./data
# 1 = nasypat ukazkove tickety do prazdneho uloziste.
SEED_DEMO=
# --- znacka --------------------------------------------------------------
BRAND_NAME=WorkNuke
# Klient cte VITE_BRAND_NAME pri buildu (staticky soubor).
VITE_BRAND_NAME=WorkNuke
# --- skripty konektoru a volani ven --------------------------------------
# Slozka se skripty konektoru, vychozi ./connectors.
SCRIPTS_DIR=
# Zaklad adres napojenych sluzeb; konkretni sluzba jde presmerovat pres
# <KONEKTOR>_BASE_URL (nazev promenne je v katalogu sluzby).
SERVICES_BASE_URL=https://services.csbot.cz/apps
# Odkud se zjistuje odchozi IP containeru. Prazdne = vypnuto.
EGRESS_IP_URL=https://api.ipify.org?format=json
EGRESS_IP_TTL_MS=600000
SCRIPT_TIMEOUT_MS=15000
SCRIPT_MAX_RESPONSE_BYTES=1000000
SCRIPT_MAX_UPLOAD_BYTES=10000000
SCRIPT_MAX_VALUE_BYTES=256000
SCRIPT_ERROR_DETAIL_BYTES=8000
# true jen pro lokalni vyvoj: povoli volani na localhost a privatni rozsahy.
ALLOW_PRIVATE_TARGETS=false
# Registr ARES pro zalozeni firmy. Menit jen pro testovaci zrcadlo.
ARES_BASE_URL=https://ares.gov.cz/ekonomicke-subjekty-v-be/rest
# --- fronta a planovac ---------------------------------------------------
# 0 = tento proces frontu nezpracovava (jen prijima). Cokoliv jineho = ano.
WORKER=1
SCHEDULER_INTERVAL_SEC=30
# Pevny token ukazkove webhookove automatizace (jen pro test).
WEBHOOK_TOKEN_TEST=