Changelog
1.13.3 (28 June 2024) This fix was introduced in 1.16.0 version and has only been backported to this version.
- #6285 Fix for DatabaseLookupEnricher mixing fields values when it is connected to ignite db
1.13.2 (7 Mar 2024)
- #5447 Fixed
java.lang.reflect.InaccessibleObjectException: Unable to make public java.lang.Object
exception by downgrade of JRE from 17 to 11 in lite runner image for scala 2.13
1.13.1 (7 Mar 2024)
[this version was skipped, please use 1.13.2 instead]
1.13.0 (12 Jan 2024)
- #5051 Allow users to perform inserts/updates on db by adding
Updates count
strategy to db-query service - #4988 Refactor: Allow to use custom authentication methods in user-defined Authentication Providers
- #4711 #4862 Added AdditionalUIConfigProviderFactory API that allows changing components' configs and scenario properties' UI configs without model reload
- #4860 Rename
additionalProperties
toscenarioProperties
- #4828 Improvement: Allow passing timestampAssigner at FlinkTestScenarioRunner
- #4839 Fixed: Fragment migration to secondary env is again available
- #4901 Improvements TestScenarioRunner:
- Run runner with proper prepared invocation collector for test mode
- Fix passing global variables on LiteTestScenarioRunner and RequestResponseTestScenarioRunner
- Add missing tests for passing global variables
- Fix bug with passing components on RequestResponseTestScenarioRunner
- Fix bug building source test context on LiteTestScenarioRunner
- #4854#5059 Categories configuration redesign
- #4919 Improvement: Support for handling runtime exceptions at FlinkTestScenarioRunner
- #4923 Fix non-unique test case ids when testing scenario with union
- #4745 Improvement: Stricter Node and scenario id validation
- #4928 #5028 Breaking change:
Validator.isValid
method now takes expression and optional evaluated value, instead of just expression. Also:LiteralRegExpParameterValidator
is renamed toRegExpParameterValidator
,LiteralNumberValidator
is removed,LiteralIntegerValidator
is considered deprecated and will be removed in the future.- new validator:
CompileTimeEvaluableValueValidator
that checks if value is valid at compile time and it should be used instead of literal validators - annotation
pl.touk.nussknacker.engine.api.validation.Literal
was renamed topl.touk.nussknacker.engine.api.validation.CompileTimeEvaluableValue
- #5033 Updated Scala 2.13 to 2.13.12
- #4887 New parameter validator -
ValidationExpressionParameterValidator
that allows to use SpEL (or any other) expression to validate parameters - #5077 Add an option to set schema on connections in SQL enricher
- #5059 #5100 #5103 Breaking change: Scenario type to Category mapping become 1-to-1 instead of 1-to-many.
- #4978 #5241 Expand
FragmentParameter
with new fields:hintText
- shown next to the parameter when using the fragmentinitialValue
- initial value of the parameter (before user changes it)required
- whether the parameter is mandatoryvalueCompileTimeValidation
- allows configuration ofValidationExpressionParameterValidator
for this parameter
- #4953 Improved node validation
- #5141 Security improvement: API endpoints check if user has access rights to Category associated with Processing Type provided in API
- #5182 #5203 #5250 Component, User and Notification API OpenAPI-based documentation (e.g.
https://demo.nussknacker.io/api/docs
) - #5171 Breaking change: some components changed identifier - url's and identifiers in node errors are changed
- #5171 Component
mapVariable
was renamed torecord-variable
- #5223 Legacy low level kafka components were removed
- #5233 Fix: Not expected type: Null runtime error for non-nullable, optional json fields that were not provided by user in sink
- #5233 Added support for schema evolution in kafka using json schema and response sink
- #5197 Improved accessing fields in records in expressions - fields can now be statically accessed using indexing
- #5312 Collect component clears context variables
- #5313 Added CountWhen and Average aggregations
1.12.6 (29 Jan 2024)
- #5447 Fixed
java.lang.reflect.InaccessibleObjectException: Unable to make public java.lang.Object
exception by downgrade of JRE from 17 to 11 in lite runner image for scala 2.13
1.12.5 (1 Dec 2023)
- #5110 Fix: The compare option doesn't display fragment input properties between the two versions
1.12.4 (14 Nov 2023)
- #4992 Fix: List of periodic deployments is now sorted not only by schedule time but also by its creation time.
1.12.3 (26 Oct 2023)
[this version was skipped]
1.12.2 (25 Oct 2023)
[this version was skipped]
1.12.1 (25 Oct 2023)
- #4885 Fix: Synchronize embedded engine deployments after designer restart
1.12.0 (6 Oct 2023)
- #4697 Change
api/parameters/*/validate
andapi/parameters/*/suggestions
endpoints.- Use
processingType
instead ofprocessName
- Add
scenarioName
parameter toParametersValidationRequest
used inapi/parameters/*/validate
- Use
- #4677 Added validation to SpEL string literal conversions (allow only constant that convert successfully)
- #4602 Cleaning subprocess usages after NU 1.11 release
- #4582 Fixed: Releasing app resources on the designer close
- #4540 Improvement: Allow selecting a claim from OIDC JWT to represent the username
- #4555 Remove: Back compatibility for encoding/decoding UIParameter
- #4561 Improvement: Users are not required at OAuth2 config file
- #4492 Allow testing fragments using ad hoc testing.
- #4572 The package of improvements:
- make the properties of the
FlinkStreamingPropertiesConfig
public, so that they can be reused - introduce the
CaseClassTypeInfoFactory
, a generic factory for creatingCaseClassTypeInfo
- allow passing classLoader at
ResourceLoader.load
- make the properties of the
- #4574 Improvements: at
KafkaClient
andRichKafkaConsumer
in kafka-test-utils - #4640 Expand timestamp support to handle more types/formats
- #4685 App API OpenAPI-based documentation (e.g.
https://demo.nussknacker.io/api/docs
) - #4707 Support for
overrideFrontendAuthenticationStrategy
configuration parameter in OIDC security model - works the same as in OAuth2 case. - #4739 Add configuration parameter for sending additional headers to InfluxDB (
countsSettings.additionalHeaders
) - #4762 Fix: RegExpParameterValidator, trimming SPeL comprehension
- #4744 Fix for OIDC: support for simultaneously Machine-2-Machine and Basic flow handling:
- Skip user profile call based on the fact that access token is JWT with subject and user has username configured.
accessTokenIsJwt
Oidc configuration introduced in #4283 is removed:audience
configuration specifies that access token is a JWT as it was before this change
- #4797 Ability to define the name of query parameter with access token that will be passed into tabs url
- #4804 Improvement: Allow passing globalVariables on TestRunner
1.11.3 (11 Sep 2023)
- #4629 Fix closing of shared SttpBackend when reloading model
1.11.1 (25 Aug 2023)
- #4603 Fix subprocess -> fragment migration
1.11.0 (22 Aug 2023)
- #4454 Rename 'subprocess' to 'fragment' along with all endpoints (with backward compatibility)
- #4440 Improvement: Better exception info handling at KafkaExceptionInfo.inputEvent, from now we will return here JSON with all context variables (including context parent tree)
- #4452 Ace editor bump 1.4.12 -> 1.23.0
- #4455 Improvement: Allow to run TestScenarioRunner in TestRuntime mode
- #4465 Faster loading of diagram editor (components panel) and components tab: Component's definition loaded once
- #4469 Faster loading of components tab: Component's usages fetched once instead of fetching for each processing type
- #4469 Faster loading of components tab: Don't fetch last actions
- #4353 Removed isCancelled/isDeployed flags based on
ProcessAction
,ProcessAction.action
renamed to actionType. TraitProcess
is removed. - #4488 Fix stopping processes with
/api/adminProcessManagement/stop/{processName}
endpoint on recent Flink versions - #4517 Improvement: Better readability of types display:
- values of primitive types are now displayed in parentheses - previous
String{val}
is nowString(val)
- values of record types are now displayed with
Record
prefix - previous{key: String{val}}
is nowRecord{key: String(val)}
- values of primitive types are now displayed in parentheses - previous
1.10.0 (29 Jun 2023)
- #4400 Improvement: Avoid long waits for closing job on test Flink minicluster
- #4435 Fix: handle resolving refs when parsing Swagger 2.0 schema in openapi enricher
- #4275 Add helper methods for use in expressions:
#COLLECTION
:concat
,merge
,min
,max
,slice
,sum
,sortedAsc
,sortedDesc
,take
,takeLast
,join
,product
,diff
,intersect
,distinct
,shuffle
,flatten
#UTIL
:split
- #4315 Add support for test with parameters for kafka sources - FlinkKafkaSource / LiteKafkaSource.
- #4261 Add TestWithParametersSupport support for flink engine
- #4294 Allow to pass username while migrating scenario to secondary environment.
- #4265 Removed implicit helper methods in SpEL: sum, today, now, distinct
- #4230 Extend TestInfoProvider with getTestParameters to test scenarios based on window with generated fields.
- Endpoint to test scenario based on parameters
- New generic dialog to display scenario input parameters
- #4204 ProcessingTypeDataProvider has combined data being a result of all processing types
- #4219 Components are aware of processing data reload
- #4256 Ignore error message and description when comparing errors lists in model migration tests
- #4264 Add Unknown type as valid fragment input
- #4278 Expression compilation speedup: reusage of type definitions extracted for code suggestions purpose +
added completions for some missing types like
TimestampType
(#inputMeta.timestampType
) - #4290 Expression compilation speedup: replace most regular expression matching with plain string matching
- #4292 Expose more methods for use in expressions:
java.lang.CharSequence
:replace
java.util.Collection
:lastIndexOf
java.util.Optional
:isEmpty
scala.Option
,scala.collection.Iterable
:head
,nonEmpty
,orNull
,tail
io.circe.*
(deserialized raw JSON objects):noSpacesSortKeys
,spaces2SortKeys
,spaces4SortKeys
- #4298 Support arrays in
BestEffortJsonEncoder
- #4283 Fix for OIDC provider access token verification. For OIDC provider,
accessTokenIsJwt
config property is introduced, with default valuesfalse
. This change also introduced a possibility to override username incoming from OIDC provider. For more seeusersFile
configuration. This might be helpful when other systems authenticate in Nussknacker inmachine to machine
manner. - #4246 Store components usages along with scenario json. Components usages by a scenario are stored in the processes version table. It allows to speed up fetching components usages across all scenarios, especially for a big number of scenarios and each with a lot of nodes.
- #4254 Add simple spel expression suggestions endpoint to BE
- #4323 Improved code suggestions with Typer
- #4406
backendCodeSuggestions
set totrue
, so by default Nussknacker will use new suggestion mechanism - #42994322
StateStatus
is identified by its name.ProcessState
serialization uses this name as serialized state value. For compatibility reasons, it is still represented as a nested object with onename
field. - #4312 Fix for losing unsaved changes in designer after cancel/deploy
- #4332 Improvements: Don't fetch state for fragments at /api/processes/status
- #4326 Expressions validation mechanism now is accumulating as many errors as possible instead of failing fast - for purpose of backend code completion and dictionaries substitution
- #4339 Improvement: Don't fetch state for archived/unarchived scenario, return computed based on last state action
- #4343 Updated Flink 1.16.1 -> 1.16.2
- #4346 Improvement: Don't fetch process state for fragment
- #4342 Improvement: Don't run custom action on archived scenario and fragment
- #4302 State inconsistency detection was moved from designer to DeploymentManager.
- #4360 Fix for spel validations: Typing type reference with class starting from lower case e.g. T(foo) caused nasty error
- #4357 Refactoring of scenario properties required by
DeploymentManager
(TypeSpecificData
) -
they are now derived fromProcessAdditionalFields
and are configured inadditionalPropertiesConfig
inDeploymentManagerProvider
1.9.1 (24 Apr 2023)
- #4243 Fix for: Scenario status remain "in-progress" after attempt of deploy of not validating scenario
1.9.0 (21 Apr 2023)
- #4195 Add functionality to generate test cases and test scenario without need to download a file.
- #3986 Updated sttp 2.2.9 -> 3.8.11
- #3979 Updated Flink 1.16.0 -> 1.16.1
- #4019 Make displayable process category required
- #4020 Pass category name to process migration method
- #4039 Fix for: After clicking cancel, sometimes for a moment appear "during deploy" status instead of "during cancel"
- #4041 Concurrent deploy, cancel and test from file mechanisms are allowed now
- #3994 Unification of editor/raw mode validation for JSON Schema sinks
- #3997 Removal of obsolete
subprocessVersions
. - #4060 Notifications about pending deployments of other user not appear anymore.
- #4071 Change BCrypt library
- #4077 Fix database query invoker to be async
- #4055#4080 Removed local state of designer - for HA purpose
- #4055 Performance tweaks for API operations like: process status, deploy, cancel
- #3675 Improvements: Normalize kafka params name
- #4101 Notifications fixes:
- Scenario state wasn't refreshed after deploy/cancel action was successfully finished (was only after failure)
- Notification "Deployment of ... failed ..." was presented even for cancel action
- #4102 Flink deploy now wait until job is started on TaskManagers before reporting that is finished - thanks to that status and versions panel are refreshed with "DEPLOYED" state in the same time
- #3992 Fix for compiling scenarios containing filter node with only 'false' edge
- #4127 ResourceLoader and bumps commons io 2.4 -> to 2.6
- #4122, #4132, #4179, #4189
- Add state definitions to
ProcessStateDefinitionManager
- Add
StatusResources
endpoint/statusDefinitions
that returns state definitions with default state properties (such as displayable name, icon and description), to allow filtering by state in UI. - Combine statuses Failing, Failed, Error, Warning, FailedToGet and MulipleJobsRunning into one status that represents a "Problem".
Statuses
FailedStateStatus
and "Unknown" are removed. - Status configuration for icon, tooltip and description is obligatory.
- Add state definitions to
- #4100, #4104, #4150 Before the change, the scenario list for a moment presented "local" states - based only on Nussknacker's actions log. After the change, we always present state is based on engine (e.g. Flink) state - in some places like scenario list, it is cached.
- #4131 Support for components using other languages than SpEL, added basic support for SpEL in template mode
- #4135 Added timeout configuration for fetching scenario state and bumps skuber 3.0.2 -> 3.0.5
- #4143 Use
ProcessStateStatus
to detect alerting scenarios in healthcheck/healthCheck/process/deployment
. After this change healthcheck alerts all types of deployment problems based onProcessStateStatus
, including "deployed and not running". - #4160 Testing using events from file accepts simplified test record format. SourceId and timestamp fields can be omitted from the test record and record field can be inlined. The simplified format works only for scenarios with only one source.
- #4161 Update most dependencies to latest versions
- #4155 Stop adding response header 'cache-control: max-age=0'. Akka adds correct 'etag' and 'last-modified' headers, hence caching is secure.
- #4117#4202 Fragment parameters definition is now computed based on config. Thanks to that you can use
componentsUiConfig
setting to provide additional settings like parameter's validators or editors to fragments. - #4201 Fix for: Dynamic nodes (GenericNodeTransformation) has now initial parameters inferred based on definition instead empty List
- #4224 Fix for (de)serialization of Flink state when using NU with Scala 2.13. See MigrationGuide for details.
1.8.1 (28 Feb 2023)
- #4018 Fix for: generate test data mechanism didn't work for json messages with defined schema id
- #4024 Fix encoding object in sink with JSON schema pattern properties
1.8.0 (17 Feb 2023)
- #3963 - Secure processDefinitionData/services endpoint by filtering based on user category "Read" permission
- #3945 - Allow to get Map category -> processingType through new categoriesWithProcessingType endpoint.
- #3821 - Exact typing & validation of JsonSchema enums (before only String values were handled).
- #3819 - Handle JSON Schema refs in sinks
- #3654 Removed
/subprocessDetails
in favor of/processDetails?isSubprocess=true
. - #3823, #3836, #3843 - scenarios with multiple sources can be tested from file
- #3869 cross-compile - Scala 2.12 & 2.13
- #3874 Tumbling window with OnEvent trigger saves context
- #3853 #3924 Support of patternProperties in sources/sinks with JSON Schema
- #3916
environmentAlert.cssClass
setting renamed toenvironmentAlert.color
- #3922 Bumps: jwks 0.19.0 -> 0.21.3, jackson: 2.11.3 -> 2.13.4
- #3958 OpenAPI: specify Content-Type header based on schema
- #3948
- Performance fix:
kafka
source on Flink engine doesn't serialize schema during record serialization - Configuration handling fixes:
avroKryoGenericRecordSchemaIdSerialization
wasn't checked properly - Avro: added support for top level array schema
- Performance fix:
- #3972 Lite engine: Kafka transactions are now optional and by default disabled
for Azure's Event Hubs which doesn't support them so far. For other Kafka clusters they are enabled. You can change this behavior
by setting
kafkaTransactionsEnabled
configuration option - #3914 Azure Schema Registry and Azure's Avro (de)serialization support
1.7.0 (19 Dec 2022)
-
#3560, #3560, #3595 Migrate from Flink Scala API to Java API
-
JSON Schema handling improvements:
- #3687 Support for union types
- #3695 Fixed delaying JSON records by field in universal source
- #3699 Handling null on JSON schema
- #3709 Support for typing
Map[String, T]
using JSON Schema.- When
properties
are definedadditionalProperties
is ignored and type is determined byproperties
- as it was before. - When
"additionalProperties": true
type isMap[String, Unknown]
- When
"additionalProperties": T
type isMap[String, T]
- When
- #3709
BestEffortJsonSchemaEncoder
encodes only Strings for"type": String
- #3730 Additional fields are not trimmed during encoding when
additionalProperties
are allowed by schema - #3742 More strict encoding - always validate against schema
- #3749 More precise encoding against integer schema
-
Request-response JSON schema sink improvements:
- #3607 Encoder based on response schema.
- #3727 Sink validation changes:
- Added param
Value validation mode
- We no longer support
nullable
param from Everit schema. Nullable schema are supported by union with null e.g.["null", "string"]
- Added param
- #3716 Allow to add additional fields also in
strict validation mode
, if schema permits them. - #3722 Validation of JSON schema with additionalProperties
-
#3707, #3719, #3692, #3656, #3776, #3786 Improvements in OpenAPI:
- Support for OpenAPI 3.1.0
- Basic support for type references in JSON schemas
- Better logging from OpenAPI enrichers
- Handling of API Keys in query parameter and cookie
- It's possible to configure which HTTP codes (404 by default) can be used as successful, empty response
- Documentation link is taken from global configuration, if operation doesn't provide one
- Handle recursive schemas gracefully (we fall back to Unknown type on recursion detected)
-
Upgrades:
-
#3524 Change base Docker image to eclipse temurin due to openjdk deprecation.
-
#3606 Removed nussknacker-request-response-app. See MigrationGuide for details.
-
#3626 Fix for: using Typed.fromDetailedType with Scala type aliases cause exception
-
#3576 Unified
/processes
and/processesDetails
. Both endpoints support the same query parameters. Added optionskipValidateAndResolve
in/processesDetails
,/processes/{name}
and/processes/{name}/{versionId}
to return scenario JSON omitting validation and dictionary resolving. -
#3680 Fix: validate multiple same fragments used in a row in legacy scenario jsons (without
outputVariableNames
field inSubprocessRef
) -
#3668
TestScenarioRunner.requestResponseBased()
api enhancements: returning scenario compilation errors as aValidatedNel
-
#3682 Extract generic
BaseSharedKafkaProducer
, renameSharedKafkaProducerHolder
toDefaultSharedKafkaProducerHolder
. -
#3701
TypedMap
allows access to non-existing keys in SpEL (returningnull
) -
#3733 Fix for: some validation (e.g. Flink scenario name validation) were causing error message blinking in scenario properties.
-
#3752 Do not specify migrations which did not change process in process migration comment. If no migrations, do not add comment.
-
#3754 Fix for migrating scenarios not existing on target environment #3700
- Will work after upgrading NU installations on both environments to version containing the fixup.
- In conversation between versions 1.6 - 1.7 (and reversed) only migration of scenarios that exists on both envs will work.
1.6.1 (8 Nov 2022)
- #3647 Fix for serving OpenAPI definition and SwaggerUI for deployed RequestResponse scenarios in embedded mode
- #3657 Fix for json-schema additionalProperties validation
- #3672 Fix contextId assignment for the output of ForEachTransformer (Flink)
- #3671 Fix: do not show extra scrollbar on scenario screen when panel too large
- #3681 Fix: validate multiple same fragments used in a row in legacy scenario JSON (without
outputVariableNames
field inSubprocessRef
) - #3685 Fix: inconsistent SwaggerDateTime typing (LocalDateTime/ZonedDateTime)
1.6.0 (18 Oct 2022)
- #3382 Security fix: Http cookie created by NU when using OAuth2 is now secure.
- #3385 Security fix: add http headers
'X-Content-Type-Options':'nosniff'
and'Referrer-Policy':'no-referrer'
. - #3370 Feature: scenario node category verification on validation
- #3390 Request-Response mode available for K8s deployment
- #3392 Validate scenario before deploy
- #3436 Added types with value to results of operators
- #3406 Scalatest 3.0.8 -> 3.2.10, Scalacheck 1.14.0 -> 1.15.0
- #3401 Request-Response mode publishes OpenApi specification for its services
- #3427 Added components/common/extra,components/lite/extra,.. directories for purpose of easier components adding
- #3437 Switch RR typing to SwaggerBasedJsonSchemaTypeDefinitionExtractor
- #3451 SwaggerEnrichers as well as RequestResponse support now primitive schemas
- #3473 JsonRequestResponseSinkFactory provides also 'raw editor'
- #3441 Updated Flink 1.14.5 -> 1.15.2
- #3483 Fix for: errors were flickering in newly used dynamic components - after entering to node edition they were disappearing. Now this transient situation is replaced by well-prepared form with whole necessary parameters.
- #3493, #3582 Methods added to to
DeploymentManagerProvider
:additionalPropertiesConfig
, which allows to configure additional scenario properties programmatically.additionalValidators
, which allows to define DeploymentManager-specific validators.
- #3505 Bump node version to 16.5.1
- #3506 Fix date formatting to use client timezone
- #3542 Feature: properties validation and properties additional info
(similar to
NodeAdditionalInfo
) - #3545 Testkit refactor: unification of flinkBased TestScenarioRunner and kafkaLiteBased, easier usage of kafkaLiteBased
- #3440 Feature: allow to define fragment outputs
- #3580 SwaggerEnrichers support relative service urls and handle situation when only definition url is provided (without services inside definition and without rootUrl)
- #3584 ReqRes Feature: secure RR scenario service/ingress
- #3598 Introducing configuration for controlling anonymous usage reporting by FE
- #3608 Use
ZonedDateTime
fordate-time
JsonSchema format - #3619 Patch
KafkaMetricWrapper.java
until Flink 1.15.3 is released. Read more about this bug. - #3574 Feature: instance logo can be shown next to Nu logo, by convention it has
to be available at path
<nu host>/assets/img/instance-logo.svg
- #3524 Change base Docker image to Eclipse Temurin due to OpenJDK image deprecation.
- #3632 Fix presenting validation errors for properties.
1.5.0 (16 Aug 2022)
-
#3099 Added validation for input nodes names in UnionMemo
-
#2992 Moved DeploymentComment validation to backend. Deploy with invalid comment now returns error with validation information, which is shown below input like in case of node parameters.
-
#3113 Moved last panel tab Services from Admin tab. Removed Admin tab.
-
#3121 Components and Component usages filters are more like those on Scenarios. Scenario status and editor is now visible on Component usages. Some performance issues fixed. Minor visual changes.
-
#3136 Improvements: Lite Kafka testkit
-
#3178 Improvements: more complex test scenario runner result
-
#3134 Metric counters (e.g. nodeCount) are initialized eagerly to minimize problems with initial count computations.
-
#3162 OAuth2 access token can be optionally set in cookie (useful e.g. for Grafana proxy authentication)
-
#3165 Added configuration
enableConfigEndpoint
which controls whether expose config over http (GET /api/app/config/). Default value is false. -
#3169 API endpoint
/api/app/healthCheck
returning short JSON answer with "OK" status is now not secured - you can use it without authentication -
#3075 Added full outer join
-
#3183 Attachments table has proper column format (migration is automatic, doesn't need any manual actions)
-
#3189 Pass accessToken to iframes
-
#3192 Improvements: db enrichers measuring
-
#3198 Fix: request response metrics
-
#3149 Changed end bracket for SpEL in SQL to
}#
-
#3191 Fix: wrong value shown when removing row in MapVariable
-
#3227 Allow TAB navigation from expression editors
-
#3208 Fix: set maxAge in seconds in set-cookie header
-
#3209 ConfigMap for K8 runtime has been split into two config maps (to separate logback conf) and one secret (with model config - which often contains confidential data)
-
#3187 #3224 Switch component replaced by Choice component. Moved choice/filter edges conditions configuration to form visible in node window, added few enhancements: ordered of switch edges, only false edge for filter component. "Default" choice edge type, exprVal and expression are now deprecated and disabled in new usages.
-
#3187 Fix: duplicated union edges.
-
#3210 Expose UI metrics and scenario lite metrics via Prometheus
-
#3045 json2avro bump 0.2.11 -> 0.2.15 + fix default values wasn't converted to logical types
-
#3223 Fix for encoding/decoding JWT & OIDC tokens - correct handling fields representing epoch time (e.g.
exp
- which represents token expiration time). Also, CachingOAuth2Service was migrated to use sync cache instead of async (evicting data in async cache can be tricky -expireAfterWriteFn
is not applied to not completed futures). Since, it was only usage ofDefaultAsyncCache
- it has been removed from the codebase. -
#3239 Added jul-to-slf4j to be sure that all logs going via logback
-
#3238 K8 runtime's logback conf can be stored in single ConfigMap for all runtime pods
-
#3201 Added literal types
-
#3240 Error topic created by default if not exists
-
#3245 #3265 #3288 #3295 #3297 #3299 #3309 #3316 #3322 #3337 #3287 Universal Kafka source/sink, handling multiple scenarios like: Avro message for Avro schema, JSON message for JSON schema. Legacy, low level Kafka components can be turned on by new lowLevelComponentsEnabled flag
- #3317 Support JSON Schema in universal source
- #3332 Config option to handle JSON payload with Avro schema
- #3354 Universal source optimization - if message without schemaId, using cache when getting one
- #3346 UniversalKafkaSink provides also 'raw editor'
- #3345 Swagger 2.2.1, OpenAPI 3.1, JSON Schema typing and deserialization same as in OpenAPI components
-
#3249 Confluent 5.5->7.2, avro 1.9->1.11 bump
-
#3270 Added type representing null
-
#3263 Batch periodic scenarios carry processing type to distinguish scenarios with different categories.
-
#3269 Fix populating cache in CachingOAuth2Service. It is fully synchronous now.
-
#3264 Added support for generic functions
-
#3253 Separate validation step during scenario deployment
-
#3328 Schema type aware serialization of
NkSerializableParsedSchema
-
#3071 3379 More strict Avro schema validation: include optional fields validation, handling some invalid cases like putting long to int field, strict union types validation, reduced number of validation modes to lax | strict.
-
#3289 Handle asynchronous deployment and status checks better
-
#3071 Improvements: Allow to import file with different id
-
#3412 Corrected filtering disallowed types in methods
-
#3363 Kafka consumer no longer set
auto.offset.reset
toearliest
by default. Instead, Kafka client will use default Kafka value which islatest
-
#3371 Fix for: Indexing on arrays wasn't possible
-
#3376 (Flink) Handling Kafka source deserialization errors by exceptionHandler (https://nussknacker.io/documentation/docs/installation_configuration_guide/model/Flink#configuring-exception-handling)