diff --git a/app/sdk/README.md b/app/sdk/README.md index 2af70892..38be0ff1 100644 --- a/app/sdk/README.md +++ b/app/sdk/README.md @@ -1,55 +1 @@ -DatabagClientSDK provides an interface and implementation for the decentralized databag network. The SDK is written in pure typescript so it can be imported into a wide variety of applications. The project contains reference applications for react-js, react-native, and node. The platform specific implementations of storage and cryptography are defined externally and provided to the SDK through interfaces - -### The SDK must first be allocated - -```DatabacgClientSDK(crypto: Crypto | null, log?: Logging)``` - -### Persistent storage can then be provided to the SDK. - -Mobile apps typically use the SqlStore interface allowing for offline use cases where most of the relational data is stored - -```initOfflineStore(sql: SqlStore): Promise``` - -Browser apps typically use the WebStore interface where minimal session data is stored - -```initOnlineStore(web: WebStore): Promise``` - -### Account communcation is provided through the Session interface - -login provides a Session through an account login - -```login(handle: string, password: string, node: string, secure: boolean, mfaCode: string | null, params: SessionParams): Promise``` - -access provides a Session through token access to an account when password is forgotten - -```access(node: string, secure: boolean, token: string, params: SessionParams): Promise``` - -create provides a Session to a newly created account - -```create(handle: string, password: string, node: string, secure: boolean, token: string | null, params: SessionParams): Promise``` - -available returns the number of accounts that can be publically created - -```available(node: string, secure: boolean): Promise``` - -username returns whether the username is available for account creation - -```username(name: string, token: string, node: string, secure: boolean): Promise``` - -logout releases the Session interface - -```logout(session: Session, all: boolean): Promise``` - -### Admin communcation is provided through the Node interface - -configure allocates the Node interface for the server - -```configure(node: string, secure: boolean, token: string, mfaCode: string | null): Promise``` - -### Bot communication is provided through the Bot interface - -automate allocates the Bot interface for ia specific communication channel - -```automate(node: string, secure: boolean, token: string): Promise``` - - +DatabagClientSDK provides a typescript interface for communication over the decentralized databag network. The SDK has minimal dependencies and contains reference applications for react-js, react-native, and node. [Click here for the API](/app/sdk/API.md)