runbot/runbot_test/tests
William Braeckman b51909fab6 [IMP] runbot: implement public api mixin
Until now api routes on runbot have been created through custom website
pages in production.
We want to unify the API by making a 'public' api, inspired by the way
`web_search_read` works.

This commit adds:
 - A route to list all publicly available models
 - A route to do a read on a public model
 - A route to fetch the publicly available specification for a model
 - A public model mixin that provides all the tools required to support
   the above mentionned routes.

The mixin adds the ability to add the `public` attribute on fields.
Any field marked as public can then be publicly queried through the
controller.
Relational fields work in a nested manner (`fields` key in the field's
sub-specification) (up to a depth of 10).
The public api does not allow going through a relationship back and
front (parent->child->parent is NOT allowed).

Because we are based on `web_search_read`, we heavily focus on
validating the specification, for security reasons, and offset the load
of reading to the `web_read` function (we currently don't provide limit
metadata).
2025-03-17 13:44:35 +01:00
..
__init__.py [IMP] runbot: implement public api mixin 2025-03-17 13:44:35 +01:00
test_spec.py [IMP] runbot: implement public api mixin 2025-03-17 13:44:35 +01:00