Informacje o wersji 1.15.5.0
z dn. 06-11-2025
W tej wersji
- Optymalizacja obsługi tłumaczeń
- Zmienne środowiskowe
- Automatyczne odświeżanie listy
- Obsługa smart numbers w mail monitorze
- Poprawki bezpieczeństwa i rozwiązane problemy
- Wykryty problem
Wymagane działania
- Optymalizacja obsługi tłumaczeń :
Z uwagi na zmiany opisane poniżej, aby aktualizacja powiodła się, należy uruchomić w następujące skrypty SQL (w SQL Server Studio):
- Sprawdzenie długości danych.
IF EXISTS ( SELECT 1 FROM [core].[TranslationDefinitions] WHERE LEN([TableName]) > 150 OR LEN([Field]) > 150 ) PRINT 'Skróć wpisy w kolumnach TableName i/lub Field do maksymalnie 150 znaków'; ELSE PRINT 'Wpisy w kolumnach TableName i Field nie wymagają skrócenia';- Sprawdzenie indeksów.
DECLARE @Indeksy NVARCHAR(MAX); SELECT @Indeksy = STRING_AGG(i.name, ', ') FROM sys.indexes i JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id JOIN sys.tables t ON i.object_id = t.object_id JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE s.name = 'core' AND t.name = 'TranslationDefinitions' AND c.name IN ('TableName', 'Field'); IF @Indeksy IS NOT NULL PRINT 'Usuń indeksy: ' + @Indeksy; ELSE PRINT 'Nie znaleziono indeksów';
Kompatybilność aplikacji
Migracja aplikacji jest możliwa tylko między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20251021131514
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji wymagane jest zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
1. Optymalizacja obsługi tłumaczeń
W celu optymalizacji zapytań odwołujących się do tabeli [core].[TranslationDefinitions] utworzono indeksy na kolumnach [TableName] i [Field]. Te indeksy tworzy procedura migracji bazy danych, która jednocześnie ogranicza rozmiar tych kolumn do 150 znaków (do tej pory MAX). Migracja nie powiedzie się, jeśli kolumny zawierają wpisy dłuższe niż 150 znaków lub gdy na tych kolumnach już zdefiniowano indeksy. Aby uniknąć ewentualnego niepowodzenia, przed aktualizacją do wersji 1.15.5.0 należy sprawdzić, czy dane w kolumnach [TableName] i [Field] wymagają skrócenia oraz czy na tych kolumnach zdefiniowano indeksy. Przykładowe zapytania podano w sekcji WYMAGANE DZIAŁANIA.
2. Zmienne środowiskowe
Zmodyfikowano sposób wczytywania parametrów konfiguracyjnych podczas uruchamiania środowiska nAxiom. Obecnie te parametry mogą być definiowane jako zmienne środowiskowe o nazwach zgodnych z poniższą konwencją.
NAX_<json-patch-1st-node>__<json-patch-2nd-node> …
gdzie pomiędzy pierwszym i drugim oraz ewentualnymi kolejnymi węzłami stosuje się dwa znaki podkreślenia jako separator. Na przykład dla następujących ustawień z pliku appsettings.json:
{
"ConnectionStrings": {
"SQLConnectionString": "connection-string do bazy danych" <-- ustawienie 1
},
"AppConfiguration": {
"RedisConfiguration": {
"Password": "hasło do redis" <-- ustawienie 2
},
"MessageBrokerConfiguration": {
"Password": "hasło do rabbitMQ" <-- ustawienie 3
},
"Modules": {
"FullTextSearch": {
"ElasticSearch": {
"Password": "hasło do elastic" <-- ustawienie 4
}
}
}
}
}
można skonfigurować następujące zmienne:
- NAX_ConnectionStrings__SQLConnectionString
- NAX_AppConfiguration__RedisConfiguration__Password
- NAX_AppConfiguration__MessageBrokerConfiguration__Password
- NAX_AppConfiguration__Modules__FullTextSearch__ElasticSearch__Password
Jeśli podczas uruchamiania nAxiom zostaną wykryte zmienne o nazwach odpowiadających ustawieniom z plików appsettings.json, wartości tych zmiennych nadpiszą wartości wczytane z pliku konfiguracyjnego. Jeśli istnieją pliki appsettings-custom.json, wartości zmiennych środowiskowych zostaną nadpisane ustawieniami z tych plików. Aby do tego nie doszło, nie należy definiować plików appsettings-custom.json.
W środowiskach skonteneryzowanych nazwy zmiennych środowiskowych podaje się w plikach compose.
W środowiskach Windows po ustawieniu zmiennych środowiskowych konieczne jest zresetowanie serwera IIS za pomocą polecenia iisreset lub w Menedżerze IIS (
Uruchom ponownie).
Funkcjonalność odczytu ustawień konfiguracyjnych ze zmiennych środowiskowych pozwala wykorzystać sejfy programowe do przechowywania danych wrażliwych, np. hasła do bazy danych.
3. Automatyczne odświeżanie listy
Wymieniono funkcjonalność automatycznego odświeżania listy. Obecnie lista może być odświeżana za pomocą nowej akcji Odśwież listy u wszystkich użytkowników lub cyklicznie z podanym interwałem.
Odświeżanie dotyczy wszystkich użytkowników, którzy w danej chwili wyświetlają listę, zarówno w widoku listy, jak i na sekcji formularza; odświeżanie nie zakłóca aktywnych sesji edycji inline.
Akcja Odśwież listę u wszystkich użytkowników ma dwa tryby odświeżania:
-
Wymuszony: odświeża widok listy -
Informacja o aktualizacji danych: efektem akcji jest pulsowanie przycisku odświeżania listy, sygnalizujące użytkownikowi konieczność jej odświeżenia.
Akcja odświeżania nie sprawdza, czy dane na liście rzeczywiście się zmieniły.
4. Obsługa smart numbers w mail monitorze
We wszystkich polach tekstowych w konfiguracji mail monitora dodano obsługę smart numbers.
5. Poprawki bezpieczeństwa
Wdrożono szereg zaleceń wynikających z testów penetracyjnych przeprowadzonych przez jednego z klientów oraz własnych audytów.
Modyfikacje i rozwiązane problemy
1. Wyświetlanie przycisków listy
Zmieniono sposób wyświetlania przycisków listy (w nagłówku i w kolumnie akcji) w przypadku, gdy jest ona osadzona jako sekcja na formularzu i ma włączony tryb tylko do odczytu. Po zmianie te przyciski będą wyszarzone.
2. Paczki bibliotek
Usunięto problem z aktualizacją indywidualnych plików bibliotek w paczkach bibliotek. Do tej pory wymagane było usunięcie starej paczki bibliotek i dodanie jej ze zaktualizowaną biblioteką DLL. Obecnie taką paczkę można zaimportować do systemu w miejsce dotychczasowej.
3. Uprawnienia ACL
Poprawiono błędne sprawdzanie uprawnień ACL dla użytkownika z przypisaną rolą w jednostce organizacyjnej dodaną do grupy interesariuszy. W określonych przypadkach taki użytkownik mógł mieć przypisane uprawnienia użytkownika z tą samą rolą w jednostce podrzędnej.
4. Długotrwałe otwieranie formularza
Zmieniono sposób pobierania definicji formularzy z bazy danych, aby zminimalizować ryzyko przekroczenia limitu czasu żądania na skutek złożonego zapytania.
5. Brak funkcji tabelarycznej
Usunięto błąd, który powodował, że Kreator modeli danych wyświetlał komunikat o błędzie Nie znaleziono funkcji tabelarycznej… podczas modyfikacji tabeli, dla której jeszcze nie wygenerowano elementów aplikacji.
6. Polityka CSP i logowanie zewnętrzne
Usunięto problem dotyczący polityki zabezpieczeń CSP, który uniemożliwiał skorzystanie z automatycznego przekierowania do strony logowania zewnętrznego.
Wykryty problem
1. Wylogowywanie użytkowników
W jednym z wdrożeń nAxiom wykryto przypadki nagłego wylogowania użytkownika z aplikacji FrontSPA. Podjęta diagnostyka wykazała, że problem występuje w sytuacji, kiedy w trakcie procedury odświeżania tokena wysyłane było żądanie do API z tokenem, który właśnie utracił ważność. Powodowało to odpowiedź 401 z serwera, a w konsekwencji wylogowanie użytkownika. Obecnie trwają prace nad obsługą takich przypadków.