NOVERA.Software

03 · Architektura

Jedna aplikace, čtyři vrstvy.

Rozhraní

Razor PagesBez frameworkuBez kroku sestaveníDesign tokeny21 sdílených ovládacích prvků5 jazykůMobile-first

Moduly

Hlavní kniha a závazky/pohledávkyBankaDPHSestavyInvesticeDocument AIE-mailZprávyPlánovačPoznámkyOznámení

Služby

Účtovací jádroFinanční úložištěVýpočet DPHÚložiště sestavInvestiční výpočetní jádroDoplňování dokladůFXPřeklad82 služeb

Data

SQL ServerHQFLAUEUJazykový katalogRučně psané SQLVázané parametryBez ORM

AI brána

  • Jedna služba pro každé volání
  • Claude Sonnet 4.5 jako výchozí model
  • Klíč pouze z proměnné prostředí
  • Klíč ani obsah požadavků se nezapisují do logu

Externí služby

  • Směnné kurzy ECB
  • Zdroj tržních cen
  • Transakční e-maily
  • SMS brána
  • Web Push

Na pozadí

  • Kontrola připomínek
  • Doručování oznámení
  • Třídění doručené pošty
  • Vyhledávač faktur

Popis platformy

Architektura platformy

NOVERA je jedna aplikace ASP.NET Core 8 postavená na Razor Pages a nasazovaná jako jediné sestavení (assembly); pod povrchem je udržována jednoduchá. Přibližně 320 souborů C# a Razor obsahuje zhruba 182 000 řádků aplikačního kódu, doplněných 82 službami a asi 22 000 řádky stylů.

Dvě volby určují vše ostatní.

  • Projekt obsahuje právě jeden odkaz na balíček a žádný nový balíček nesmí být přidán.
  • V celém řešení není žádný objektově-relační mapper, žádný front-endový framework ani žádný krok sestavení.

Přístup k datům. Veškeré SQL je psáno ručně, v doslovných interpolovaných řetězcích s typovanými, vázanými parametry všude. Jediný odkaz na balíček existuje kvůli klientské knihovně SQL, kterou s sebou přináší; projekt nepoužívá žádný mapper.

  • Přínos: každý příkaz, který systém vydá, lze přečíst, vysvětlit a vyladit. To je velmi důležité u dvacet let staré hlavní knihy s neobvyklými konvencemi.
  • Cena: správnost stojí na disciplíně místo na frameworku, a proto existuje sada kontrolních bran popsaná v části Vývoj.

Front-end. Čisté HTML a CSS s přibližně tuctem malých modulů v čistém JavaScriptu a bez bundleru.

  • Tokenový styl definuje paletu, rozestupy a zaoblení; aplikační styl na něm staví; třetí soubor obsahuje zlomové body a nikdy nic nepřebarvuje.
  • Dvacet jedna sdílených Razor partials slouží jako opakovaně použitelné ovládací prvky (stránkování, otočná karta, panel s rozpadem, prohlížeč dokumentů, editor polí, štítek účetní jednotky, editor formátovaného textu a další), takže pravidlo je stanoveno na jednom místě a všude se dědí.
  • Vzhled tvoří tmavě námořnická modř a zlatá s typografií hostovanou na vlastním serveru, rozvržení je mobile-first v pěti pojmenovaných pásmech šířky obrazovky, vždy je viditelná jediná navigační plocha a dotykové cíle mají čtyřicet osm pixelů.

Jazyky a práce na pozadí. Rozhraní hovoří pěti jazyky; 3 196 klíčů se mění společně jako jeden balík a názvy uložené v databázi se překládají přes překladač s mezipamětí místo nového zadávání klíčů. Uvnitř aplikace běží čtyři služby na pozadí: připomínky, oznámení, třídění e-mailů a vyhledávač faktur.

Zabezpečení se drží stejné konzervativní linie:

  • ověřování založené na cookie, s účetní jednotkou předávanou jako claims;
  • hesla hashovaná algoritmem PBKDF2-SHA256 s 210 000 iteracemi;
  • přihlašování s omezenou četností pokusů a relace, které vyprší po dvou hodinách;
  • každé tajemství v systémové proměnné prostředí, nikdy v souboru obsluhovaném webem;
  • nedůvěryhodné HTML sanitizované všude, kde se vykresluje;
  • veškerá diagnostika SQL spouštěná proti produkčním katalogům podle pravidla pouze pro čtení.