Skip to main content
Read the release notes for a higher level view. Atoti Python SDK implements Atoti version policy.
2026-09-30

Added

Changed

  • Upgraded Atoti UI to 5.2.28.
  • atoti.lookup() whose mapping targets a level is created on an already created cube without restarting it, unless the looked-up column itself feeds a level PYTHON-971.

Deprecated

Fixed

  • atoti.agg.sum_product() rejected array columns of type float[], long[], and int[] with TypeError: Only array columns of type `double[]` are supported PYTHON-985.
  • atoti.Session.data_model_transaction() failed when a change it held could not be applied to the running cube, for instance with Cannot change the dictionary of an existing level PYTHON-990.
  • atoti.Session.logs_path named a file that was never written when the observability plugin was installed PYTHON-993. The session logged to the standard output only, whether the file’s location came from atoti.LoggingConfig.destination or from the default one under $ATOTI_HOME.
  • atoti.Table.load() hung forever when a data model change, such as assigning a measure with atoti.Cube.measures from another thread, was requested while a load was running PYTHON-991. The data model change waited for the load to end while the load waited for the change to open, and every later load or request reading the data model then hung too, until the session was restarted.
  • A data model change, such as assigning a measure with atoti.Cube.measures, failed with IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] when another client of the same session changed the data model at the same time PIVOT-15126. Every connected client is notified that the data model may have changed, and a single unreachable client failed the change as well, leaving the clients not yet notified unaware of it.
  • Changing several things at once, such as updating atoti.security.OidcSecurity.role_mapping with more than one entry, raised TypeError: Invalid AST Node when graphql-core 3.3 was installed PIVOT-15203.

Security

2026-09-03

Added

Changed

Deprecated

Fixed

  • A data load whose transaction failed at commit time raised a NullPointerException instead of a descriptive error PYTHON-778.
  • Joining a distributed cluster rebuilt the cube, re-feeding all aggregated data and re-issuing every aggregation query against the database, which could be very expensive in a DirectQuery setup PIVOT-14807.
  • Every request to a session secured with Kerberos failed with java.lang.ClassNotFoundException: org.springframework.security.crypto.codec.Base64 PIVOT-14797.
  • A role restricted on a slicing hierarchy holding a single level saw an empty cube instead of the restricted members PIVOT-14665. This applies to both atoti.Cube.restrictions and atoti.tables.Tables.restrictions.
  • Generating a token on the MCP credentials page failed PIVOT-14805. The page was also only reachable at /mcp-credentials/index.html, not at /mcp-credentials.
  • atoti.KerberosConfig.username_case_conversion and atoti.LdapConfig.username_case_conversion applied to users of other authentication providers PYTHON-974. A basic_authentication user registered in lowercase was denied its individual_roles (HTTP 403) when the SSO config used "upper".
  • A data cube could be missing from the cluster it had joined, leaving the query cube without any of its measures PIVOT-14932. A query cube under load could drop its answer to a join request instead of sending it, and nothing sent that answer again. After ten unanswered attempts the data cube gave up and formed a cluster of its own, while the query cube had already counted it in as a member. Several cubes joining at once, typically when the cluster restarts, made it more likely.
2026-07-27
The changes below are relative to Atoti Python SDK 0.9.16.

Added

Changed

Dependencies

Atoti Python SDK is versioned in lockstep with Atoti Server.Each 6.2.x Python SDK release depends on the matching 6.2.x Server release.

Deprecated

  • atoti.Hierarchy.dimension_default PIVOT-14220. Use atoti.Dimension.default_hierarchy instead:

Removed

Everything deprecated in the 0.9.0 to 0.9.16 releases has been removed.Upgrade to 0.9.16 and resolve all deprecation warnings before upgrading to 6.2.0.
  • Support for connecting to Atoti servers older than 6.0.0-M1.
  • "Object[]" data type. Use "Object" or the other strongly typed array data types instead.
  • atoti.QueryCube.unload_members_from_data_cube() PIVOT-14028.
  • atoti_ai_openai.ChatConfig.completions_path:
  • atoti_ai_openai.ChatConfig.http_headers. Use atoti_ai_openai.ConnectionConfig.custom_headers instead:
  • atoti_ai_openai.ChatConfig.retry_max_attempts and the other retry_* attributes. Use atoti_ai_openai.ConnectionConfig.max_retries and atoti_ai_openai.ConnectionConfig.timeout instead:
  • atoti_ai_openai.ConnectionConfig.project_id.
  • atoti_directquery_snowflake.ConnectionConfig.array_agg_wrapper_function_name PIVOT-10231. Snowflake’s built-in ARRAY_AGG function is faster than the wrapper UDF, so nothing replaces it.