- Status: implemented
- Type: new feature, enhancement
- Related components: safe_launcher, safe_core
- Start Date: 01-09-2016
- Discussion: https://forum.safedev.org/t/rfc-42-safe-launcher-api-v0-6/95
Expose low level API from launcher to allow applications to allow thrid party applications to access the building blocks of the SAFE Network.
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.
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.
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 is granted for reading public data using low level api by default.
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.
Ability to work with versioned data is exposed only from low level APIs. Launcher's NFS API doesn't support versioning yet.
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.
Nil
Nil