Skip to content
Back to skills

Config

ASecurity

Konfiguracja i funkcje domenowe platformy Soneta (enova365, Triva) — dla partnerów i zespołu Soneta: (A) IMPORT/EKSPORT DANYCH I USTAWIEŃ przez XML — element session, import według rekordów (*.dbinit.xml, demo) i przez logikę biznesową (business="true"), eksport datapacku, GUID; (B) `scan-folders` — foldery menu (`[assembly: FolderView]`) z DLL; (C) KONFIGURACJA URUCHOMIENIOWA `appsettings.json` — porty i adresy, warstwy nadpisań (`-c`, `SONETA_`, CLI); (D) REJESTR KONFIGURACJI (ConfigReg, „Z...

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
developmentgoc#nodeapifrontend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add soneta/soneta-erp-skills --skill config --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Config?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Config
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/soneta-config/badge)](https://www.skillsdirectory.com/skills/soneta-config)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: config
description: >
  Konfiguracja i funkcje domenowe platformy Soneta (enova365, Triva) — dla partnerów i zespołu Soneta:
  (A) IMPORT/EKSPORT DANYCH I USTAWIEŃ przez XML —
  element session, import według rekordów (*.dbinit.xml, demo) i przez logikę biznesową
  (business="true"), eksport datapacku, GUID; (B) `scan-folders` — foldery menu
  (`[assembly: FolderView]`) z DLL; (C) KONFIGURACJA URUCHOMIENIOWA `appsettings.json` — porty i adresy,
  warstwy nadpisań (`-c`, `SONETA_`, CLI); (D) REJESTR KONFIGURACJI (ConfigReg,
  „Zarządzanie konfiguracją") — zrzut konfiguracji bazy do `*.reg.json`, porównanie i scalanie,
  sigile (`$strict`, `$v`, `#klucz`, `@atrybut`). Używaj gdy użytkownik: (1) buduje XML importu,
  pyta o atrybuty guid/where/key/id/business/deleted/dbversion; (2) eksportuje rekordy guidowane;
  (3) mapuje menu z DLL; (4) pyta o klucz `appsettings.json`; (5) pyta o rejestr konfiguracji,
  debuguje `*.reg.json` albo przenosi ustawienia między bazami. Kod importu → /soneta:programming;
  operacje na bazie z CLI → /soneta:tools.
---

# 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](references/import-export-xml.md)) |
| **Gotowy wzorzec pliku importu** dla typowego obiektu (słownik, definicja, rola, cecha, szablon, kokpit) | **/soneta:config** ([import-xml-examples](references/import-xml-examples.md)) |
| Inwentaryzacja/mapa **folderów statycznych menu** (`[assembly: FolderView]`) z DLL | **/soneta:config** ([scan-folders](references/scan-folders.md)) |
| **Konfiguracja uruchomieniowa** (porty, adresy komponentów, warstwy nadpisań `appsettings.json`) | **/soneta:config** ([appsettings](references/appsettings.md)) |
| **Rejestr konfiguracji** (ConfigReg): `*.reg.json`, porównanie i scalanie ustawień między bazami | **/soneta:config** ([config-reg](references/config-reg.md)) |
| Kod obsługujący import/eksport (`SessionReader`/`SessionWriter`), klasy ORM, workery | [/soneta:programming](../programming/SKILL.md) |
| Inwentaryzacja modułów/tabel (`scan-modules`), pól (`scan-props`), workerów (`scan-workers`) | [/soneta:programming](../programming/SKILL.md) |
| Operacje na bazie z CLI (dbmgr), test na żywej aplikacji (buscall) | [/soneta:tools](../tools/SKILL.md) |
| Definicja struktury tabel/kolumn/relacji w XML (business.xml) | [/soneta:business-xml](../business-xml/SKILL.md) |
| Formularze i widoki UI (form.xml) | [/soneta:form-xml](../form-xml/SKILL.md) |
| Planowanie całego dodatku/modułu | [/soneta:addon-planning](../addon-planning/SKILL.md) |

## Artykuły i narzędzia

### Import i eksport danych przez XML — [references/import-export-xml.md](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:

1. **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.
2. **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.
3. **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](examples/import-pracownik-etatowy.xml).

### Katalog wzorców importu XML — [references/import-xml-examples.md](references/import-xml-examples.md)

Wzorce wyniesione z kilkuset standardowych plików `*.dbinit.xml` platformy: nagłówek i piętra
`priority`, strukturalne GUID-y, trzy formy referencji (`GUID`, `Tabela:GUID`, `id` z pliku),
patch rekordu w kolejnej wersji (`updateonly`), `insertonly`, `key`, `duplicate`/
`duplicateKeyField`, semantyka pustych elementów, kod C#/HTML/XML w treści pola. Szkielety dla
typowych obiektów: słowniki, definicje dokumentów i zadań, cechy, szablony e-mail, konfiguracja
(`CfgNode`), role systemowe i prawa (`Right`), projekty runtime, kokpity, tuple. Pliki
w [examples/](examples/): `dbinit-slownik-i-poprawki.dbinit.xml`, `import-rola-i-prawa.xml`,
`import-cecha-i-szablon-email.xml`, `import-definicja-elementu-wynagrodzenia.xml` (kreator
algorytmu i edytor z kodem C#; parametry algorytmu → [/soneta:place-def-elementow](../place-def-elementow/SKILL.md)).

### Mechanizm zasilania bazy Demo — [references/demo-data.md](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](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](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](../programming/SKILL.md). Planistyczne użycie inwentaryzacji
opisuje [/soneta:addon-planning](../addon-planning/SKILL.md).

### Konfiguracja uruchomieniowa `appsettings.json` — [references/appsettings.md](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](../tools/SKILL.md).

### Rejestr konfiguracji (ConfigReg) — [references/config-reg.md](references/config-reg.md)

Zrzut **całej konfiguracji bazy** do jednego drzewa zapisywanego jako `*.reg.json`, który da się
porównać z inną bazą, scalić i wgrać z powrotem (menu **Narzędzia → Zarządzanie konfiguracją**).
Artykuł opisuje pięć operacji formularza, zakres rejestru (co wchodzi, a co zostaje poza nim —
w tym pola wrażliwe), format pliku wraz z sigilami (`$strict`, `$v`, `#klucz`, `@atrybut`,
`$blob`), składnię ścieżek węzłów, semantykę kolekcji `$strict` (**usuwa** wiersze nieobecne
w pliku) oraz diagnostykę najczęstszej pułapki — wiersza pokazywanego jednocześnie jako usunięty
i dodany. Zawiera dwie checklisty: przeniesienie ustawień między bazami i kroki przed scaleniem
do bazy operacyjnej.

**Nie myl dwóch mechanizmów przenoszenia ustawień.** XML (`<session>`, `*.dbinit.xml`) przenosi
*wskazane rekordy* i nie wykrywa różnic. Rejestr zdejmuje *stan konfiguracji jako całość*,
porównuje i scala. Formaty plików są rozłączne — kryterium wyboru i porównanie w tabeli na
początku artykułu.

## Powiązania

- [/soneta:programming](../programming/SKILL.md) — 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](../addon-planning/SKILL.md) — użycie inwentaryzacji menu
  na etapie planowania dodatku.
- [/soneta:tools](../tools/SKILL.md) — operacje na bazie z CLI, weryfikacja efektów
  importu na żywej aplikacji (buscall).
- [/soneta:business-xml](../business-xml/SKILL.md) — definicja tabel i kolumn, w tym
  oznaczanie tabeli jako konfiguracyjnej, co decyduje o jej obecności w rejestrze konfiguracji.
- [/soneta:erp](../erp/SKILL.md) — mapa wyboru skilla.

Files in this skill

  • SKILL.md8.5 KB
  • examples/aktualizacja-historyczna-stawka.xml1.9 KB
  • examples/import-pracownik-etatowy.xml4.7 KB
  • references/appsettings.md14 KB
  • references/config-reg.md11.4 KB
  • references/demo-data.md3.5 KB
  • references/import-export-xml.md31.4 KB
  • references/scan-folders.md7.8 KB
  • scripts/scan-folders.csx12.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.