From f7ad429b3a44289e402597029314a1d9ed1ae7fd Mon Sep 17 00:00:00 2001 From: JiriUhlir <149317995+JiriUhlir@users.noreply.github.com> Date: Wed, 2 Sep 2026 15:02:39 +0200 Subject: [PATCH] Nazev znacky uz neni v kodu natvrdo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Server mel "Automia" napsanou primo v titulku Swaggeru a v OpenAPI - zbytek po prejmenovani, ktere probehlo jen na klientovi. Prejmenovat produkt tedy znamenalo hledat retezec po souborech. Dve promenne, a je to zamer: - server cte BRAND_NAME za behu, vychozi WorkNuke - klient cte VITE_BRAND_NAME pri buildu, vychozi tataz Klient je staticky soubor, takze runtime promenne containeru do prohlizece nedosahnou - proto se u nej dosazuje pri buildu. Obe maji tutéž vychozi hodnotu, takze bez nastaveni cehokoliv sedi. Zbytek firemnich udaju (claim, kontakty, adresa) zustava v brand.ts. Do promennych to nepatri, meni se to jednou za rok a env by z toho udelalo deset promennych, ktere nikdo nenastavi. Co se timhle nemeni: firma Automia v ukazkovych datech. Pozvanka ukazuje jmeno firmy, do ktere zve, a ta se v seedu jmenuje Automia - neni to zbytek po prejmenovani, je to zaznam zakaznika. Overeno: s BRAND_NAME=ZkouskaZnacky ma OpenAPI titulek "ZkouskaZnacky - portal a API" a Swagger "ZkouskaZnacky API". Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 5 +++++ documentation/22-znacka-a-design.md | 17 ++++++++++++++++ documentation/99-zmeny.md | 30 +++++++++++++++++++++++++++++ src/config.ts | 15 +++++++++++++++ src/index.ts | 2 +- src/openapi.ts | 2 +- web/src/config/brand.ts | 18 ++++++++++++++--- 7 files changed, 84 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8ae8a25..00a5cad 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,11 @@ Verejne pres proxy jako `/apps//health` a `/apps//docs`. | `JWT_EXPIRES_IN` | ne | 8h | Platnost tokenu | | `PUBLIC_ORIGIN` | ne | prazdne | Verejna domena pro absolutni adresy webhooku | | `CORS_ORIGIN` | ne | localhost | Povolene originy, jen pro lokalni vyvoj | +| `BRAND_NAME` | ne | WorkNuke | Nazev produktu v titulku Swaggeru a OpenAPI | + +Klient je staticky soubor, takze runtime promenne containeru do prohlizece +nedosahnou. Nazev znacky si bere z `VITE_BRAND_NAME` **pri buildu**, jinak +z vychozi hodnoty v `web/src/config/brand.ts`. Secrets se nikdy nelogují ani neukladaji do kodu. diff --git a/documentation/22-znacka-a-design.md b/documentation/22-znacka-a-design.md index 477fac6..335e12b 100644 --- a/documentation/22-znacka-a-design.md +++ b/documentation/22-znacka-a-design.md @@ -12,11 +12,28 @@ pismo a znak, a co se pri prejmenovani menit nesmi. | Barvy, pismo, utility | `web/src/index.css` | | Znak a slovni znacka | `web/src/components/layout/Logo.tsx` | | Nazev, kontakty, claim | `web/src/config/brand.ts` | +| Nazev na serveru | `BRAND_NAME`, vychozi v `src/config.ts` | | Titulek a fonty stranky | `web/index.html` | Zmena barevnosti celeho webu i portalu je zmena hodnot v `index.css`. Web i portal stoji na tychz tokenech, takze se projevi naraz na obojim. +### Nazev je na dvou mistech, a je to zamer + +Klient je staticky soubor, takze runtime promenne containeru do prohlizece +nedosahnou. Proto: + +- **server** cte `BRAND_NAME` (vychozi `WorkNuke`) a pouziva ho v titulku + Swaggeru a v OpenAPI, +- **klient** cte `VITE_BRAND_NAME` **pri buildu**, jinak vychozi hodnotu + v `brand.ts`. + +Obe maji tutéž vychozi hodnotu, takze bez nastaveni cehokoliv sedi. + +**Pozor na zamenu s firmou v datech.** Pozvanka ukazuje jmeno firmy, do ktere +zve, a ukazkova firma se jmenuje Automia. Neni to zbytek po prejmenovani, je +to zaznam zakaznika - zadna promenna znacky ho nemeni. + ## Barvy | Token | Hodnota | K cemu | diff --git a/documentation/99-zmeny.md b/documentation/99-zmeny.md index 06b7abd..0b938f1 100644 --- a/documentation/99-zmeny.md +++ b/documentation/99-zmeny.md @@ -2,6 +2,36 @@ Nejnovejsi nahore. +## 2026-09-02 - Nazev znacky uz neni v kodu natvrdo + +Server mel "Automia" napsanou primo v titulku Swaggeru a v OpenAPI - zbytek po +prejmenovani, ktere probehlo jen na klientovi. Prejmenovat produkt tedy +znamenalo hledat retezec po souborech. + +### Dve promenne, a je to zamer + +| Kde | Promenna | Kdy se dosadi | Vychozi | +| ------ | ----------------- | ------------- | ---------- | +| server | `BRAND_NAME` | za behu | `WorkNuke` | +| klient | `VITE_BRAND_NAME` | pri buildu | `WorkNuke` | + +Klient je **staticky soubor**, takze runtime promenne containeru do prohlizece +nedosahnou - proto se u nej dosazuje pri buildu. Obe maji tutéž vychozi hodnotu, +takze bez nastaveni cehokoliv sedi. + +Zbytek firemnich udaju (claim, kontakty, adresa) zustava v +`web/src/config/brand.ts`. Do promennych to nepatri, meni se to jednou za rok +a env by z toho udelalo deset promennych, ktere nikdo nenastavi. + +### Co se timhle nemeni + +**Firma Automia v ukazkovych datech.** Pozvanka ukazuje jmeno firmy, do ktere +zve, a ta se v seedu jmenuje Automia. Neni to zbytek po prejmenovani, je to +zaznam zakaznika - zadna promenna znacky ho nezmeni a nema. + +Overeno: s `BRAND_NAME=ZkouskaZnacky` ma OpenAPI titulek "ZkouskaZnacky - portal +a API" a Swagger "ZkouskaZnacky API". + ## 2026-09-02 - "Interni chyba serveru" pri zalozeni ticketu Formular noveho ticketu koncil na 500 uz pri vyplnenem samotnem predmetu. diff --git a/src/config.ts b/src/config.ts index c931498..10b8822 100644 --- a/src/config.ts +++ b/src/config.ts @@ -114,6 +114,21 @@ export const config = { */ dataDir: (process.env.DATA_DIR ?? path.join(process.cwd(), 'data')).trim(), + // --------------------------------------------------------------- znacka + + /** + * Nazev produktu. Prejmenovani = zmena teto promenne, nic jineho. + * + * Server ho pouziva v titulku Swaggeru a v OpenAPI. Klient ma svoje + * `web/src/config/brand.ts`, ktere cte `VITE_BRAND_NAME` - dosadi se pri + * buildu, protoze do prohlizece runtime promenne containeru nedosahnou. + * + * Pozor na zamenu: firma **Automia v ukazkovych datech** je zaznam + * zakaznika, ne znacka. V pozvance se ukazuje jmeno firmy, do ktere + * pozvanka zve, a to se timhle nemeni. + */ + brandName: (process.env.BRAND_NAME ?? 'WorkNuke').trim() || 'WorkNuke', + // ------------------------------------------------------- skripty konektoru /** diff --git a/src/index.ts b/src/index.ts index f912d04..ca15246 100644 --- a/src/index.ts +++ b/src/index.ts @@ -125,7 +125,7 @@ api.get('/whoami', (req, res) => { */ const openApiDocument = buildOpenApiDocument(); const swaggerOptions: swaggerUi.SwaggerUiOptions = { - customSiteTitle: 'Automia API', + customSiteTitle: `${config.brandName} API`, swaggerOptions: { persistAuthorization: true }, }; diff --git a/src/openapi.ts b/src/openapi.ts index 677de03..4164682 100644 --- a/src/openapi.ts +++ b/src/openapi.ts @@ -118,7 +118,7 @@ export function buildOpenApiDocument() { return { openapi: '3.0.3', info: { - title: 'Automia - portal a API', + title: `${config.brandName} - portal a API`, version: '1.0.0', description: 'Webova prezentace a klientsky portal. Automatizace, voiceboti, integrace, ' + diff --git a/web/src/config/brand.ts b/web/src/config/brand.ts index c960eb8..2b0719e 100644 --- a/web/src/config/brand.ts +++ b/web/src/config/brand.ts @@ -1,10 +1,22 @@ /** * Jedine misto s firemnimi udaji a texty, ktere se opakuji na webu. - * Prejmenovani firmy = zmena tady (viz docs/03-frontend.md). + * + * Nazev jde prebit promennou buildu, zbytek se meni tady. Server ma svoji + * `BRAND_NAME` v `src/config.ts` - jsou to dve promenne, protoze klient je + * staticky soubor a runtime promenne containeru do prohlizece nedosahnou. */ +/** + * Nazev z promenne buildu, jinak vychozi. + * + * Runtime promenne containeru se do prohlizece nedostanou, klient je + * staticky soubor - proto `VITE_BRAND_NAME` pri buildu. Server ma svoje + * `BRAND_NAME`, obe maji stejnou vychozi hodnotu. + */ +const name = import.meta.env.VITE_BRAND_NAME?.trim() || 'WorkNuke'; + export const brand = { - name: 'WorkNuke', - legalName: 'WorkNuke s.r.o.', + name, + legalName: `${name} s.r.o.`, claim: 'Konec ruční práce.', description: 'WorkNuke sbírá události ze všech vašich nástrojů, zautomatizuje, co jde, propojí další kroky a zapojí správné lidi, když je potřeba. Vaše práce prostě plyne.',