0.6.4 (January 16, 2022)#
Added#
atoti-query
to query remote sessions without having to installatoti
(and itsjdk4py
dependency 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).atoti_plus.security.Security.individual_roles
to manage the roles given to users on top of the ones that can be added by authentication providers.ClientCertificateConfig
to allow users to authenticate using client certificates.atoti_query.QuerySession
’s client_certificate parameter to authenticate against remote sessions using client certificates.use_client_secret_as_certificate
to 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()
.
User interface#
Upgraded Atoti UI to 5.0.6.
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-jupyterlab
andjupyter-server-proxy
like 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 fromatoti
ifatoti
is installed and fromatoti-query
otherwise.atoti.query.create_basic_authentication
andatoti.query.create_token_authentication
. Useatoti_query.BasicAuthentication
andatoti_query.TokenAuthentication
instead.atoti.open_query_session()
. Instantiateatoti_query.QuerySession
directly instead.Giving a name to a
atoti_query.QuerySession
.
Fixed#
Insertion of values in columns with special characters in their name (issue #411).
Handling of
None
elements of nullable arrays withatoti.Table.head()
(issue #412).Error when changing
atoti.Level.comparator
and redefining a measure using thisLevel
(issue #423).Wrong measure values when using a date
Level
with non-defaultatoti.Level.comparator
in 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
hierarchies
andlevels
(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
atoti_plus.security.BasicSecurity.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
default_locale
being ignored.Missing values when querying a non-slicing hierarchy created using
create_parameter_hierarchy_from_column()
(issue #416).Instances of
ZONED_DATE_TIME
not being converted from strings to dates inatoti.Table.head()
andatoti.Cube.query()
.