DO NOT MERGE: Changes from upstream master#8
Draft
gmatheu wants to merge 10000 commits into
Draft
Conversation
a2f553c to
7237497
Compare
Merge rc master
# Conflicts: # ui-ngx/src/app/shared/components/entity/entity-list-select.component.html # ui-ngx/src/app/shared/components/entity/entity-type-select.component.html
Merge rc into master
Fix issue in entity-list-select.component.html after merge
[OpenApi] Updated api method names to be in sync with PE
Prevents UnrecognizedPropertyException during rolling upgrades when a newer node writes a cached entity with an added field and an older node reads it back. The Redis-backed TbJsonRedisSerializer now uses JacksonUtil.IGNORE_UNKNOWN_PROPERTIES_JSON_MAPPER instead of the strict OBJECT_MAPPER used by JacksonUtil.fromBytes.
TbRestApiCallNodeTest ran concurrently with SsrfSafeAddressResolverGroupTest,
which toggles the static SsrfProtectionValidator.enabled flag in its
setUp/tearDown. When the flag leaked into the REST test's async HTTP calls,
'localhost' was rejected by SSRF and extra tellFailure invocations broke the
Mockito verify count.
TbHttpClientTest and SsrfSafeAddressResolverGroupTest already declare
@ResourceLock("SsrfProtectionValidator"); apply the same lock to
TbRestApiCallNodeTest so all three SSRF-sensitive tests serialize.
Fixes #15453
…odeTest-ssrf-lock Fix flaky TbRestApiCallNodeTest via SsrfProtectionValidator ResourceLock
…operties Ignore unknown properties when deserializing Redis cache entries
Merge rc into master
fix: use presencePenalty instead of frequencyPenalty for Vertex AI GenerationConfig
…ptions chore: update AI model autocomplete options
…ure/dashboard-or-conditions
- EntityKeyMapping: replace fragile null-swap of entityKeyColumn with a useAliasAsField flag threaded through buildKeyQuery/buildPredicateQuery, avoiding mutation of shared instance state - TbAlarmCountSubCtx, TbAlarmDataSubCtx: normalize keyFiltersOperation at query construction via getKeyFiltersOperationOrDefault(), matching DefaultEntityQueryService - BaseEntityService: end the disabled-OR validation error with a period and attribute it to the system administrator, aligning with the existing UI translation - EntityQueryControllerTest: extract helpers (createDeviceWithSharedAttributes, createDeviceWithTimeseries, createAlarm, deviceTypeFilter, numericKeyFilter, stringKeyFilter, pageLinkSortedByName, nameEntityField, extractNames) and replace the pagination test's obscure temperature ternary with an explicit array
- Default allowKeyFiltersOrConditions to true in empty auth state - Remove empty filter-dialog.component.scss and its styleUrls reference
Merge rc into master
Adds Slack-API-based incident grouping for the monitoring microservice:
alerts that fire within resolution_timeout_s are threaded under a single
"Incident" message whose header tracks affected services in real time, and
the incident auto-resolves after a quiet period with a final summary.
Highlights
- Dual Slack modes: when bot_token + channel_id are set, alerts go through
chat.postMessage / chat.update with threaded replies; otherwise the
existing webhook path is used unchanged.
- Incident header shows 🔴 failing / :large_yellow_circle: high
latency / :large_green_circle: recovered services with live failure
counts and elapsed duration (updated every minute).
- Notifications carry structured affected-service data
(AffectedService { name, status, failureCount }) so the incident layer no
longer parses formatted alert text with regex.
- IncidentManager is decoupled from Slack via a small IncidentTransport
interface; SlackIncidentTransport adapts SlackApiClient.
- PE/other service-key types can plug in a friendly name via the
ShortNameProvider interface; TransportInfo implements it.
- Config lives under monitoring.notifications.incident.* (enabled,
resolution_timeout_s, tag_channel). Slack bot config stays under
monitoring.notifications.slack.{bot_token,channel_id}. YAML defaults are
authoritative; Spring @value no longer carries a conflicting fallback.
- Concurrency: state and transport I/O run under the manager's monitor.
Slack client has explicit 5s call timeouts (set on SlackConfig) so the
hold time is bounded. Slack client is closed on PreDestroy.
- HTTP failure text is sanitised: HTML response bodies are stripped so
Nginx-style error pages don't flood alerts.
- BaseMonitoringService splits login / WS connect / WS subscribe into
distinct MonitoredServiceKey entries, uses catch(Exception) instead of
catch(Throwable), and wraps WsClient in try-with-resources.
- Unit tests cover incident lifecycle, status transitions, duration
formatting, HTML body stripping, and the ShortNameProvider dispatch.
- Mark force-added entity-field filter mappings as ignored under OR so EntityDataAdapter keeps the response shape identical to AND (applied to both findEntityDataByQuery and validateEntityCountQuery paths). - Skip the ON-clause filter in toLatestJoin when forceLeftJoin=true to avoid duplicating the predicate that buildQuery already emits at the middle layer under OR (different bound parameter names, same filter). - Document the empty-predicate drop in buildQuery (safe under AND, narrowing under OR) and the defensive vacuously-true return in RepositoryUtils.checkKeyFilters. - Explain why validateEntityCountQuery uses the nullable getKeyFiltersOperation() rather than the OrDefault helper. - Add regression test asserting latest[ENTITY_FIELD] under OR only contains keys declared in entityFields.
Support for Execute operation with arguments (OMA LwM2M v1.0.2)
[OpenApi] Fixed openapi descriptions for arrays
…hboard-filters-new-style
…rs-new-style Fixed re-render filters table rows after add, duplicate, or remove
# Conflicts: # msa/js-executor/config/default.yml
Merge rc into master
Tests for Java client doc examples
Merge rc into master
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DO NOT MERGE
Placeholder PR to discuss upstream changes.