Ustawienia, konfiguracja i funkcje domenowe platformy Soneta (enova365, Triva)
Skill gromadzi narzędzia i mechanizmy związane z konfiguracją systemu oraz
funkcjami domenowymi platformy Soneta. Zawartość jest rozwijana — poniżej udokumentowane
są wyłącznie mechanizmy faktycznie obecne w skillu; kolejne artykuły dodawane są sukcesywnie.
Kiedy ten skill, a kiedy inny
| Potrzeba |
Skill |
| Budowa pliku XML importu/eksportu danych i ustawień (dbinit.xml, demo, przenoszenie konfiguracji) |
/soneta-config (import-export-xml) |
Inwentaryzacja/mapa folderów statycznych menu ([assembly: FolderView]) z DLL |
/soneta-config (scan-folders) |
Konfiguracja uruchomieniowa (porty, adresy komponentów, warstwy nadpisań appsettings.json) |
/soneta-config (appsettings) |
Rejestr konfiguracji (ConfigReg): providery, *.reg.json, [ConfigReg], merge/diff/zapis |
/soneta-config-reg |
Kod obsługujący import/eksport (SessionReader/SessionWriter), klasy ORM, workery |
/soneta-programming |
Inwentaryzacja modułów/tabel (scan-modules), pól (scan-props), workerów (scan-workers) |
/soneta-programming |
| Operacje na bazie z CLI (dbmgr), test na żywej aplikacji (buscall) |
/soneta-tools |
| Definicja struktury tabel/kolumn/relacji w XML (business.xml) |
/soneta-business-xml |
| Formularze i widoki UI (form.xml) |
/soneta-form-xml |
| Planowanie całego dodatku/modułu |
/soneta-addon-planning |
Artykuły i narzędzia
Import i eksport danych przez XML — references/import-export-xml.md
Struktura i sposób budowania plików XML (<session xmlns="http://www.soneta.pl/schema/business">)
do wczytywania danych i ustawień konfiguracyjnych oraz ich eksportu. Trzy części:
- Import według rekordów (domyślny) — dane wprost do pól rekordów, bez logiki biznesowej;
kolejność pól bez znaczenia; do danych konfiguracyjnych, plików
*.dbinit.xml i bazy demo.
- Import przez logikę biznesową (
business="true") — ustawianie właściwości biznesowych
z pełną walidacją; kolejność elementów jak przy wpisywaniu danych na formularzu.
- Eksport — wskazany rekord guidowany + rekordy powiązane (datapack), wynik zdatny
do ponownego importu; podstawa przenoszenia ustawień między bazami.
Artykuł specyfikuje identyfikację rekordów (GUID, where, key, id), formaty wartości
(liczby, daty, referencje, kwoty z walutą), atrybuty specjalne oraz reguły plików
*.dbinit.xml (priority, versionName, dbversion). Zawiera też gotowy, zweryfikowany
importem przykład (obiekt w modelu „root + historia") —
examples/import-pracownik-etatowy.xml.
Mechanizm zasilania bazy Demo — references/demo-data.md
Jak działa import danych przykładowych przy tworzeniu bazy (dbmgr create --demo gold|silver,
kreator baz): katalog Demo obok binariów (bez manifestu, nierekurencyjnie), kolejność plików
przez sortowanie leksykograficzne (prefiksy numeryczne stałej szerokości, referencje tylko
„w przód"), sufiksy koloru licencji .gold/.silver, GUID-y wstawiane 1:1, rekordy standardowe
(dbinit) przed danymi demo. Z checklistą nowego pliku demo i sposobami testowania
(podwójny importxml / pełne create --demo).
scan-folders — references/scan-folders.md
Buduje drzewo folderów statycznych menu programu z atrybutów assembly
[assembly: FolderView(...)] (oraz pochodnych) w skompilowanych bibliotekach. Klasyfikuje
węzły na listy (ViewInfoType/ViewType/TableName), formularze (ObjectType) i menu;
przy widokach pokazuje Description oraz powiązaną tabelę/ViewInfo. Filtr prefiksem ścieżki
i tryb --flat. Czyta metadane przez Roslyn — bez uruchamiania aplikacji i bez ładowania IL
do CLR. Skrypt: scripts/scan-folders.csx.
Perspektywa funkcjonalno-użytkowa (co użytkownik klika w menu) — komplementarna do
perspektywy danych (scan-modules) i pól (scan-props) ze skilla
/soneta-programming. Planistyczne użycie inwentaryzacji
opisuje /soneta-addon-planning.
Konfiguracja uruchomieniowa appsettings.json — references/appsettings.md
Ustawienia uruchomieniowe komponentów (orchestrator, server, web, webapi, webwcf, router,
commhub): dwa pliki appsettings.json (część back-end i część front-end) i które
komponenty obsługują, mapa domyślnych portów oraz trzy pary adresów, które muszą się
zgadzać (Server:Urls↔ServerEndpoint, Router:Urls↔RouterEndpoint,
CommHub:Urls↔CommHubClient), kolejność warstw nadpisań (plik bazowy → profil systemu
→ nakładka -c → zmienne SONETA_ → argumenty CLI) — źródło najczęstszej pułapki „zmieniłem
appsettings.json, a nic się nie zmieniło" — dwa tryby połączenia frontend→serwer
(bezpośredni vs przez router) oraz słownik znaczeń kluczy. Zawiera checklistę zmiany
portu/adresu.
Uruchamianie komponentów, ramki hostującej i zarządzanie bazami opisuje
/soneta-tools.
Powiązania
- /soneta-programming — warstwa kodu importu/eksportu
(sessionreader-sessionwriter), rekordy guidowane (datapack-guidedrow),
OnImporting/
OnImported (row-types), testy z ImportBusinessXml (integration-tests), skany DLL
(scan-modules, scan-props, scan-workers) oraz pisanie folderów/list w C#.
- /soneta-addon-planning — użycie inwentaryzacji menu
na etapie planowania dodatku.
- /soneta-tools — operacje na bazie z CLI, weryfikacja efektów
importu na żywej aplikacji (buscall).
- /soneta-config-reg — rejestr konfiguracji (ConfigReg):
drugi, niezależny mechanizm przenoszenia ustawień między bazami. XML (
<session>) przenosi
wskazane rekordy; ConfigReg zdejmuje stan konfiguracji jako całość, wykrywa różnice i scala
paczki. Rozłączny kod, rozłączne formaty plików.
- /soneta-erp — mapa wyboru skilla.
1---2name: soneta-config3description: Konfiguracja systemu i funkcje domenowe platformy Soneta (enova365, Triva): (A) IMPORT/EKSPORT DANYCH I USTAWIEŃ przez pliki XML — element session, import według rekordów (business="false", *.dbinit.xml, demo) i przez logikę biznesową (business="true"), eksport datapacku, GUID, formaty wartości; (B) `scan-folders` — inwentaryzacja folderów menu (`[assembly: FolderView]`) z DLL; (C) KONFIGURACJA URUCHOMIENIOWA `appsettings.json` — porty i adresy komponentów (orchestrator/server/web/webapi/router/commhub), kolejność nadpisań (profil systemu, nakładki `-c`, zmienne `SONETA_`, CLI). Używaj gdy użytkownik: (1) buduje lub analizuje XML importu danych (dbinit.xml, dane demo, przenoszenie ustawień); (2) pyta o atrybuty guid/where/key/id/business/deleted/dbversion; (3) eksportuje rekordy guidowane; (4) mapuje menu z DLL lub wpina nowy folder; (5) konfiguruje porty/adresy albo pyta o klucz w `appsettings.json`. Kod importu (SessionReader/SessionWriter) → /soneta-programming; operacje na bazie z CLI → /soneta-tools.4---56# Ustawienia, konfiguracja i funkcje domenowe platformy Soneta (enova365, Triva)78Skill gromadzi narzędzia i mechanizmy związane z **konfiguracją systemu** oraz9**funkcjami domenowymi** platformy Soneta. Zawartość jest rozwijana — poniżej udokumentowane10są wyłącznie mechanizmy faktycznie obecne w skillu; kolejne artykuły dodawane są sukcesywnie.1112## Kiedy ten skill, a kiedy inny1314| Potrzeba | Skill |15|---|---|16| **Budowa pliku XML importu/eksportu danych i ustawień** (dbinit.xml, demo, przenoszenie konfiguracji) | **/soneta-config** ([import-export-xml](references/import-export-xml.md)) |17| Inwentaryzacja/mapa **folderów statycznych menu** (`[assembly: FolderView]`) z DLL | **/soneta-config** ([scan-folders](references/scan-folders.md)) |18| **Konfiguracja uruchomieniowa** (porty, adresy komponentów, warstwy nadpisań `appsettings.json`) | **/soneta-config** ([appsettings](references/appsettings.md)) |19| **Rejestr konfiguracji** (ConfigReg): providery, `*.reg.json`, `[ConfigReg]`, merge/diff/zapis | [/soneta-config-reg](../soneta-config-reg/SKILL.md) |20| Kod obsługujący import/eksport (`SessionReader`/`SessionWriter`), klasy ORM, workery | [/soneta-programming](../soneta-programming/SKILL.md) |21| Inwentaryzacja modułów/tabel (`scan-modules`), pól (`scan-props`), workerów (`scan-workers`) | [/soneta-programming](../soneta-programming/SKILL.md) |22| Operacje na bazie z CLI (dbmgr), test na żywej aplikacji (buscall) | [/soneta-tools](../soneta-tools/SKILL.md) |23| Definicja struktury tabel/kolumn/relacji w XML (business.xml) | [/soneta-business-xml](../soneta-business-xml/SKILL.md) |24| Formularze i widoki UI (form.xml) | [/soneta-form-xml](../soneta-form-xml/SKILL.md) |25| Planowanie całego dodatku/modułu | [/soneta-addon-planning](../soneta-addon-planning/SKILL.md) |2627## Artykuły i narzędzia2829### Import i eksport danych przez XML — [references/import-export-xml.md](references/import-export-xml.md)3031Struktura i sposób budowania plików XML (`<session xmlns="http://www.soneta.pl/schema/business">`)32do wczytywania danych i ustawień konfiguracyjnych oraz ich eksportu. Trzy części:33341. **Import według rekordów** (domyślny) — dane wprost do pól rekordów, bez logiki biznesowej;35 kolejność pól bez znaczenia; do danych konfiguracyjnych, plików `*.dbinit.xml` i bazy demo.362. **Import przez logikę biznesową** (`business="true"`) — ustawianie właściwości biznesowych37 z pełną walidacją; kolejność elementów jak przy wpisywaniu danych na formularzu.383. **Eksport** — wskazany rekord guidowany + rekordy powiązane (datapack), wynik zdatny39 do ponownego importu; podstawa przenoszenia ustawień między bazami.4041Artykuł specyfikuje identyfikację rekordów (GUID, `where`, `key`, `id`), formaty wartości42(liczby, daty, referencje, kwoty z walutą), atrybuty specjalne oraz reguły plików43`*.dbinit.xml` (`priority`, `versionName`, `dbversion`). Zawiera też gotowy, zweryfikowany44importem **przykład** (obiekt w modelu „root + historia") —45[examples/import-pracownik-etatowy.xml](examples/import-pracownik-etatowy.xml).4647### Mechanizm zasilania bazy Demo — [references/demo-data.md](references/demo-data.md)4849Jak działa import danych przykładowych przy tworzeniu bazy (`dbmgr create --demo gold|silver`,50kreator baz): katalog `Demo` obok binariów (bez manifestu, nierekurencyjnie), kolejność plików51przez sortowanie leksykograficzne (prefiksy numeryczne stałej szerokości, referencje tylko52„w przód"), sufiksy koloru licencji `.gold`/`.silver`, GUID-y wstawiane 1:1, rekordy standardowe53(dbinit) przed danymi demo. Z checklistą nowego pliku demo i sposobami testowania54(podwójny `importxml` / pełne `create --demo`).5556### `scan-folders` — [references/scan-folders.md](references/scan-folders.md)5758Buduje drzewo **folderów statycznych menu** programu z atrybutów assembly59`[assembly: FolderView(...)]` (oraz pochodnych) w skompilowanych bibliotekach. Klasyfikuje60węzły na listy (`ViewInfoType`/`ViewType`/`TableName`), formularze (`ObjectType`) i menu;61przy widokach pokazuje `Description` oraz powiązaną tabelę/`ViewInfo`. Filtr prefiksem ścieżki62i tryb `--flat`. Czyta metadane przez Roslyn — bez uruchamiania aplikacji i bez ładowania IL63do CLR. Skrypt: [scripts/scan-folders.csx](scripts/scan-folders.csx).6465Perspektywa **funkcjonalno-użytkowa** (co użytkownik klika w menu) — komplementarna do66perspektywy **danych** (`scan-modules`) i **pól** (`scan-props`) ze skilla67[/soneta-programming](../soneta-programming/SKILL.md). Planistyczne użycie inwentaryzacji68opisuje [/soneta-addon-planning](../soneta-addon-planning/SKILL.md).6970### Konfiguracja uruchomieniowa `appsettings.json` — [references/appsettings.md](references/appsettings.md)7172Ustawienia uruchomieniowe komponentów (orchestrator, server, web, webapi, webwcf, router,73commhub): **dwa pliki** `appsettings.json` (część back-end i część front-end) i które74komponenty obsługują, mapa domyślnych **portów** oraz **trzy pary adresów, które muszą się75zgadzać** (`Server:Urls`↔`ServerEndpoint`, `Router:Urls`↔`RouterEndpoint`,76`CommHub:Urls`↔`CommHubClient`), **kolejność warstw nadpisań** (plik bazowy → profil systemu77→ nakładka `-c` → zmienne `SONETA_` → argumenty CLI) — źródło najczęstszej pułapki „zmieniłem78`appsettings.json`, a nic się nie zmieniło" — dwa tryby połączenia frontend→serwer79(bezpośredni vs przez router) oraz słownik znaczeń kluczy. Zawiera checklistę zmiany80portu/adresu.8182Uruchamianie komponentów, ramki hostującej i zarządzanie bazami opisuje83[/soneta-tools](../soneta-tools/SKILL.md).8485## Powiązania8687- [/soneta-programming](../soneta-programming/SKILL.md) — warstwa kodu importu/eksportu88 (*sessionreader-sessionwriter*), rekordy guidowane (*datapack-guidedrow*), `OnImporting`/89 `OnImported` (*row-types*), testy z `ImportBusinessXml` (*integration-tests*), skany DLL90 (`scan-modules`, `scan-props`, `scan-workers`) oraz pisanie folderów/list w C#.91- [/soneta-addon-planning](../soneta-addon-planning/SKILL.md) — użycie inwentaryzacji menu92 na etapie planowania dodatku.93- [/soneta-tools](../soneta-tools/SKILL.md) — operacje na bazie z CLI, weryfikacja efektów94 importu na żywej aplikacji (buscall).95- [/soneta-config-reg](../soneta-config-reg/SKILL.md) — **rejestr konfiguracji (ConfigReg)**:96 drugi, niezależny mechanizm przenoszenia ustawień między bazami. XML (`<session>`) przenosi97 wskazane rekordy; ConfigReg zdejmuje stan konfiguracji jako całość, wykrywa różnice i scala98 paczki. Rozłączny kod, rozłączne formaty plików.99- [/soneta-erp](../soneta-erp/SKILL.md) — mapa wyboru skilla.