0.6.4 (January 16, 2022)#
Added#
atoti-queryto query remote sessions without having to installatoti(and itsjdk4pydependency or another JDK) (issue #128).Support for
atoti.create_session()’s app_extensions parameter.Support for mode parameter in
atoti.Session.query_mdx(),atoti_query.QuerySession.query_mdx()andatoti_query.QueryCube.query()(issue #345).individual_rolesto manage the roles given to users on top of the ones that can be added by authentication providers.ClientCertificateConfigto allow users to authenticate using client certificates.QuerySession’s client_certificate parameter to authenticate against remote sessions using client certificates.use_client_secret_as_certificateto use a client certificate to authenticate the atoti session against the OIDC provider.
Changed#
atoti.experimental.create_date_hierarchy()has been stabilized asatoti.Cube.create_date_hierarchy().
Deprecated#
Support for Python 3.7. According to NEP 29, the next release of atoti will only support Python >= 3.8.
atoti with JupyterLab Docker image. The alternative is to install
atoti,atoti-jupyterlabandjupyter-server-proxylike any other Python package in a Base Jupyter Notebook Docker container or in JupyterHub.To package an atoti app into a Docker image for deployment purposes, use the Project template’s Dockerfile instead.
Importing functions and classes from
atoti.query. Instead, import them directly fromatotiifatotiis installed and fromatoti-queryotherwise.atoti.query.create_basic_authentication()andatoti.query.create_token_authentication(). Useatoti_query.BasicAuthenticationandatoti_query.TokenAuthenticationinstead.atoti.open_query_session(). InstantiateQuerySessiondirectly instead.Giving a name to a
QuerySession.
Fixed#
Insertion of values in columns with special characters in their name (issue #411).
Handling of
Noneelements of nullable arrays with :meth:atoti.Table.head` (issue #412).Error when changing
atoti.Level.comparatorand redefining a measure using thisatoti.Level(issue #423).Wrong measure values when using a date
atoti.Levelwith non-defaultatoti.Level.comparatorin an aggregation scope (issue #424).Error when creating one full
join()and one partialjoin()based on the same columns but with different names (issue #433).Connections to SQL databases not being released (issue #415).
Autocomplete for
atoti.Cube.hierarchiesandatoti.Cube.levels(issue #418).Wrong results on cumulative aggregation with arrays (issue #442).
Wrong aggregates when chaining arithmetic operations with filtering measures (issue #426).
Access to the user content storage web editor (issue #427).
Retrieval of
users(issue #449).Creation of a constant array measure with mixed numeric types (issue #440).
Creation of a hierarchy with a data model containing partially joined tables (issue #444).
Configured
atoti.I18nConfig.default_localebeing ignored.Missing values when querying a non-slicing hierarchy created using
atoti.Cube.create_parameter_hierarchy_from_column()(issue #416).Instances of
ZONED_DATE_TIMEnot being converted from strings to dates inatoti.Table.head()andatoti.Cube.query().