Index
b"Digital Locker Sample Application for Azure Blockchain Marketplace\n==================================================================\n\nOverview\n---------\n\nThe Digital Locker application expresses a workflow of sharing digitally locked\nfiles where the owner of the files controls the access to these files. We\nillustrate Digital Locker using an example of an owner performing access control\nto their document held by a bank. The state transition diagram below shows the\ninteractions among the states in this workflow.\n\n
\n\nApplication Roles\n------------------\n\n| Name | Description |\n|------------------------|---------------------------------------------------|\n| Owner | The owner of the digital asset. |\n| BankAgent | The keeper of the digital asset. |\n| ThirdPartyRequestor | A person requesting access to the digital asset. |\n| CurrentAuthorizedUser | A person authorized to access the digital asset. |\n\n
\n\nStates\n-------\n\n| Requested | Indicates owner's request to make the digital asset available. |\n|------------------------|------------------------------------------------------------------------------------------------------------|\n| DocumentReview | Indicates that the bank agent has reviewed the owner's request. |\n| AvailableToShare | Indicates that the bank agent has uploaded the digital asset and the digital asset is available for sharing |\n| SharingWithThirdParty | Indicates that the owner is reviewing a third party's request to access the digital asset. |\n| Terminated | Indicates termination of sharing the digital asset. |\n\n
\n\nWorkflow Details\n-----------------\n\n![state diagram of the workflow](https://raw.githubusercontent.com/caleteeter/digital-locker/master/media/3540f1547a7326c32df839411dfbf0b8.png)\n\nAn instance of the Digital Locker application's workflow starts in the Requested\nstate when an Owner requests their bank to begin a process of sharing a document\nheld by the bank. A BankAgent causes the state to transition to DocumentReview\nby calling the function BeginReviewProcess indicating that the process to review\nthe request has begun. Once the review is complete, the BankAgent then makes\nthe document available by uploading the documents. The AvailableToShare state\ncan be thought of a perpetual state, more on this in a bit. Once the document is\navailable to share, the document can be shared either with a third party that\nthe owner has identified or any random third-party requestor. If the owner\nspecifies the third-party requestor, then the state transitions from\nAvailableToShare to SharingWithThirdParty. If a random third-party requestor\nneeds access to the document, then that third-party requestor first requests\naccess to the document. At this point, the owner can either accept the request\nand grant access or reject the request. If the owner rejects the request to the\nrandom third-party requestor, then the state goes back to AvailableToShare. If\nthe owner accepts the request to allow the random third-party request to access\nthe document, then the state transitions to SharingWithThirdParty. Once the\nthird-party requestor is done with the document, they can release the lock to\nthe document and the state transitions to AvailableToShare. The owner can also\ncause the state to transition from SharingWithThirdParty to AvailableToShare\nwhen they revoke access from the third-party requestor. Finally, at any time\nduring these transitions the bank agent can decide to terminate the sharing of\nthe document once the document becomes available to share.\xc2\xa0\n\nThe happy path shown in the state transition diagram traces a path where the\nowner grants access to a random third party.\n\n
\n\nApplication Files\n-----------------\n[DigitalLocker.json](https://raw.githubusercontent.com/caleteeter/digital-locker/master/DigitalLocker.json)\n\n[DigitalLocker.sol](https://raw.githubusercontent.com/caleteeter/digital-locker/master/contracts/DigitalLocker.sol)\n"