Summary of June 4th to 8th

Laurent Wouters lwouters at
Fri Jun 8 19:52:26 CEST 2018

Dear all,

This is a quick recap of what was going on this week on my end.

You might have noticed passing through this list a version ready for review of my work on the implementation of GraphQL. This new version has two key improvement points: First, the support for deleting relations between entities (equivalent and translated
to DELETE X relatedTo Y). Second, the expansion of the test suite, with a part covering the functional requirements (are all elementary operations on entities possible with GraphQL?) and another covering the security requirements (is the security policy
applied to GraphQL queries). The last part has been achieved through a translation of (parts of) the RQL security test suite unittest_security with the replacement of RQL queries with equivalent GraphQL ones.

The translation of RQL queries into GraphQL ones has been interesting because it has shed a crude light on a possible hindrance of GraphQL, its verbosity.

The rest of the week was devoted to my introduction to the Hypermedia API and the generic Web client work achieved by Denis, Frank, Hugo and more. This is a summary of my understanding and may be incorrect, in which case, I am happy to hear yours!

I have finally been able to make the jsonschema and the React client work thanks to the documentation left by Frank in the repository and some suggestions by Denis. I had some trouble with finding the correct versions for the many parts so here is a small
feedback for what finally worked for me: Cubicweb 3.25 (both 3.24 and 3.26 and later did not work, for different reasons), pyramid-cubicweb 0.8.0, cubicweb-jsonschema 0.2 and react-jsonschema-ui on commit 3ebd6a8d8f3043d0a704eb2cf754aa633a265447. In that
configuration, the web client is barebone but makes a good proof of concept demonstration of how to use Denis' jsonschema API.

After that I looked into the set of repository from Hugo visible at and found that he had started to work on a system for the management, definition and reuse of views in the React client. Hugo has a clone of the
React client with some updates in that direction, plus a set of repositories with deployable views. I am still in the process to putting all of this in working conditions on my end but I must say that the JS ecosystem is a hindrance to say the least. I am
under the impression that the approach spearheaded by Hugo can be interesting for the purpose of a generic web client in which more specialized views can still be easily defined and injected into (the keyword here is easily). For continuing work in the
same direction I have a few proposals:

I think that the approach of having generic views and customizable ones to be efficient, provided that that it is easy to define the latter one. To that end, I would argue that a kind of DSL may be useful. Fortunately, functional languages such as OCaml
and their avatars in the Web ecosystem such as ReasonML may come in handy for this purpose. A DSL specialized for this purpose may come as more expressive and therefore make the design of simple custom views faster. The point of having it integrated into
the underlying programming language is to still be able, if necessary, to fall back to simply coding the view as usual. Having this option means that the DSL is not required to handle every cases, but merely make the common ones easier to express, which
would be a win in my opinion.

What do you think?

I also found some work regarding a browser plugin that seems to act as a client for the web of data. Is it related to the efforts described above?



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the cubicweb-devel mailing list