-
Notifications
You must be signed in to change notification settings - Fork 0
Home
You have arrived at version 2 of the Bali Document Repository™ project. This project defines an API that can be used to store, in the Bali Nebula™ cloud-based operating system, documents that have been notarized using the Bali Digital Notary™.
This project also provides the following repository classes that implement the API:
-
CachedRepository
- A memory based version of the repository that can be placed in front of any of the other repositories to speed them up. -
LocalRepository
- A local filesystem based repository that can be used for local testing. -
RemoteRepository
- A proxy to a remote repository that is accessed as a web service. -
S3Repository
- An AWS S3 bucket based repository located in the Amazon cloud. -
ValidatedRepository
- A memory based version of the repository that validates the notary seals on the documents prior to storing them in one of the other repositories.
Version 2 is the first stable version of the document repository and is ready for general use.
There are likely some bugs remaining in the code so watch for minor releases which fix bugs and
add functionality, and for emergency bug patches. Minor releases (e.g. v2.x
) and emergency bug
patches (e.g. v2.x.y
) should never break the public interface for the document repository
library.
To whet your appetite, here is a short example of a notarized document that could be stored in the Bali Document Repository™.
[
$document: [
$timestamp: <2019-11-25T20:36:36.124>
$consumer: "Derk Norton"
$merchant: <https://www.starbucks.com/>
$amount: 4.95
](
$type: /starbucks/types/Transaction/v2.3
$tag: #35B2P4GNB32R5AD6HL984NNMRMKLNM0A
$version: v1
$permissions: /bali/permissions/Public/v1
$previous: none
)
$protocol: v2
$timestamp: <2019-11-25T20:36:36.127>
$certificate: [
$protocol: v2
$timestamp: <2019-11-25T20:36:36.119>
$tag: #S1VK1G2LXS1N50P6C4VF9J4XDW25BXHJ
$version: v1
$digest: '
MT4SRCNT2RC6VJMKM2A3FT0PCFWPC59A7CQ7XSGN7K4TK81DN4PZR4X1PDQH
N0SFR518XKBQ2MKDP8DND0GQML1F221D3KYZTM466N0
'
]($type: /bali/notary/Citation/v1)
$signature: '
Z5Y6Z2D608KT4R4MV39KTTH5VFKKLFLKMFJ0NQGRWB567HA0DSNTAA0LGP4C
PXRTBBDS379JBVRHBP00V2XFG3MQ71DS38F2KY0X42R
'
]($type: /bali/notary/Document/v1)
The document itself is fairly straight forward. It captures the transaction information associated with a payment from a consumer to a merchant. The example has been overly simplified but it gives you the types of documents that can be stored in the Bali Document Repository™.
The Bali Document Repository™ library allows a developer to assemble both client-side and server-side document repositories that work together for optimum performance and security.
To dive in deeper on the parts of the library that interest you most, click on links listed in
the side bar in the upper right corner