CubicWeb Monthly news July-December 2024

July to December activity report

Usage of cubicweb-api as backend for cwclientlib

The Python package cwclientlib was relying on the presence of the rqlcontroller cube to work. It is now compatible with the api cube!

Once the api cube is enabled on your instance, the only change to do is to add request-mech = api in your cwclientlibrc file.

# ~/.config/cwclientlibrc
[example]
url = http://example.com/api
request-mech = api
token-id = xxx
secret = xxx

Custom authentication in @cubicweb/client

A authenticator param can now be provided when creating a Client instance to define the authentication provider. @cubicweb/client provided two mechanisms:

  • SignedRequestAuthenticator allow to connect to a CubicWeb instance with the signedrequest cube by using a AuthToken.
  • CookieAuthenticator uses native cookies to the web browser to connect to an instance that is not necessarily on the same domain as the client.

When the client is on the same domain as the CubicWeb instance, there is no need to provide a CookieAuthenticator as the browser implicly add cookies to same-origin requests.

Upgrade of the reference target platform

Until now, the CubicWeb's test suite was running on Debian bullseye which uses Python 3.9. We now officially target Debian Bookworm which provides Python 3.11 and Postgresql 15.

Removal of mercurial support in read the docs

On 2024-03-18 Readthedocs announced that Mercurial support would be dropped on 2024-06-03. Since then we haven't done any change to our doc publication process and the doc on https://cubicweb.readthedocs.io/en/stable/ is now outdated. We are in the process of restoring the documentation on readthedocs. Meanwhile the latest version of the documentation is available here: https://cubicweb.pages.logilab.fr/cubicweb/.

cubicweb-api dependencies upgrade

The api dependencies have been upgraded making it incomaptible with Python 3.9.

Other fixes

  • When selecting a relation target using the "Search" option of the selector in an edition/creation form the user is sent to a selection page and the fact that a search is being done was stored in the session. This lead to strange behaviors when navigating outside of the selection page.
  • RQL Entity methods were not called on some RQL queries when the column types are not known ahead of execution.
  • In cwclientlib, in some conditions multiple CSRF tokens could be created for a single domain but different paths. In this case cwclientlib now select the more appropriate one.

Coming soon

Cubicweb

  • A new List function in RQL when using Postgresql (merge request)
  • Make CubicWeb compatible with Python 3.12 (issue)

API

  • Ability to refer to result set columns by name in transaction (merge request)

Documentation

  • Mirror CubicWeb in a git repository to build documentation on readthedocs (issue)