Skip to main content

restfull RQL edition capabilities for CubicWeb

Project description

Summary

Controller that gives users rql read/ write capabilities. To have token authentication, install cubicweb_signedrequest.

Sample usage

Users of this service must perform a HTTP POST request to its endpoint, that is the base url of the CubicWeb application instance appended with the “rqlio/1.0” url path.

The posted data must use the application/json or multipart/form-data. For the application/json MIME type, the posted data must contain a list of pairs of the form (rql_string, rql_args), where:

  • rql_string is any valid RQL query that may contain mapping keys with their usual form

  • rql_args is a dictionary, whose keys are the mapping keys from rql_string, and the values can be:

    • actual values

    • string references to a previous RQL query’s result, with the assumption that the referenced RQL query returns a single line and single column rset; under such conditions, a string reference must be “__rXXX” where XXX is the (0-based) index of the RQL query in the json-encoded list of queries.

The HTTP request’s response (in case where there is no error), is a json-encoded list. Its length is the number of RQL queries in the request, and each element contains the json-encoded result set rows from the corresponding query.

In case of an error, a json object with a reason key will explain the problem.

Python client example using python-requests:

import requests
import json

args = [('INSERT CWUser U: U login %(l)s, U upassword %(p)s',
        {'l': 'Babar', 'p': 'cubicweb rulez & 42'}),

       ('INSERT CWGroup G: G name "pachyderms"', {}),

       ('SET U in_group G WHERE U eid %(u)s, G eid %(g)s',
        {'u': '__r0', 'g': '__r1'})
       ]

resp = requests.post('https://myinstance.example.com/rqlio/1.0'),
                     data=json.dumps(args),
                     headers={'Content-Type': 'application/json'})
assert resp.status_code == 200

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cubicweb_rqlcontroller-1.1.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cubicweb_rqlcontroller-1.1.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file cubicweb_rqlcontroller-1.1.0.tar.gz.

File metadata

  • Download URL: cubicweb_rqlcontroller-1.1.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for cubicweb_rqlcontroller-1.1.0.tar.gz
Algorithm Hash digest
SHA256 07a84774d628f6f2630737feda07adbe25d3849efa7a4af7b2725b08b03199a9
MD5 6ccd9396bd385403673321f72a96b7d2
BLAKE2b-256 9391dc1c1235cef935d8d5aca74a88b3af68b9fb574bf7fb93dffd2d6f7ba5ee

See more details on using hashes here.

File details

Details for the file cubicweb_rqlcontroller-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cubicweb_rqlcontroller-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b27994761c92388f8072320874b8367aabc502071facb3104625caa51c67d5de
MD5 33dcc39d829a30168f70fd63a39b7a6c
BLAKE2b-256 fe86e348c00c29d13aca5277b0dd6d86caa044540c1327be574ae65417200706

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page