Informacje o wersji 1.15.7.0
z dn. 24-06-2026
W tej wersji
- Zmiany w obszarze komponentów nAxiom
- Nowe i rozszerzone funkcjonalności
- Zmiany istniejących funkcjonalności
- Rozwiązane problemy
Wymagane działania
- Zmiana algorytmów szyfrujących :
W związku ze zmianą algorytmu szyfrującego w nAxiom na SHA256 przed aktualizacją do wersji 1.15.7 należy obowiązkowo wykonać kopię zapasową bazy danych.
Kompatybilność aplikacji
Migracja aplikacji jest możliwa tylko między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20260612113941
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji wymagane jest zaktualizowanie środowiska źródłowego.
Komponenty nAxiom
1. Kendo i Angular
Zaktualizowano szereg podstawowych komponentów oprogramowania używanych w nAxiom, w tym Kendo (do wer. 23.4.0) i Angular (do wer. 21.2.17). Zaktualizowano także szereg innych bibliotek, np. monaco-editor, dragula itd.
W wyniku tych aktualizacji lub w związku z nimi w interfejsie użytkownika końcowego we Front SPA zaszły następujące zmiany:
- wygląd niektórych elementów interfejsu użytkownika (np. strona logowania),
- zmianie uległ kolor nagłówków oraz czcionek w listach. Dla wszystkich list migracja ustawia jasny nagłówek list (#f7f7f9) oraz ciemną czcionkę (#181821),
- w widoku listy kliknięcie nagłówka kolumny włącza/zmienia sortowanie, kliknięcie wielokropka rozwija okienko filtrów,
- na listach systemowych we Front SPA dodano opcję zmiany szerokości kolumn oraz tryb zmiany (nie dotyczy list hierarchicznych); ponadto dodano zapamiętywanie stanu listy w pamięci sesji oraz przywracanie ustawień domyślnych,
- we właściwościach kontrolki edytor tekstu dodano opcję zmiany wielkości punktora w listach punktowanych i numerowanych; po włączeniu punktory dostosowują się do zmiany rozmiaru czcionki,
- we właściwościach kontrolki edytor tekstu dodano opcję
Drukuj; po jej włączeniu w na pasku narzędzi kontrolki (we FrontSPA) będzie widoczna ikona drukowania zawartości kontrolki.
W ramach zadania poprawiono także błędy:
- oznaczanie wartości w stopce gwiazdką (niezapisane zmiany) po zmianie filtrów, która powodowała przeliczenie zagregowanych wartości,
- niedziałający zapis konfiguracji listy osadzonej na formularzu
2. Lista komponentów nAxiom (SBOM)
Wprowadzono procedurę ciągłego monitorowania listy komponentów programowych nAxiom (SBOM) pod kątem wykrywanych podatności w celu maksymalizacji bezpieczeństwa użytkowników platformy. Dla zidentyfikowanych podatności wprowadzane są odpowiednie środki zaradcze: instalacja wersji zawierającej poprawki lub wymiana komponentu na inny. W każdym przypadku przeprowadzana jest analiza realnego zagrożenia w konkretnych scenariuszach użytkowania nAxiom.
W ramach zadania wyeliminowano szereg podatności. Przykładem wymiany komponentu może być zmiana komponentu odpowiedzialnego za mechanizm eksportu i importu z plików Microsoft Excel; zmiana ma wpływ na akcje importu i eksportu do Excel, a także funkcje eksportu użytkowników (Front SPA) oraz eksportu szablonu użytkowników i importu użytkowników (Admin SPA > Ustawienia systemowe).
3. WCAG i motywy
Po aktualizacji głównych komponentów programowych używanych w aplikacjach frontowych (Kendo i Angular) przeprowadzono audyt zgodności interfejsu użytkownika z wytycznymi WCAG na poziomie 2.2 AA oraz poprawiono zidentyfikowane odstępstwa. W ramach zmian, między innymi:
- Ustawiono atrybut autocomplete=on w kontrolce z filtrami nad widokiem listy oraz w kontrolkach formularza z polem wprowadzania; do tej pory ten atrybut był wyłączony.
- Zastąpiono statyczny tytuł strony (nAxiom) przez tytuł dynamiczny złożony z części stałej “nAxiom”, nazwy aktywnej aplikacji (o ile tryb pojedynczej aplikacji jest włączony) oraz bieżącego miejsca w aplikacji (w przypadku formularzy jest to etykieta z formularza, dla pozostałych miejsc ich nazwy).
- Rozbudowano kreator stylów o możliwość utworzenia trzech rodzajów motywów (jasny, ciemny oraz wysoki kontrast). W nowej wersji, oprócz dotychczasowego jasnego motywu, są dostępne jeszcze dwa: dwa domyślny motyw ciemny oraz motyw z wysokim kontrastem. Do zmiany motywu służy kontrolka dodana we Front SPA na belce górnej (obok zmiany wielkości czcionki).
- Dodano nową opcję dla ustawień przycisków - styl według ustawień własnych lub kreatora stylów. Opcja wg kreatora stylów jest teraz domyślną opcją dla nowych obiektów. Opcja ta ustawia kolory na przyciskach zgodnie z wybranym motywem. Wystarczy wybrać paletę, aby po przełączaniu motywu do ustawienia stylu przycisku był pobierany kolor z tej palety.
- Dostosowano style komunikatów systemowych do wybranego motywu.
Nowe i rozszerzone funkcjonalności
1. Uprawnienie ACL create
Funkcjonalność uprawnień ACL rozszerzono o uprawnienie do tworzenia instancji dokumentu. Uprawnienie można przypisać do ról biznesowych w szablonie uprawnień dla instancji, wybierając rolę na liście wielowyboru. W przypadku wskazania kilku ról, wystarczy, że użytkownik będzie miał dowolną z nich. Jeśli żadna rola nie zostanie wybrana, każdy użytkownik będzie mógł utworzyć nowy dokument.
Uprawnienie obejmuje wszystkie przypadki tworzenia dokumentu w nAxiom, to jest przez wyświetlenie pustego formularza (z widoku listy lub menu), w trybie edycji inline, poprzez akcję importu dokumentów, żądanie do internal API i Public API oraz w podprocesie synchronicznym i asynchronicznym. Ponadto uprawnienie obejmuje możliwość utworzenia dokumentu wraz z załącznikami: nie jest już wymagane posiadanie uprawnień U na pierwszym statusie, aby można było utworzyć dokument z załącznikami.
Wskazówka
Utworzenie dokumentu z załącznikami jest objęte transakcją; jeśli utworzenie dokumentu nie powiedzie się, załączniki nie zostaną dodane.
Próba utworzenia nowego dokumentu bez uprawnień spowoduje zalogowanie wpisu w logu serwisu API, a w przypadku operacji wywoływanych w interfejsie użytkownika, także wyświetlenie komunikatu.
Użytkownik system (procesy automatyczne) zawsze może utworzyć dokument.
2. Tryby generowania widoku listy
Z myślą o poprawie wydajności list dodano dwa tryby wykonywania zapytania źródłowego listy. Można je wybierać na karcie Ustawienia listy z listy rozwijanej Sposób budowy zapytania SQL. Lista jest dostępna tylko dla trybu Server side i zawiera trzy pozycje:
-
Podstawowy: (dotychczasowy) Zapytanie użytkownika jest wbudowywane osobno w każde podzapytanie (pobieranie danych, liczenie rekordów, obliczanie stopki). Najprostszy tryb w konfiguracji, jednak przy rozbudowanych zapytaniach może generować większe obciążenie bazy danych, ponieważ to samo zapytanie jest wykonywane wielokrotnie. -
CTE: Zapytanie użytkownika jest definiowane raz jako wspólne wyrażenie tabelaryczne (CTE) i współdzielone przez wszystkie podzapytania (dane, liczba rekordów, stopka). Zalecany dla złożonych zapytań –– eliminuje powtarzanie kodu SQL i pozwala silnikowi bazy danych lepiej zoptymalizować plan wykonania. -
Hybrydowy: Uprawnienia i dane są pobierane w dwóch oddzielnych zapytaniach. W pierwszym kroku system pobiera wyłącznie kolekcję identyfikatorów rekordów dostępnych dla użytkownika zgodnie z jego uprawnieniami (ACL). W drugim kroku pobierane są właściwe dane – z filtrowaniem, sortowaniem i paginacją –– ograniczone wyłącznie do dozwolonych rekordów. Zalecany w przypadku zwracania do 50 tys. rekordów, do których użytkownik posiada uprawnienia ACL.Ważne
Sprawdzanie ACL w tym trybie odbywa się bezpośrednio na tabeli domyślnej dla definicji dokumentu wskazanej w definicji listy. W przypadku użycia w zapytaniu źródłowym listy innej tabeli lub funkcji tabelarycznej zbudowanej na innej tabeli lista nie będzie działać.
Ponadto:
- Zlikwidowano osobne przełączniki sprawdzania ACL dla statusów i instancji; obecnie sprawdzanie uprawnień można włączyć lub wyłączyć.
- Dodano możliwość wyświetlenia podglądu zapytania wysyłanego przez nAxiom w celu pobrania danych do listy.
3. Obsługa błędów w bloczku Oczekiwanie
Wprowadzono następujące zmiany dotyczące bloczka Oczekiwanie:
- w konfiguracji bloczka dodano przełącznik Wykonuj w transakcji; po jego włączeniu sekwencja akcji wykonywanych na przejściu wychodzącym będzie wykonywana w jednej transakcji,
- dodano możliwość zdefiniowania dodatkowego przejścia przeznaczonego do kierowania procesu w przypadku, gdy podczas wykonywania akcji po na podstawowym przejściu wychodzącym z bloczka wystąpi błąd; dla takiego przejścia należy w jego konfiguracji włączyć przełącznik Przejście do obsługi błędu.
W przypadku wystąpienia błędu w sekwencji akcji na przejściu wychodzącym możliwe są następujące scenariusze:
- Jeśli włączono wykonywanie w transakcji, zostanie ona wycofana, zostanie zalogowany błąd w logu taskservice i zostanie wykonane przejście do obsługi błędów, a jeśli nie jest zdefiniowane, nastąpi powrót do statusu bloczku oczekiwania i proces zostanie zakończony.
- Jeśli nie włączono wykonywania w transakcji i błąd wystąpił w akcjach przed, zostanie wykonane przejście do obsługi błędów, a jeśli nie jest zdefiniowane, nastąpi powrót do statusu bloczku oczekiwania i proces zostanie zakończony.
- Jeśli nie włączono wykonywania w transakcji i błąd wystąpił w akcjach po, proces przejdzie do statusu docelowego przejścia, niezależnie od tego, czy zdefiniowano przejście do obsługi błędów.
Uwaga
W przypadku konfiguracji z dwoma przejściami i wyłączonym wykonywaniem w transakcji należy ręcznie usunąć akcję zapisu z przejścia podstawowego. W przeciwnym razie wystąpi błąd.
4. Przekazywanie danych z listy do formularza
W konfiguracji przycisków listy dodano możliwość użycia akcji Ustaw dane formularza. Pozwala to przekazywać wartości z bieżącego rekordu do kontekstu wskazanego formularza, w tym także do formularza nadrzędnego, na którym lista jest osadzona w sekcji. W konfiguracji akcji należy wskazać jedno lub kilka (separatorem jest średnik) mapowań w formacie:
[KodFormularzaDocelowego].PoleModeluDanych=@PoleBieżącegoModeluDanych
Parametr PoleBieżącegoModeluDanych to wartość atrybutu Nazwa SQL kolumny listy.
Wskazówka
Zastosowanie akcji ogranicza się do przycisków dostępnych w wierszu listy osadzonej na formularzu. Użycie jej z przyciskiem nagłówka listy spowoduje błąd.
5. Kopiowanie elementów formularza
W designerze formularzy dodano opcję kopiowania elementów formularza (wiersz, kolumna, sekcja, kontrolka. Opcja jest dostępna jako ikona w prawym górnym rogu obramowania wyświetlanego po kliknięciu elementu. Ponadto do przybornika z lewej strony designera dodano wszystkie dostępne kontrolki.
6. Wsadowe zasilanie tabeli w C#
Do biblioteki SqlHelper dodano metodę WriteToTable, która umożliwia masowe wstawianie rekordów do tabeli bazy danych (bulk insert) z poziomu akcji C#. Metoda przyjmuje nazwę tabeli docelowej i kolekcję obiektów, których właściwości są automatycznie mapowane na kolumny tabeli. Obsługuje bazę systemową oraz zewnętrzne źródła danych (SQL Server, Oracle) za pomocą parametru dataSourceId (brak oznacza bazę danych bieżącego tenanta).
7. Atrybuty data-testid w HTML Front SPA
W markupie HTML elementów interfejsu użytkownika końcowego we Front SPA dodano atrybuty data-testid i podobne na potrzeby opracowywania testów automatycznych aplikacji biznesowych przeprowadzanych przez konsultantów po aktualizacji nAxiom.
8. Kategoria załączników w zdarzeniach biznesowych i jako smart number
Rozbudowano zdarzenia dokumentu biznesowego w obszarze zdarzeń dla załączników o parametr AttachmentCategoryId, aby móc uwzględnić dowolną kategorię w logice akcji zdarzeń. W ramach zadania rozbudowano smart numbers o obsługę kategorii załączników i dodano właściwość kod w definicji kategorii. Składnia smart numbers:
{&<Aplikacja>.AttachmentCategories.<WybranyDokumentBiznesowy>.<KodKategoriiZałączników>}.
Podczas aktualizacji dla zdefiniowanych kategorii załączników kod zostanie utworzony automatycznie na podstawie nazwy zgodnie ze standardowymi regułami dla kodu:
- 100 znaków,
- bez polskich znaków - zamiana na zwykłe litery,
- brak spacji - zamiana na znak podkreślenia.
Kod kategorii załączników musi być unikatowy w zakresie dokumentu biznesowego. Domyślna kategoria załączników po wygenerowaniu elementów aplikacji będzie mieć kod DEFAULT.
9. Obsługa Novell.Directory.Ldap
Dodano nowy typ połączenia do Active Directory w oparciu o pakiet Novell.Directory.Ldap ze względu na na problemy z połączeniem przy użyciu System.DirectoryServices.Protocols. Z nowej implementacji można korzystać w razie problemów z typem połączenia ActiveDirectory. W tym celu należy zmienić typ połączenia na NovellActiveDirectory w ustawieniach systemu oraz w sekcji synchronizacji w konfiguracji tenanta.
10. Obsługa MS Entra Id
Rozszerzono ustawienia systemowe nAxiom dotyczące obsługi skrzynek pocztowych o uwierzytelnianie poprzez Microsoft Entra ID. W ramach zadania wprowadzono następujące zmiany:
Monitoring poczty e-mail:
-
Typ serwera: MS Graph: dodano poleTyp uwierzytelnieniao wartościach:- OAuth 2.0 Client Credentials - do tej pory wartość domyślna dla MS Graph,
- OAuth 2.0 Client Certificate Authentication - uwierzytelnienie za pomocą certyfikatu.
-
Typ serwera: MS Exchange: rozbudowano poleTyp uwierzytelnieniao wartość:- OAuth 2.0 Client Certificate Authentication - uwierzytelnienie za pomocą certyfikatu
W przypadku wybrania pozycji OAuth 2.0 Client Certificate Authentication wyświetlają się dwa nowe pole z obsługą smart numbers:
-
Certyfikat- pole na certyfikat w formacie PFX z kluczem prywatnym zakodowany jako Base64, Hasło do certyfikatu
W ustawieniach konfiguracji serwera SMTP do wysyłki wiadomości e-mail zmodyfikowano i rozbudowano Typ serwera pocztowego:
- SMTP → SMTP Basic Authentication
- SMTP Microsoft Entra Client Credentials Authentication
- SMTP Microsoft Entra Client Certificate Authentication
Dodano nowe parametry dla uwierzytelnienia poprzez Microsoft Entra:
-
Adres URL autoryzacji dla uwierzytelniania OAuth2 w SMTP- wspierany Azure cloud authority https://learn.microsoft.com/en-us/entra/identity-platform/msal-client-application-configuration- obsługiwana wartość https://login.microsoftonline.com/
-
Client ID dla uwierzytelniania OAuth2 w SMTP- Client ID zarejestrowanej aplikacji -
Client Secret dla uwierzytelniania OAuth2 w SMTP- Client Secret dostępu dla aplikacji, wymagane w Client Credentials Authentication -
Certyfikat klienta dla uwierzytelniania OAuth2 w SMTP- certyfikat w formacie PFX zakodowany w Base64, wymagane w Client Certificate Authentication -
Hasło do certyfikatu klienta dla uwierzytelniania OAuth2 w SMTP- hasło certyfikatu, wymagane w Client Certificate Authentication -
Scope dla uwierzytelniania OAuth2 w SMTP- zakres uprawnień do API, wartości rozdzielone średnikiem, przykładowa wartość https://outlook.office365.com/.default -
Tenant ID dla uwierzytelniania OAuth2 w SMTP- identyfikator tenanta/dzierżawy z Microsoft Entra ID
Wartość Base64 certyfikatu można uzyskać w środowisku Windows za pomocą polecenia PowerShell wywołanego w katalogu z certyfikatem z rozszerzeniem .pfx:
[IO.File]::WriteAllText((Get-Item .).FullName + '\CERT Base64.txt', [Convert]::ToBase64String([IO.File]::ReadAllBytes((Get-Item .).FullName + '\CERT.pfx')))
11. Connection string dla źródła danych
W oknie definicji źródła danych dla źródeł typu baza danych SQL Server i Oracle dodano możliwość podania parametrów połączenia z bazą danych w formie connection string, podobnie jak w konfiguracji tenanta w TenantsAdmin SPA. Connection string jest zapisywany w bazie danych w formie zaszyfrowanej.
Dzięki temu można między innymi użyć opcji Integrated Security, co uwalnia od konieczności przechowywania hasła, a także wielu innych opcji połączenia z bazą danych. Ponadto, dzięki zmianie można użyć poświadczeń użytkownika o niższych uprawnieniach (tylko operacje na danych), o ile tabela repozytorium zostanie utworzona wcześniej.
Dodatkowo w ramach zadania:
- umożliwiono tworzenie własnych repozytoriów z systemowym źródłem danych baza danych tenanta,
- umożliwiono wybór takich repozytoriów w definicji kategorii załączników.
12. Dostęp do nAxiom z różnych adresów
Dodano możliwość konfigurowania dostępu do witryny nAxiom pod różnymi adresami URL. Obsługiwane adresy należy podać sekcji AppConfiguration.OriginConfiguration.OriginUrls w pliku appsettings.json serwisu API. Jeśli witryna uruchamiana jest na komputerze lokalnym, np. na IIS, w tablicy OriginUrls należy wpisać [ “https://localhost” ]. Jeśli witryna jest uruchamiana na środowisku skonteneryzowanym, należy ustawić zmienne środowiskowe:
- NAX_AppConfiguration__OriginConfiguration__OriginUrls__0 = “https://domena1.demo”
- NAX_AppConfiguration__OriginConfiguration__OriginUrls__1 = “https://domena2.demo”
- NAX_AppConfiguration__OriginConfiguration__OriginUrls__2 = “https://domena3.demo”
13. Podgląd dokumentów Office
W sekcji podglądu załączników dodano obsługę wyświetlania podglądu plików Word i Excel. Na potrzeby wyświetlenia podglądu zawartość pliku Word jest konwertowana do formatu PDF. Z tego powodu mogą występować różnice między wyrenderowanym obrazem, a wyglądem pliku otwartego w aplikacji Word. W przypadku arkuszy Excel obsługiwany jest tylko format xlsx, format xls nie jest obsługiwany.
14. Odświeżanie sekcji po zdarzeniu dokumentu
W zdarzeniach dokumentu biznesowego dodano możliwość wyboru akcji odświeżania sekcji formularza. Dodatkowo w definicji akcji dodano przełącznik Wykonanie warunkowe.
15. Przełącznik widoczności kolumn w sekcji typu lista
W ustawieniach sekcji formularza typu lista dodano przełącznik Wyświetlaj przycisk widoczności kolumn, który pozwala konsultantom decydować, czy przycisk Widoczność kolumn dla listy ma być dostępny w sekcji.
Zmiany istniejących funkcjonalności
1. Obsługa NULL w macierzach DMN
Zmodyfikowano sposób obsługi NULL w zmiennych wejściowych dla tabeli decyzyjnej (DMN). Tabela DMN obsługuje NULL, jeśli to zostanie przewidziane przez konsultanta na etapie projektowania. Wymaga to wpisania wprost łącznika (-) lub NULL w komórce wartości wejściowej. W takim przypadku polityki trafień będą działać zgodnie z definicją.
Jeśli konsultant nie wprowadzi obsługi NULL w regułach, w przypadku braku wartości wejściowej tabela nie zwróci żadnego wyniku. Proces nie zostanie przerwany błędem, a jedynie zaloguje na poziomie debug komunikat: „The decision ‘{nazwa decyzji}’ for decision model version ‘{kod wersji}’ completed without a result. No matching rules found.” w logu serwisu API. Dotychczas w niektórych przypadkach brak wartości wejściowej mógł skutkować błędem i przerwaniem procesu. Jeśli wynik tabeli jest niezgodny z oczekiwaniami, należy sprawdzić w logu, czy nie występuje powyższy wyjątek.
Uwaga
Obecnie nie zachodzi niejawna konwersja NULL na wartość domyślną dla konkretnego typu danych (pusty tekst dla danych tekstowych lub zero dla danych liczbowych).
Cały proces obliczania macierzy decyzyjnej jest logowany na poziomie trace w logu serwisu API.
2. Wartość Cryptosalt
Zmieniono sposób korzystania z wartości cryptosalt. Została ona usunięta z plików konfiguracyjnych appsettings.json poszczególnych serwisów nAxiom. Obecnie ta wartość jest ustawiana przez instalator, a w przypadku wdrożeń z obrazów dockerowych konieczne jest zdefiniowanie zmiennej środowiskowej NAX_AppConfiguration__CryptoSalt z tą wartością.
Jeśli podczas uruchamiania serwisu nAxiom wartość cryptosalt nie zostanie odnaleziona, zostanie zalogowany błąd i serwis nie zostanie uruchomiony.
Poniżej szczegółowy wykaz zmian w instalatorze nAxiom w związku z nowym sposobem obsługi cryptosalt:
- dodano wpisywanie wartości CryptoSalt w plikach appsettings.json,
- usunięto tworzenie sekcji MultitenancyConfig w plikach konfiguracyjnych aplikacji np. w front/assets/config/config.production.json,
- usunięto tworzenie sekcji MultiTenancyConfig w plikach appsettings.json serwisów backendowych,
- usunięto wpisy AdminAppUrl, WorkflowAppUrl, FrontAppUrl,
- dodano ustawianie OriginConfiguration.OriginUrls,
- dodano bilans otwarcia dla wszystkich plików appsettings.protected.json i przeszyfrowanie wartości nowym algorytmem,
- dodano szyfrowanie wartości po każdym wywołaniu instalatora,
- usunięto większość informacji dotyczących mobile-api,
- usunięto pakiety instalacyjne MobileApi oraz MobileTools, a także odpowiednie wpisy w plikach konfiguracyjnych,
- w sekretach AUTH w appsettings.protected.json usunięto ReferenceToken-mobile-api; pozostawiono Client-mobile ze względu na to możliwość korzystania z tej nazwy w bieżących instalacjach.
3. Zmiana klucza RSA
Zmodyfikowano sposób generowania klucza RSA używanego do podpisywania tokenów. Zmiana ma na celu umożliwienie administratorom zarządzanie kluczem zgodnie z politykami bezpieczeństwa w danej organizacji. W środowiskach opartych na IIS klucz będzie generowany przez instalator. W środowiskach dockerowych konieczne jest ręczne wygenerowanie klucza i zapisanie go w zmiennej środowiskowej NAX_AppConfiguration__IdentityServerConf__CredentialSignKey lub w pliku appsettings-custom.json w ścieżce AppConfiguration.IdentityServerConf.CredentialSignKey. Wymagania dotyczące klucza:
- typ: RSA256
- długość: minimum 2048 bitów
- format: PKCS#8 DER
- konwersja do base64
Przykład polecenia generującego klucz:
openssl genrsa 2048 | openssl pkcs8 -topk8 -nocrypt -outform DER | openssl base64 -A
4. Widok core.OUInstanceNameTranslations_View
Z myślą o poprawie wydajności list zwracających nazwy jednostek organizacyjnych, w bazie danych nAxiom dodano widok o nazwie core.OUInstanceNameTranslations_View, z tłumaczeniami nazw jednostek organizacyjnych. Widok zawiera trzy kolumny:
- RecordRowGuid: identyfikator jednostki organizacyjnej (wartość RowGuid z tabeli core.OUInstances)
- LanguageId: identyfikator języka
- Value: nazwa JO w danym języku
5. Dostępność przycisków w wierszu listy
Rozszerzono możliwość sterowania dostępnością na przyciski w wierszu listy. Warunki dostępności tych przycisków można określić w definicji listy oraz w ustawieniach dostępności sekcji typu lista w designerze formularzy.
W definicji listy dla przycisków w grupie wiersz dodano kartę Dostępność, na której można określić warunki dostępności przycisku za pomocą standardowego zapytania SQL. Natomiast w kreatorze formularzy ustawienia dostępności sekcji typu lista rozszerzono o kartę podrzędną Ustawienia dla przycisków listy, na której można ustawić dostępność dla poszczególnych przycisków, tak samo jak dla innych kontrolek na formularzu, tj. wg statusu, roli, przełącznikiem i zapytaniem SQL.
Dodatkowo w kreatorze formularzy można zdecydować, czy dla przycisków obowiązują ustawienia z definicji listy czy ustawienia z sekcji formularza.
6. Zmiana OS kontenerów
Zmieniono bazowy system operacyjny obrazów kontenerów nAxiom na Red Hat UBI. Ta zmiana zapewnia zgodność ze standardami enterprise oraz większą kompatybilność z OpenShift/Kubernetes.
Ponadto, w celu zwiększenia bezpieczeństwa Wyeliminowano konieczność korzystania z uprawnień użytkownika root do dodawania niestandardowych certyfikatów do magazynu. Obecnie w tym celu wykorzystuje się mechanizm entrypoint i odpowiednią zmienną środowiskową. Wymagane jest zapisanie certyfikatów w katalogu na dysku i wskazaniu w pliku docker-compose.yaml:
environment:
- NAX_CustomCertificatesDirectory=/ścieżka/do/katalogu/z/certyfikatami
volumes:
- ${CERTS_DIR}:/ścieżka/do/katalogu/z/certyfikatami:ro
Obsługiwane formaty certyfikatów:
- .crt (X.509 Certificate)
- .cer (X.509 Certificate)
- .pem (Privacy Enhanced Mail)
Uwaga
Pliki .pfx nie są obsługiwane w skryptach powłoki (wymagają konwersji przed montowaniem).
7. Synchronizacja LDAP
Zmodyfikowano działanie funkcji synchronizacji użytkowników w jednostkach organizacyjnych oraz proces synchronizacji jednostek organizacyjnych z wykorzystaniem danych o strukturze z tabel bazodanowych do synchronizacji. W określonych przypadkach zarejestrowano skrócenie czasu operacji o 90–95%.
Ponadto w ramach zadania:
- udrożniono działanie innych zadań wykonywanych przez TaskService, które były blokowane przez proces synchronizacji,
- naprawiono błąd powodujący, że usunięcie relacji do przełożonego użytkownika nie było uwzględniane.
8. Mapowanie grup LDAP na role
Zmodyfikowano mechanizm mapowania grup domenowych na role biznesowe nAxiom. Obecnie możliwe jest mapowanie grupy domenowej na kilka ról biznesowych. Podczas synchronizacji użytkownikowi z danej grupy zostaną przypisane wszystkie zmapowane role. Przykład:
"GroupsToRoleMapping": [
{
"RoleCode": "NT_ADMINISTRATOR",
"GroupNames": ["APPT_NAXIOM_OWN"]
},
{
"RoleCode": "NT_ZARZAD",
"GroupNames": ["APPT_NAXIOM_ZRD"]
},
{
"RoleCode": "NT_KADRY",
"GroupNames": ["APPT_NAXIOM_OWN"]
}
]
Przed zmianą użytkownikowi należącemu do grup APPT_NAXIOM_OWN oraz APPT_NAXIOM_ZRD przypisywane były role NT_ADMINISTRATOR oraz NT_ZARZAD. Po zmianie zostaną mu przypisane role NT_ADMINISTRATOR, NT_ZARZAD oraz NT_KADRY.
9. Instalator: uprawnienia do bazy danych
W instalatorze nAxiom zmodyfikowano minimalne wymagania dotyczące ról loginu na serwerze SQL dla administratora tenantów. Role dbcreator oraz securityadmin nie są już wymagane. W związku z tym, jeśli login administratora tenantów nie ma tych ról:
- baza danych tenantów musi zostać utworzona przed instalacją,
- przy przejściu do kolejnego kroku instalator wyświetli informację o konieczności wcześniejszego przygotowania bazy i loginu dla pierwszego tenanta,
- przy tworzeniu kolejnych tenantów należy podawać w connection string nazwy istniejących baz danych oraz dane logowania istniejących loginów – nie będzie możliwe ich tworzenie w TenantsAdminSPA.
Zmiana została wprowadzona w celu dostosowania instalatora do restrykcyjnych polityk bezpieczeństwa obowiązujących w wybranych środowiskach klienckich.
10. Zmiana algorytmów szyfrujących
Zmieniono algorytmy szyfrowania używane w nAxiom na SHA256.
Ważne
Chociaż archiwizacja bazy danych przed aktualizacją jest ogólnie przyjętą dobrą praktyką, w związku ze zmianą algorytmu szyfrującego zalecenie archiwizacji bazy danych przed aktualizacją do wersji 1.15.7 należy potraktować jako obowiązkowe.
11. Inne zmiany istniejących funkcjonalności
- Zmodyfikowano akcję importu dokumentów tak, aby zapisywała wiele rekordów jednym zapytaniem SQL. Uproszczono wykonanie przejść workflow dla importu - dozwolone jest dodawanie dokumentów tylko w statusie powiązanym z bloczkiem oczekiwania lub zadaniem ręcznym (ustawienie wartości pola status przez mapowanie parametrów).
- Zaktualizowano szablon do importu użytkowników (
Admin SPA>Ustawienia systemowe>Import użytkowników>Eksportuj szablon Excel). - Zmodyfikowano funkcjonalność wylogowania użytkownika po dezaktywacji jego profilu użytkownika. Obsługiwane przypadki:
- dezaktywacja profilu użytkownika przez administratora,
- dezaktywacja profilu użytkownika w wyniku synchronizacji struktury organizacyjnej,
- dezaktywacja profilu użytkownika poprzez PublicAPI.
- Poprawiono wydajność wczytywania danych do filtrów dynamicznych dla list o dużej liczbie rekordów. Obecnie wartości do filtra są pobierane w paczkach po 20.
- Funkcjonalność pól technicznych rozszerzono o możliwość odwołania do pól formularza z tablicy OpenedForms. Obsługiwana jest standardowa składnia takiego odwołania: {@*KodFormularza.NazwaPola}.
- Wprowadzono zmiany w funkcjonalności czatu: poprawiono obsługę, dodano wyszukiwarkę oraz zmieniono sposób wyszukiwania kontaktów i rozpoczynania rozmów. Dodano opcję ukrywania rozmów, oznaczania ich jako przeczytane/nieprzeczytane oraz zmiany kolejności na liście metodą drag&drop.
- Wprowadzono zmiany dotyczące funkcji powiadomień. Na liście powiadomień we Front SPA dodano paginację. W akcji powiadomień dodano możliwość definiowania kolorów elementów powiadomienia:
- Kolor ikony i nagłówka: domyślnie primary
- Kolor czcionki dla linku w treści: domyślnie secondary
- Kolor tła i ramki kafla: domyślnie przezroczysty (brak koloru)
Zmiana kolorów w definicji akcji nie wpływa na kolory powiadomień, które zostały wygenerowane.
- Zwiększono maksymalną długość pliku konfiguracji JSON w Tenantsadmin SPA do 20 tys. znaków. Pozwoli to wyeliminować problemy z zapisem konfiguracji w przypadku dużej liczby dozwolonych rozszerzeń plików.
- Dodano mechanizm kompaktujący plik log.db3 po usunięciu logów w Admin SPA (
Logi środowiska i bieżącego tenanta). - Ujednolicono format i treść logów rejestrowanych podczas uruchamiania indywidualnych serwisów nAxiom w środowiskach dockerowych.
- Zmieniono sposób wdrażania brokera RabbitMQ i zarządzania nim na platformie OpenShift. Dotychczasowy, dynamiczny model oparty na pakiecie Helm, zastąpiono przez w pełni zdefiniowane, statyczne i gotowe do wdrożenia artefakty.
- Zmodyfikowano skrypty konfiguracyjne dla wdrożeń OpenShift, aby można było dynamicznie ładować czcionki bez konieczności modyfikowania obrazu Docker.
- Wycofano wsparcie dla trybu mobilnego (serwis Mobile API). W związku z tym wprowadzono następujące zmiany:
- z profilu użytkownika usunięto ustawienia
Dostęp do Mobile ApiiDostępna weryfikacja biometryczna, - zmiennej systemowej MobileMode przypisano na stałe pusty string,
- wycofano obsługę akcji QR/BC przeznaczonej dla urządzeń mobilnych; istniejące definicje takich akcji zostaną zmigrowane do akcji QR (WebAPI) podczas aktualizacji.
- z profilu użytkownika usunięto ustawienia
- Wycofano obsługę ePUAP w nAxiom.
Rozwiązane problemy
-
Poprawiono obsługę instalacji na środowisku Windows IIS w trybie CLI w zakresie konfiguracji ruchu wewnętrznego (sekcja OptionalLocalBinding w konfiguracyjnym pliku JSON). W przypadku protokołu HTTPS należy również podać parametry:
- CertificateThumbprint: odcisk certyfikatu
- CertificateStore: magazyn, w którym znajduje się certyfikat
Przykład sekcji OptionalLocalBinding:
"OptionalLocalBinding": { "Host": "localhost", "Port": 8443, "IpAddress": "*", "Protocol": "https", "CertificateThumbprint": "2b26e3cbc23581...", "CertificateStore": "WebHosting" } -
W środowiskach IIS dodano obsługę sytuacji, w której pomimo, że komponent Erlang OTP jest zainstalowany, zmienna środowiskowa jest ERLANG_HOME nie jest dostępna. W takim przypadku instalator podejmie próbę zlokalizowania ścieżki instalacji Erlang OTP na podstawie wpisów w rejestrze Windows. Przeszukiwane będzie drzewo w rejestrze SOFTWARE\WOW6432Node\Ericsson\Erlang. Jeśli wpis istnieje, jako wartość zmiennej ERLANG_HOME zostanie ustawiona odnaleziona ścieżka. Jeśli instalator nie znajdzie wpisu w rejestrze, instalacja zostanie przerwana z odpowiednim komunikatem o błędzie.
-
W oknie dialogowym profilu użytkownika ujednolicono sposób wyszukiwania w kontrolkach. Obecnie wystarczy wpisać dowolny fragment wyszukiwanej wartości, np. roli biznesowej. Zmiana nie dotyczy pól wyboru języka, roli systemowej i pulpitu wyświetlanego po zalogowaniu.
-
Zoptymalizowano mechanizm synchronizacji struktury organizacyjnej i użytkowników poprzez mechanizm SQL. Przyczyną wolnego działania były problemy z obsługą tłumaczeń nazw jednostek organizacyjnych.
-
Poprawiono błąd migracji funkcji zależności kontrolek w przypadku użycia operatora zawiera się w.
-
Poprawiono mechanizm walidacji pól rekordu w trybie edycji inline w celu zminimalizowania liczby fałszywych błędów. W szczególności dopasowano walidację reguł wartości minimalnej i maksymalnej do rodzaju użytych kontrolek: w polu daty jest walidowana data, w polu liczbowym - liczba, a w polu tekstowym - długość tekstu. Gdy typ kontrolki nie pasuje do typu danych kolumny, walidacja wartości min/maks. jest pomijana.
-
Poprawiono wyświetlanie komunikatów walidacji wymagalności w trybie edycji inline. Zdefiniowane przez użytkownika komunikaty będą wyświetlane także przy próbie zapisania zmian bez uzupełnionych wymaganych pól.
-
Poprawiono błąd, który powodował, że migracja powodowała utratę przypisania akcji w sekcji
Zbiór akcji edycji inlinew definicji widoku listy. -
W kreatorze listy usunięto błąd, który powodował, że podczas konfiguracji edycję inline w trybie po kliknięciu w wiersz, przy próbie zapisu definicji listy był wyświetlany komunikat „Pole Nazwa jest wymagane”.
-
Poprawiono wyświetlanie przycisków w nagłówku listy w widoku mobilnym.
-
Poprawiono zniekształcone wyświetlanie wartości w stopce listy.
-
Poprawiono błąd, który powodował, że akcje przypisane do nowo dodanej kontrolki na formularzu i przycisku na liście nie zapisywały się.
-
Poprawiono błąd obsługi kilku występujących po sobie znaków spacji na liście rozwijanej. Te znaki były kompresowane do jednej spacji, co powodowało niezgodność danych w przypadku korzystania z funkcji wartości ustalonej.
-
Poprawiono błąd zapisu wartości domyślnej równej 0 w kontrolce pola numerycznego w designerze formularzy.
-
Poprawiono błąd, który powodował, że przycisk przeniesiony z sekcji do sekcji w designerze formularza tracił swoje ustawienia.
-
Poprawiono działanie opcji odświeżania widoku w akcji Zamknij formularz. W niektórych przypadkach widok nie był odświeżany.
-
Poprawiono obsługę pól chronionych; w niektórych przypadkach wartości takich pól były widoczne w kontekście formularza pomimo braku uprawnień.
-
Wyeliminowano przyczynę przekroczenia limitu czasu podczas zapisu formularza w kreatorze/designerze.
-
W aplikacji Front SPA poprawiono błąd wyświetlania wersji załącznika po odświeżeniu formularza.
-
Poprawiono wyświetlanie komunikatów o błędach w przypadku dodawania załączników nie spełniających odpowiednich kryteriów.
-
Poprawiono interfejs użytkownika w Kreatorze modeli danych: usunięto wielokrotne paski przewijania, ujednolicono przyciski, poprawiono zachowanie podczas zmiany rozmiaru okna przeglądarki.
-
Poprawiono błąd, który powodował, że akcja importu dokumentów zawsze ustawiała pierwszy status workflow dla importowanych dokumentów (domyślnie utworzony).
-
Poprawiono błąd występujący w przypadku użycia parametru z kontekstu formularza w zapytaniu SQL w akcji importu dokumentów.
-
Poprawiono działanie akcji przypisywania interesariuszy w przypadku użycia jej do przypisywania użytkowników do grup interesariuszy z różnych definicji dokumentów. W ramach zadania poprawiono także błąd występujący podczas korzystania z notacji smart number dla identyfikatora definicji dokumentu.
-
W akcji eksportu do pliku Excel usunięto dodawanie do komórek w arkuszu wynikowym notatek z typem danych.
-
Poprawiono adres przekazywany do programu ESign w zleceniu podpisu.
-
Poprawiono mechanizm synchronizacji struktury organizacyjnej w zakresie synchronizacji użytkowników. Naprawiono błąd, który powodował, że w szczególnych przypadkach użytkownicy, którzy zostali dodani do tabeli auth.AspNetUsers nie zostali dodani do tabeli core.UserProfiles. Błąd uniemożliwiał wykonanie kolejnych synchronizacji. Obecnie w przypadku błędu synchronizacji profile użytkowników dodane do tabeli auth.AspNetUsers zostaną usunięte.
W przypadku środowisk, w których ten błąd wystąpił, należy usunąć z tabeli auth.AspNetUsers profile użytkowników, których nie ma w tabeli core.UserProfiles:
DELETE FROM [auth].[AspNetUsers] WHERE [Id] NOT IN (SELECT [Id] FROM [core].[UserProfiles]) -
Poprawiono mechanizm synchronizacji z OpenLDAP w zakresie przypisywania użytkowników do jednostek. Obecnie podanie jako OUID w danych jednostki organizacyjnej wartości entryUUID z domeny powoduje poprawne przypisanie użytkowników do danej jednostki.
-
W aplikacji Front SPA poprawiono ukrywanie linków do systemowych pozycji menu chronionych uprawnieniami PBA w trybie wyświetlania na urządzeniach mobilnych.
-
Poprawiono błąd, który występował nieregularnie przy próbie zapisu do bazy danych informacji o innym błędzie.