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.
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# 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=
|
||||
Reference in New Issue
Block a user