The privacy and security features of LumoSQL are based on each row in a database being a portable binary blob that is encrypted and signed. We added the optional facility for each blob to have within it different levels of access to the data, in what is often called RBAC/Role-based Access Control, or Attribute-based Access Control.
We soon realised this our specification for a database row should be a single global standard for transport and storage of any data, and that there was no existing standard. The security and privacy requirements of the 21st century demand something like this, so we created it.
From our nascent draft RFC:
To illustrate the main use case, Lumions would not be needed if JSON had sophisticated privacy and encryption features, with a single unique JSON namespace and a standard way of referring to other JSON objects.
This is a collaboration involving the LumoSQL team, the Department of Electronics and Informatics of the Vrije Universiteit Brussel and others. The VUB is providing the mathematical heavy lifting for the concept of securely updating binary blobs.
Lumion RFC Specification
This directory contains the early Lumion specification. We are maintaining it using IETF tools for RFC generation because we think it should become an RFC. This RFC draft is the only specification for Lumions, and is the reference for LumoSQL and other software we write that handle Lumions in various ways.
The draft RFC draft-shearer-desmet-calvelli-lumionsrfc-00.txt is taking shape. We have many references to add and other knowledge we have gained through implementation. This is going to be a long journey but we have started.
The IETF does not support markdown, their specification is entirely in XML. The Lumions RFC uses a pre-processing tool called mmark to read IETF-specific markdown and produce IETF-compatible XML. The IETF has a tool called xml2rfc that will emit either a standard .txt file (similar to all RFCs for the last half century) or a pdf.
To create the Lumoion RFC from the markdown:
- "pip install xml2rfc", or use some other installation method that yields a version >= Pypi. Older operating systems will not give a good version via "pip", so either learn about pip or change OS version.
- Install the Go language (often called "golang" in package repositories)
- git clone https://github.com/mmarkdown/mmark ; cd mmark
- go get && go build
- ./mmark -version <-- test the binary
- cd rfc ; make <-- this should rebuild the .txt files for the sample RFCs
Test the toolchain for the Lumion RFC:
- copy the file draft-shearer-desmet-calvelli-lumionsrfc-00.md to mmark/rfc
If this generates draft-shearer-desmet-calvelli-lumionsrfc-00.txt then your toolchain is working. Change paths etc to your taste.
You may wish to try "make pdf". xml2rfc will reliably tell you what additional dependencies it needs, if any.
Inspiration for the Lumoions RFC Content Headings
In terms of the content of the text version of the RFC (not the details of the markdown), the Syslog Specification in RFC 5424 is perhaps reasonably close to the sections the Lumions RFC needs.