Skip to main content
For user-facing changes, refer to the Release Notes page.
For details about versioning, see our Versioning Policy.
The 6.2 branch forked the 6.1 branch from version 6.1.20.
See the 6.1 changelog for changes before the fork.
Format based on Keep a Changelog

6.2.0-beta

This is a preproduction release, see https://docs.activeviam.com/preproduction-releases
2026-07-03

Added

  • PIVOT-13649 Monitoring: The ActivePivotQueryStarted and ActivePivotQueryDone health events now expose the query task identifier and a flag telling whether the query is a top-level query. A health event handler can use the task identifier to correlate an event with the Query REST API V10 killQueryById endpoint.
  • PIVOT-13886 REST API: In the query plan retrieval response, a new measuresData field on retrievals exposes the post-processor plugin key for post-processed measures.
  • PIVOT-13912 Continuous Query Engine: Added the disableResultLimitOnUpdates engine property as an opt-in to disable the IQueriesResultLimit check on the CQE shared update path, so continuous-query updates are no longer capped by the result-size limit; initial-view queries still honor the limit. See continuous query engine.
  • PIVOT-14073 Cube: Added IMember#getLevelIdentifier(), which returns the LevelIdentifier of the level this member belongs to, and IAxisMember#getLevelOrdinal(), which returns the ordinal of that level.
  • PIVOT-14160 Parquet source: IParquetParser now extends AutoCloseable. It can also be built with a MessageHandler to handle parsing lifecycle events: start of parsing, publication of parsed records, and parsing errors.
  • PIVOT-14239 Concurrency: IInterruptor#registerCallbackOnInterruption now returns a Registration, an AutoCloseable whose close() unregisters the callback. A callback registered on a long-lived interruptor can now be removed once its guarded operation completes, instead of lingering until the whole computation ends.

Changed

  • PIVOT-10812 Distributed configuration now rejects declaring several distributing levels that belong to the same hierarchy. Such a configuration was previously accepted but redundant, since the nested levels added no extra partitioning.
  • PIVOT-11167 DirectQuery: Condition operands on boolean fields are now type-checked during condition normalization.
  • PIVOT-12001 Cube: A virtual hierarchy with an OBJECT-typed level and no member name parser now throws a ConfigurationException at cube build time. Previously such a misconfiguration only logged a SEVERE message and let the cube build in a degraded state. Define a member name parser on the level (for example through the level builder’s withMemberNameParserPluginKey) or avoid the OBJECT discriminator to fix it.
  • PIVOT-12850 IIterableAggregatesRetrievalResult now implements IColumnarTable and getColumn(int) returns an IArray.
  • PIVOT-13108 Monitoring: The Streaming Service monitoring previously provided by the apm module is now built into Atoti Server. The per-query report logs are now disabled by default (the APM module previously enabled them by default) and controlled by the atoti.server.query.service.streaming.logging, atoti.server.query.service.streaming.detailed-logging and atoti.server.query.service.streaming.log-memory-stats properties, or at runtime over JMX through StreamingQueriesServiceLogging and StreamingQueriesServiceStatistics MBeans. See the migration notes.
  • PIVOT-13111 Monitoring: The query performance evaluator (adaptive slow-query detection) previously provided by the apm module has been removed; its role is now covered by OpenTelemetry traces and metrics together with the query history module. The default query executor enriches the current trace span with each query’s identity. The activeviam.apm.query.performance.evaluation.* properties and the com.activeviam.apm.query.slow slow-query log category no longer exist. See the migration notes.
  • PIVOT-13111 Monitoring: The apm module has been removed. Its remaining function is now built into Atoti Server (wired by the atoti-server-starter and the observability plugin). The thread-status monitoring is replaced by a passive blocked-thread watchdog that logs a full thread dump — to atoti.server.monitoring.health.blocked-thread (legacy alias com.activeviam.apm.health.blocked-thread) — when blocked threads are detected. The watchdog is now disabled by default; enable it with atoti.server.monitoring.blockedThreadWatchdog.enabled=true and tune its atoti.server.monitoring.blockedThreadWatchdog.scanIntervalMs. The per-state thread-count ThreadStatus MBean and the DirectChunkAllocator MBean (a duplicate of the MemoryAllocator MBean already exposed by the Atoti starter) have been removed, along with the activeviam.apm.enable.all.apmanager.statistics and activeviam.apm.node.starter.jmx.enabled properties. See the migration notes.
  • PIVOT-13111 Spring Boot starter: The atoti-server-apm-starter has been removed. Its auto-configuration is now provided by the main atoti-server-starter. See the migration notes.
  • PIVOT-13113 Monitoring: Renamed the node-instance-name logging property from activeviam.apm.node.instance.name to atoti.server.node.instance.name; its default value also changed from activepivot to atoti. This property sets the node name shown in log lines. See the migration notes.
  • PIVOT-13856 Spring Boot starter: The legacy ActivePivot services IAdministrationService and ILicensingService, which mirror the payloads of the removed SOAP web services, are no longer registered as Spring beans by default. Set the atoti.server.service.legacy.enabled property to true to restore them.
  • PIVOT-14045 The Netty max message size property no longer accepts fully-qualified class names. Only the public message-type keywords are accepted and an unknown key raises a configuration error.
  • PIVOT-14159 DirectQuery: All SQL-based connectors (Databricks, MS SQL, Redshift, Snowflake, Synapse, generic JDBC) now consistently route connections through their HikariCP connection pool. Previously some connectors opened a new JDBC connection on every query. The Snowflake, generic JDBC, and Databricks connectors gain two new configuration properties: see Snowflake, Generic JDBC, and Databricks connector documentation.

Deprecated

  • PIVOT-13856 Spring Boot starter: The legacy ActivePivot services IAdministrationService and ILicensingService are deprecated and planned for removal.
  • PIVOT-13886 REST API: In the query plan retrieval response, the measures field on retrievals is deprecated. Use measuresData instead.
  • PIVOT-14073 Cube: IMember#getHierarchyInfo() and IMember#getLevelInfo() are deprecated since 6.2.0 and planned for removal in 6.3.0. Use IMember#getLevelIdentifier() as a lighter replacement; for a single attribute, prefer IAxisMember#getLevelOrdinal() over getLevelInfo().getOrdinal(). See the migration notes.

Removed

  • PIVOT-7426 Datastore: Removed the deprecated IDatastoreSchemaDescription#getStoreDescriptions() and IDatastoreSchemaDescription#getReferenceDescriptions(). Use getTables() and getJoins() respectively.
  • PIVOT-7426 Datastore: Removed the deprecated IReferenceDescription#getOwnerStore() and IReferenceDescription#getTargetStore(). Use getSourceTableName() and getTargetTableName() respectively.
  • PIVOT-7426 Datastore: Removed the deprecated IStoreDescription#getKeyFields(). Use getKeyFieldNames() instead.
  • PIVOT-7426 Datastore: Removed the deprecated ReferenceDescription constructors taking field mappings as a List<? extends IPair<String, String>>. Use the constructor taking a Set<ITableJoin.FieldMapping> instead.
  • PIVOT-7426 Datastore: Removed the deprecated StoreDescription(String, Collection<String>, List<? extends IFieldDescription>) constructor. Use StoreDescription.builder() or StoreDescription.simpleBuilder() instead.
  • PIVOT-7426 Query: Removed the deprecated QueryExecution(Boolean) constructor. Use QueryExecution.builder() instead.
  • PIVOT-7426 Post-processors: Removed the deprecated AAdvancedPostProcessor.OUTPUT_TYPE constant. Use IPostProcessor.OUTPUT_TYPE_PROPERTY instead.
  • PIVOT-7426 Post-processors: Removed the deprecated protected AAdvancedPostProcessor.getLevel(String) method. Use HierarchiesUtil.getLevel(getActivePivot(), levelDescription) instead.
  • PIVOT-7426 Post-processors: Removed the deprecated protected AAdvancedPostProcessor.getHierarchy(String) method. Use HierarchiesUtil.getHierarchy(getActivePivot(), hierarchyDescription) instead.
  • PIVOT-10152 CSV Source: Removed the deprecated ICsvParserConfigPolicy interface (along with LineAndFileLimitCsvParserPolicy and NoRestrictionCsvParserConfigPolicy) and the getParserPolicy()/setParserPolicy() methods on CsvParserConfiguration. The line-limit, file-limit, and step-sampling functionality they provided has been removed with no replacement.
  • PIVOT-10152 Parquet Source: Removed the deprecated IParquetReaderPolicy interface and the IParquetParserBuilder.withPolicy(IParquetReaderPolicy) builder method. The line-limit, file-limit, and step-sampling functionality they provided has been removed with no replacement.
  • PIVOT-10152 Parquet Source: Removed getPublishedRecordCount() and getSkippedRecordCount() from IParquetParsingInfo. Use getRecordCount() instead of getPublishedRecordCount(); getSkippedRecordCount() always returned 0 and has no replacement.
  • PIVOT-10724 Removed the deprecated ADirectQueryApplicationConfig#directQueryDatabase(), use ADirectQueryApplicationConfig#database() instead.
  • PIVOT-13035 Removed the deprecated SnowflakeProperties.SnowflakePropertiesBuilder#additionalOption(SFSessionProperty, String), use SnowflakeProperties.SnowflakePropertiesBuilder#additionalOption(String, String) instead.
  • PIVOT-13113 Monitoring: Removed the APM startup configuration dump (ExtraLoggingConfig), which logged all resolved Spring environment properties and the classpath on the com.activeviam.apm.spring logger, along with its activeviam.apm.config.hide.properties.pattern property. Use Spring Boot’s Actuator env/configprops endpoints or the --debug startup flag instead.
  • PIVOT-14026 Removed the public method ICanBuildCommonCubeDescription#withQueryExecutor(), which let configurations declare a custom query executor. The query executor is no longer user-replaceable. Use the ActivePivotQueryStarted and ActivePivotQueryDone health events to monitor queries.
  • PIVOT-14016 Snowflake: Avoid a lag bug from the Snowflake platform triggered by interaction between incremental refresh and time travel. Remove the old workaround SnowflakeDatabaseSettings.lastAlteredMargin.
  • PIVOT-14039 Removed the deprecated BITMAP_PLUGIN_TYPE, JIT_PLUGIN_TYPE and LEAF_PLUGIN_TYPE constants from IBuildableAggregateProviderDescriptionBuilder. Use the equivalents on IAggregateProviderDefinition.
  • PIVOT-14040 Removed IMultiVersionDistributedActivePivot#getDistributedApplicationInformation(). Use getApplicationNames() to list the distributed application names.
  • PIVOT-14041 Cube Filter: Removed CubeFilter.getSubCubeFromContext(IContext) (deprecated since 6.1; use CubeFilter.getSecurityAndFilter(IContext) instead) and CubeFilter.intersectWithSecurity(ICubeFilter, IContext) (deprecated since 6.1; no public replacement).

Fixed

  • PIVOT-9136 Content Server: Fixed a race condition on websocket unregistration that lead to the error java.lang.IllegalStateException: The WebSocket session [id] has been closed and no method (apart from close()) may be called on a closed session
  • PIVOT-9136 Content Server: Closing a remote content listener no longer logs a spurious BadArgumentException caused by trying to unregister it again after its WebSocket session has already been closed.
  • PIVOT-14123 Continuous GAQ: Full-refresh Arrow streams no longer expose measures the query did not request.
  • PIVOT-14140 Database: ICursor#toTuples() and ICursor#toRecords() no longer append all-null padding rows when materializing a cursor that returns fewer rows than the batch size for a batch (for instance, when a filter has to be evaluated on records joined across several stores). The materialized result now honors the row count returned by transfer.
  • PIVOT-14154 Database cache: Feeding the cache no longer holds the cached table’s transaction lock during the external-database read, so a slow or stalled feed no longer blocks other queries on the same table or leaves it locked indefinitely. Canceling a query that triggered a feed now aborts the in-flight external read, and a query waiting on another query’s feed stops waiting when canceled. A canceled or failed feed no longer prevents a later query from feeding the same partition. If the cancellation arrives while the rows are being written to the cache, that feed still completes, so the partition may stay cached even though the query was canceled; this is intended, as the cached data is valid and benefits later queries.
  • PIVOT-14183 Datastore: A continuous selection whose condition filters on a field reached through a reference now receives the same initial view regardless of when the listener subscribes. Previously, subscribing to an already-populated datastore could drop rows whose reference did not resolve, instead of keeping them with the referenced field’s default value.
  • PIVOT-14185 Datastore: A transaction whose commitTransaction() or rollbackTransaction() throws (for example on a duplicate key) no longer leaves a lock held. Previously this leaked lock caused subsequent schema updates to hang indefinitely.
  • PIVOT-14226 Distribution: Releasing a concealed branch on a data node no longer throws IllegalStateException.
  • PIVOT-14264 Database: ICursor#toTuples() and ICursor#toRecords() no longer throw UnsupportedOperationException on DirectQuery result cursors or on aggregate and distinct query result cursors.
  • PIVOT-14277 REST API: Endpoints reading a raw @RequestBody String from an application/json request (such as the Content Server POST/PUT /files) no longer fail with HTTP 400, this issue was introduced by the Spring Boot 4 upgrade.
  • PYTHON-913 CSV Source: LoggingCsvHealthEventHandler now accepts a custom ITagAcceptor via a new constructor, consistent with the Parquet and JDBC equivalents.
  • PYTHON-923 Monitoring: Setting a health log tag to OFF in the activeviam.health.log specification no longer throws a NullPointerException. The OFF rule now correctly silences its tags, and an exact OFF tag takes precedence over a less restrictive matching wildcard.

Security

  • PIVOT-13914: Upgraded to Spring Boot 4.1.0.

6.2.0-M1

This is a preproduction release, see https://docs.activeviam.com/preproduction-releases
2026-06-15

Added

  • PIVOT-9550 Pivot REST API: The cube discovery endpoint now exposes the type of the data stored by each level, through a new dataType object carrying the content type (for example INTEGER, DOUBLE or STRING), the Java class of the members, and their nullability. Clients can use it to know whether a level is numeric without inspecting its members. The revision of the pivot REST API is now 5.
  • PIVOT-10020 JDBC Source: Added JdbcRowFailureEvent and the onJdbcRecordFailed method on IJdbcSourceHealthEventHandler, so that health event handlers are now notified when an error occurs while processing a JDBC row.
  • PIVOT-12675 Cube Metadata: Added isSlicing() to IHierarchyInfo, indicating whether the hierarchy is slicing (i.e., does not have an “All” member). Added getDefaultHierarchyInfo() to IDimensionInfo, returning the default hierarchy of the dimension.
  • PIVOT-14009 Memory Analysis: MemoryAnalysisServiceFactory is now part of the public API. It can be used to instantiate an IMemoryAnalysisService without the Spring Boot Atoti starter.

Changed

  • PIVOT-0000 Atoti UI: All Atoti UI artifacts (atoti-ui, atoti-ui-initial-content, atoti-admin-ui) are now versioned by the single atoti-ui.version Maven property, as they are released in lockstep. The admin-ui.version property is removed. Versions are aligned on 5.2.24 (previously atoti-ui.version 5.2.20 and admin-ui.version 5.2.22).
  • PIVOT-11413 Datastore: Moved NoTransactionException in public API, from package com.activeviam.database.datastore.internal to com.activeviam.database.datastore.api.transaction.
  • PIVOT-11541 Datastore: Removed the unnecessary throws DatastoreTransactionException declarations from ITransactionalWriter.remove/removeAll, IOpenedTransaction.updateWhere/rollback, and ITransactionManager.rollbackTransaction/stop, which never threw it. As DatastoreTransactionException is a checked exception, remove any catch clause that wrapped only these calls.
  • PIVOT-11619 IAgent does not extend IExtendedPluginValue anymore. If a given agent implementation needs to be an extended plugin value, that agent needs to explicitly declare its dependency to IExtendedPluginValue.
  • PIVOT-13108 Monitoring: The Queries Service monitoring previously provided by the apm module is now built into Atoti Server: query counters and exception logging no longer require the APM module. The per-query report logs are now disabled by default and controlled by the atoti.server.query.service.logging, atoti.server.query.service.detailed-logging and atoti.server.query.service.log-memory-stats properties, or at runtime over JMX. The name=QueriesService,type=Monitoring MBean is replaced by QueriesServiceStatistics (counters) and QueriesServiceLogging (logging toggles). See the migration notes.
  • PIVOT-13108 Monitoring: The JSON Queries Service monitoring previously provided by the apm module is now built into Atoti Server, following the same pattern as the Queries Service. The per-query report logs are disabled by default and controlled by the atoti.server.query.service.json.logging, atoti.server.query.service.json.detailed-logging and atoti.server.query.service.json.log-memory-stats properties, or at runtime over JMX. The name=JsonQueriesService,type=Monitoring MBean is replaced by JsonQueriesServiceStatistics (counters) and JsonQueriesServiceLogging (logging toggles), and the total query counters now correctly include drillthrough queries. See the migration notes.
  • PIVOT-13111 Logging: The Logback conversion-rule converters have been moved out of the apm module. LogInstanceConverter and LogThreadConverter are now in com.activeviam.tech.logging.logback.api (artifact com.activeviam.tech:logging-logback-utils), and LogUserConverter is now in com.activeviam.tech.logging.logback.spring.api (artifact com.activeviam.tech:logging-logback-spring). Update the fully-qualified class names referenced in your logback.xml/logback-spring.xml <conversionRule> declarations.
  • PIVOT-13324 Observability: Atoti JFR events have been renamed to follow Oracle’s JFR naming and labeling guidelines. Event names now share a flat atoti.* namespace (e.g. atoti.CubeCommit instead of atoti.server.cube.CubeCommitEvent), the Event suffix has been dropped, and labels use headline-style capitalization. JFR configuration files referencing the previous names must be updated; see JFR events for the new identifiers.
  • PIVOT-13635 Build: Atoti Server requires Java 25
  • PIVOT-13720 Default cursor batch size raised from 16 to 128, which benchmarking identified as a more performant default. The previous value can be restored at startup via the atoti.server.records.cursor.batchSize system property.
  • PIVOT-13785 Observability: The type of some metric tags has changed from String to a more appropriate type such as boolean, long or List<String>.
TagNew Type
agg_provider.partition.idlong
atoti.root.modeboolean
cacheboolean
cube-namesList<String>
cube.epoch.currentlong
epoch-idlong
is-transaction-shadowboolean
measuresList<String>
node.idlong
partition.idlong
number-eventslong
query.fieldsList<String>
snowflake-resultset-countlong
source-list-topicsList<String>
stores-locked-by-transactionList<String>
successboolean
writable-storesList<String>
  • PIVOT-13886 REST API: In the query plan retrieval response, the measures field on retrievals is deprecated and replaced by measuresData, which additionally exposes the post-processor plugin key for post-processed measures.
  • PIVOT-13948 Datastore: StoreDescription, OptimizationDescription and SimpleStoreDescriptionBuilder.keyFieldNames(...) now accept a Collection<String> instead of a List<String> for key/index field names to enhance the fact that the order is ignored.
  • PIVOT-13949 Upgraded Jackson’s version to 3.1.2.
  • PIVOT-13963 Atoti UI: Bumped atoti-ui.version from 5.2.20 to 5.2.24 and admin-ui.version from 5.2.22 to 5.2.24.
  • PIVOT-13994 Distribution: Moved IMultiVersionDataActivePivot from package com.activeviam.activepivot.dist.impl.api.cube to com.activeviam.activepivot.dist.datanode.impl.api.cube.
  • PIVOT-14076 Logging: AAdvancedPostProcessor.logger is now private instead of protected; subclasses should use their own logger (e.g. LoggerFactory.getLogger(PivotLoggingConstants.POST_PROCESSOR)). Pivot logger names are now public API in PivotLoggingConstants and moved to the atoti.server.pivot.* namespace; the old atoti.server.active_pivot.* names still work via LoggerSwitcher.
  • PIVOT-14109: Spring AI: Bumped org.springframework.ai from 2.0.0-M6 to 2.0.0.
  • PIVOT-14110 DLC: Errors raised while creating a local CSV topic include more information.
  • PIVOT-13613 Filtering API: Conditions are no longer extended-plugin values. ILogicalCondition and IMatchingCondition no longer extend IExtendedPluginValue, the getType() method and the plugin-key constants have been removed, the LogicalConditionExtendedPlugin/MatchingConditionExtendedPlugin extended plugins are no longer registered, and the ACondition base class has been removed. See the migration notes.
  • PIVOT-13804 Continuous GAQ: Continuous GAQ queries no longer require forcing full refreshes through IAggregatesContinuousHandler#FORCE_FULL_REFRESH_ENGINE_PROPERTY. The service now emits incremental delta batches where possible and full-refresh batches otherwise.

Deprecated

  • PIVOT-13676 IActivePivotContentServiceConfig is deprecated and scheduled for removal in 6.3.0. Inject IActivePivotContentService directly as a Spring bean instead of implementing this configuration interface.
  • PIVOT-13676 IActivePivotManagerDescriptionConfig is deprecated and scheduled for removal in 6.3.0. Declare IActivePivotManagerDescription (and optionally IEpochManagementPolicy) as @Bean methods in your own @Configuration class directly, without implementing this interface.
  • PIVOT-13676 IDatastoreConfig is deprecated and scheduled for removal in 6.3.0. Declare IDatastore as a @Bean method in your own @Configuration class directly, without implementing this interface.
  • PIVOT-13676 IRoleContextConfig is deprecated and scheduled for removal in 6.3.0. Declare IEntitlementsProvider as a @Bean method in your own @Configuration class directly, without implementing this interface.
  • PIVOT-13676 IDatastoreSchemaDescriptionConfig is deprecated and scheduled for removal in 6.3.0. Declare IDatastoreSchemaDescription as a @Bean method in your own @Configuration class directly, without implementing this interface.
  • PIVOT-13676 IParameterAwareDatastoreSchemaDescriptionConfig is deprecated and scheduled for removal in 6.3.0. Declare IDatastoreSchemaDescription and IParameterStoreConfiguration as @Bean methods in your own @Configuration class directly, without implementing this interface.

Removed

  • PIVOT-10061 Parsers: Removed the deprecated integer and integer[] parser type keys (including sized and delimited variants). Use the equivalent int and int[] keys instead; the parsing behavior is unchanged.
  • PIVOT-10231 Direct Query Snowflake: Removed the deprecated SnowflakeDialectSettings#arrayAggWrapperFunctionName setting and the ARRAY_AGG_WRAPPER_FUNCTION_NAME connection option used to wrap ARRAY_AGG operations with a custom UDF. The built-in Snowflake SQL function is now faster, so the wrapper is no longer needed.
  • PIVOT-10885 Distribution: Removed the deprecated String-based distributing level APIs. IApplicationDescriptionBuilderWithId#withDistributingFields(String...), IDistributedApplicationDefinition#getDistributingFields(), and the QueryClusterDefinition.DistributedApplicationDefinition(String, List<String>) constructor have been removed; use withDistributingLevels(LevelIdentifier...), getDistributingLevels(), and QueryClusterDefinition.DistributedApplicationDefinition(String, List<LevelIdentifier>) instead. IApplicationDescriptionBuilderWithId#withoutDistributingFields() has been renamed to withoutDistributingLevels(), and QueryClusterDefinition.DistributedApplicationDefinitionV2 has been renamed to QueryClusterDefinition.DistributedApplicationDefinition.
  • PIVOT-12455 Versioning: Removed IVersionLifecycleHandler from the public API.
  • PIVOT-12150 Removed the rangeSharing aggregate provider property (IAggregateProviderDefinition.RANGE_SHARING). Range sharing is still available through the IQueryExecution context value.
  • PIVOT-13523 The JMX attributes and operations of the datastore TransactionManager (getLatestTransactionTime, getAvgTransactionTime, getNumberTransactions, getAddedOrUpdatedRecords, getRemovedRecords, addSpeed, removalSpeed) are no longer exposed. Use the metrics sent to the observability backend via OpenTelemetry instead.
  • PIVOT-13524 Removed the deprecated ICsvSourceConfiguration interface. Use CsvSourceConfiguration directly.
  • PIVOT-13525 Removed ICsvParserConfiguration, IFileParserConfiguration and FileParserConfiguration. Use CsvParserConfiguration directly.
  • PIVOT-13526 DataTable has been removed. Use StoreDescription for a datastore table or a TableDescription for a DirectQuery table.
  • PIVOT-13529 Removed the deprecated IParquetReaderFactory#create(InputFile, ReadSupport, org.apache.hadoop.conf.Configuration) overload. Use the overload taking a ParquetConfiguration instead; wrap an existing Hadoop Configuration with new HadoopParquetConfiguration(...).
  • PIVOT-13532 Distribution: Removed the deprecated concealed measures feature. The withConcealedMeasures builder methods, IDataClusterDefinition#getConcealedMeasures/setConcealedMeasures, and the now-redundant withAllMeasures builder step have been removed. Concealing hierarchies and branches is still supported.
  • PIVOT-13785 Removed IQuery#collectAdditionalSpanAttributes(BiConsumer<String, String>) and its implementations.
  • PIVOT-13913 Direct Query Databricks: Removed the deprecated feature of UDAF for vector aggregation.
  • PIVOT-14017 Removed the deprecated StartBuilding.Builder#withEpochManager(IEpochManager) method. Use StartBuilding.Builder#withEpochPolicy(IEpochManagementPolicy) instead.
  • PIVOT-14019 Removed the deprecated PersistedBuilder#lockOptions(boolean) method, which was public by mistake. Use PersistedBuilder#databaseLocks(LockOptions) instead.
  • PIVOT-14020 Removed the unusable IMessengerDefinition.AGENTS and IMessengerDefinition.SEPARATOR constants. All IDistributedAgent implementations are internal API, so the constants had no supported use.
  • PIVOT-14025 Removed the deprecated duplicate APIs in the io.atoti.runtime.api.measures and io.atoti.server.common.api.plugins packages. Use their com.activeviam.atoti.application.api.measures and com.activeviam.atoti.server.common.api.plugins counterparts.
  • PIVOT-14028 Distribution: Removed the deprecated IMultiVersionDistributedActivePivot#unloadMembersFromDataNode method, along with its internal UnloadMemberMessage, the IMessengerDefinition#UNLOAD_MEMBERS_MESSAGE_TIMEOUT property and the related distribution.unload_members_from_data_node.* metrics. Use IMultiVersionDataActivePivot#maskMembers and IMultiVersionDataActivePivot#unmaskMembers instead.
  • PIVOT-14035 Removed the deprecated 4-argument constructor of ActivePivotTransactionCommittedEvent. Use the 6-argument constructor instead, passing -1, -1 for the start and commit timings when they are unknown.
  • PIVOT-14044 Removed the deprecated IGenericAggregationFunction.SUM_PRODUCT_FUNCTION_PLUGIN_KEY constant. Use IMultiSourceAggregationFunction.SUM_PRODUCT_FUNCTION_PLUGIN_KEY instead.
  • PIVOT-14054 Query API: Removed the deprecated constructors of GetAggregatesQuery and DrillthroughQuery. Use their respective builders instead.
  • PIVOT-14054 CSV Source: Removed the deprecated constructors of CsvParserConfiguration and CsvSourceConfiguration. Use CsvParserConfiguration.builder() and CsvSourceConfiguration.builder() instead.
  • PIVOT-14038 Removed the deprecated IFieldDescription accessors isNullable(), supportEmptyString(), getDefault() and getContentClass(). Use getType() with the corresponding IFieldType methods (isNullable(), supportEmptyString(), getDefaultValue(), getDataClass()) instead.
  • PIVOT-14096 Removed the empty Maven module com.activeviam.springboot:atoti-runtime-starter, kept as an alias since it was renamed in 6.1. Use com.activeviam.springboot:atoti-server-application-starter instead.
  • PIVOT-14097 Removed the empty Maven module com.activeviam.activepivot:activepivot-ext. Import com.activeviam.activepivot:core and optionally com.activeviam.activepivot:activepivot-dist-impl instead.

Fixed

  • PIVOT-11585 Content Server: Fixed a startup race in high-availability deployments where two instances initializing concurrently against a fresh shared database could both attempt to create the root directory, causing one of them to fail to start with IllegalStateException: Entry at path / already exists.
  • PIVOT-13743 Cube: Reduce the creation of transient HierarchyIdentifier objects.
  • PIVOT-13947 Continuous GAQ REST API: Stopping a publisher now cancels all the continuous queries it owns.
  • PIVOT-13986 MDX: Non-empty cross-join evaluation now periodically checks for interruption, attempting to exit early from a big cross-join when the query has been stopped (cancellation or timeout).
  • PIVOT-14012 DirectQuery: Primary-key discovery is now skipped for views, which have no primary key. This avoids discovery failures with JDBC drivers that reject the primary-key metadata query on a view instead of returning no rows.
  • PIVOT-14112 Cube: Fixed the leaf and bitmap aggregate providers returning incorrect results when SubCubeProperties.grantMembers uses custom ICondition as path elements on a multi-level hierarchy.

Security

  • PIVOT-13980 Security: Removed the activeviam.jwt.* application properties, deprecated since 6.1. Use the atoti.jwt.* equivalents instead. The expiration property is a Duration. The available formats are described in Spring’s documentation. For this property, a unitless integer will represent Seconds.