A computer-implemented method for authorizing and controlling use of a data resource, the method comprising:
- receiving a use request from a device to use a protected resource stored in a data node of a non-hierarchical data structure within a datastore,
- wherein the data node comprising an identifier whereby the data node is addressable within the datastore;
- extracting from at least one of the data node and a security node having a referential attribute pointing to the data node a use policy comprising computer-readable instructions defining an authorized context for which the device can use the protected resource based on one or more contextual values;
- initiating a use transaction that executes the computer-readable instructions of the use policy to gather the one or more contextual values and to determine whether the use request satisfies the authorized context for which the device can use the protected resource;
- authorizing access to the protected resource by the device when it is determined that based on the contextual values that the use request conforms to the authorized context for which the device may use the protected resource;
- generating a use terms from the computer-readable instructions defining the authorized context for the use request;
- generating a set of one or more use keys and appending the identifier of the protected resource to each of the set of one or more use keys to form one or more key-identifier pairs;
- associating an expiration condition with each of the one or more key-identifier pairs;
- returning a first use key of the set of one or more use keys to the device;
- receiving a redemption request from the device comprising the first use key and verifying the first use key;
- extracting the identifier of the protected resource from a first key-identifier pair of the one or more key-identifier pairs and retrieving the protected resource with the identifier of the protected resource;
- and
- streaming the protected resource to the device for use by the device.