Commit Graph

23 Commits

Author SHA1 Message Date
Jude Nelson
93caa6f10a don't get idata by default, but request it 2017-03-17 14:37:44 -04:00
Jude Nelson
b736d55209 update parent directory version when modifying children; keep version in inode structure as well as mutable data blob; allow caller to override version checks 2017-03-17 11:46:56 -04:00
Jude Nelson
e9336b9ccf allow multiple putfile on the same path 2017-03-16 18:00:57 -04:00
Jude Nelson
af0d5156e1 store base64-encoded file data 2017-03-16 11:29:15 -04:00
Jude Nelson
e6de9d9ab1 fix up client-side datastore API to not require an indexer proxy object 2017-03-15 18:12:02 -04:00
Jude Nelson
5dd8f7d2b4 refactored datastore API to require clients to sign everything with an external key. datastore I/O requires signed inodes, their payloads, and tombstones (for deletion) 2017-03-13 17:51:41 -04:00
Jude Nelson
3dd4d89bbf refactor data API such that we (1) generate inodes and tombstones, (2) sign them all, and (3) replicate them. These steps must be separate. 2017-03-09 20:03:55 -05:00
Jude Nelson
ee4f897ea3 use exclusively the required storage drivers for data stores 2017-03-01 23:08:35 -05:00
Jude Nelson
90ee4f7fa8 don't json.dumps our data; delete consistency info on delete-inode and delete-datastore 2017-03-01 19:30:05 -05:00
Jude Nelson
ca9ef4324b add "typed netstrings" to use to serialize and parse mutable data (so we don't rely on JSON, which has limits) 2017-02-28 16:26:06 -05:00
Jude Nelson
4329a657b7 fix bugs found in testing; better error messages 2017-02-24 19:18:08 -05:00
Jude Nelson
7942d74e33 make sure we return an errno on data-plane operations 2017-02-23 17:23:36 -05:00
Jude Nelson
66c2e0d9a0 datastore bugfixes found during testing 2017-02-21 12:34:18 -05:00
Jude Nelson
bf8d43b537 refactor and remove a lot of code from the storage logic. Stores are now identified by the hash of a public key derived from the app's domain and the user's master key. There is no longer a need for user objects, user lists, and private key indexes, and no longer a need for storage bootstrapping. 2017-02-20 21:00:31 -05:00
Jude Nelson
4cdf0f537a datastore privatekey hdpath is account_key/0' 2017-02-12 19:15:56 -05:00
Jude Nelson
6fae7dc70d differentiate between local and global private key indexes and local and global users 2017-02-12 03:33:27 -05:00
Jude Nelson
c476022976 do not require blockchain ID in data setup 2017-02-10 17:39:52 -05:00
Jude Nelson
7b17a5cdcb rework a few things about inodes and inode data in a data store:
* make sure we check all inode headers before getting an inode, so we know the latest version
* have get_mutable, put_mutable, and delete_mutable update data consistency information across all write-devices
* have get_mutable remember which driver(s) succeeded, so subsequent calls on e.g. inode resolution don't needlessly query stale data
* remember data consistency information by device ID, as well as data ID.
2017-02-06 15:11:30 -05:00
Jude Nelson
04a6ccf86b revamp mutable data API for multiple devices:
* get_mutable will search for the latest version of a datum across a set of known devices
* put_mutable will include the device ID in the data it replicates
* delete_mutable will delete from all devices
* datastore inodes will rely on their headers to identify the globally-latest version of the inode data
* user lists and private key indexes will track cross-device versioning so that an update from one device will always be processed by the others.
2017-01-30 01:39:26 -05:00
Jude Nelson
e44235cd62 get_mutable: try each data store until we get fresh data; data_setup: refactor and clean up; stop trying to auto-migrate name profiles (since we don't need the profile any longer) 2017-01-23 19:07:00 -05:00
Jude Nelson
20dfe8b9a7 keep the private key indexes, public user keys, and user lists on shared storage (not just local storage).
* add support for getting, setting, and deleting user state from storage providers
* add support for generating and saving per-identity and per-user private key indexes
* make sure get_mutable() operates on *non-local* data storage providers for shared data.
2017-01-18 18:44:10 -05:00
Jude Nelson
667512f37d stricter requirements for datastore names and user IDs; also, add a 'type' field to the datastore (to differentiate between collections and datastores) 2017-01-17 19:04:10 -05:00
Jude Nelson
e4455caf96 Repository re-organization 2017-01-17 11:16:19 -05:00