0.9.12#

Released on Jan 23, 2026.

Added#

Changed#

  • Upgraded Atoti Server to 6.1.16.

  • Upgraded Atoti UI and Atoti Admin UI to 5.2.18.

  • Loading Apache Parquet files requires the new atoti-client-parquet and atoti-server-parquet packages [1].

    Installing the atoti package also installs these packages but the next breaking release will make them opt-in.

    - uv add "atoti"
    + uv add "atoti[parquet]"
    

    If you do no use Parquet files and wish to reduce the size of your dependencies, you can skip the installation of the atoti package and manually install the atoti-client and atoti-server packages instead:

    - # Also installs atoti-client-parquet and atoti-server-parquet.
    - uv add "atoti"
    + # Does not install atoti-client-parquet and atoti-server-parquet.
    + uv add "atoti-client" "atoti-server"
    

    Or, if you use some extras:

    - uv add "atoti[jdbc]"
    + uv add "atoti-client[jdbc]" "atoti-server[jdbc]"
    

Deprecated#

  • atoti.ParquetLoad [1]. Use atoti_parquet.ParquetLoad instead:

    - from atoti import ParquetLoad
    + from atoti_parquet import ParquetLoad
    
  • read_parquet() since support for Apache Parquet will become opt-in [1]. Use infer_data_types(), create_table(), and load() instead:

    - table = session.read_parquet(path, table_name="Example")
    + parquet_load = ParquetLoad(path)
    + data_types = session.tables.infer_data_types(parquet_load)
    + table = session.create_table("Example", data_types=data_types)
    + table.load(parquet_load)
    
  • atoti.Session.query_mdx() and atoti.Cube.query()’s timeout parameter [2].

    The default value has also been changed from datetime.timedelta(seconds=30) to None to automatically use shared_context’s queriesTimeLimit .

    Use the context parameter to specify a custom timeout:

    - session.query_mdx(mdx, timeout=datetime.timedelta(seconds=10))
    + session.query_mdx(mdx, context={"queriesTimeLimit": 10})
    
    - cube.query(m["contributors.COUNT"], timeout=datetime.timedelta(seconds=10))
    + cube.query(m["contributors.COUNT"], context={"queriesTimeLimit": 10})
    

Fixed#

  • Atoti Admin UI connecting to wrong server due to wrong order of WebJars in the server’s classpath [4].

  • Hierarchies disappearing from the Data model tree when editing the data model of a secured session [3].

Internal issue tracker references