This file has been truncated. show original
- Status: proposed
- Type: feature
- Related components: `safe_core`, `safe_launcher`, `safe_vault`, `routing`
- Start Date: 09-November-2016
Combining `StructuredData` and `AppendableData` into a new single data type, `MutableData`, similar to HashMap.
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](http://tools.ietf.org/html/rfc2119).
Existing data types don't support granular access control which is required for mobile platforms where access to the network through an intermediary like SAFE Launcher is complicated: each app would have to receive full permissions to modify and fetch data on a user's behalf and private keys to sign it. This compromises security and allows malicious apps to get full access to the user's data.
To mitigate that, `MutableData` provides fine-grained access control and more narrow-scoped data operations. This data type is an evolved version of `AppendableData`. It combines `StructuredData` and `AppendableData` features and improves the network efficiency, saves bandwidth, and provides a standardised approach for apps to fetch and mutate data in the network.
## Detailed design
The proposed data type defines discrete actions on data that doesn't require a user to replace or fetch the entire structure contents. This is enabled by functionality similar to this of the HashMap data structure or a key-value database such as [Redis](http://redis.io).