Could we maybe put the content of the RFC right here? We do use Markdown, too after all (and makes quoting and discussing easier imho – though it does show the formatting errors ):
RFC #0042: SAFE Launcher API v0.6
- Status: proposed
- Type: new feature, enhancement
- Related components: safe_launcher, safe_core
- Start Date: 01-09-2016
- Discussion: (fill me in with link to RFC discussion - shepherd will complete this)
- Supersedes: (fill me in with a link to RFC this supersedes - if applicable)
- Superseded by: (fill me in with a link to RFC this is superseded by - if applicable)
Summary
Expose low level API from launcher to allow applications to allow thrid party applications
to access the building blocks of the SAFE Network.
Motivation
Exposing low level apis allow dynamic applications to be built on SAFE Network.
Using the StructuredData API third party applications can build and manage their
own data structures to fit their needs.
Detailed design
Expose low level building blocks via launcher for third party applications, which
will allow building their own data structures. Moreover, dynamic applications can be
built on using the appendable data api.
The low level apis use the FFI interface for low level API as detailed in the
safe_core low level RFC
APIs for,
are exposed from the launcher through the REST interface.
Permission
Application must request for
LOW_LEVEL_API
access permission to invoke the low level api to store or
read encrypted data.
Since low level apis can be used to create data in the network, it might be possible where
the data created by the apps cannot be deleted by the user again to retrieve the lost space.
Thus, it makes it important to request user for the permission to access low level apis.
Unauthorised access
Unauthorised access is granted for reading public data using low level api by default.
Handle Id
The low level apis return Handle-Id corresponding to the data type that is being worked with.
For example, the structured data will return a DataIdentifier-handle-Id using this Handle-Id,
the operations can be performed on the structured data.
It becomes the applications responsibility to drop the handle after the usage.
Limitation
Ability to work with versioned data is exposed only from low level APIs. Launcher’s
NFS API doesn’t support versioning yet.
Drawbacks
If the handle id is not cleaned up properly it can lead to memory leak. safe_core
can purge if the number of handles goes above a certain threshold.
Alternatives
Nil
Unresolved questions
Nil