databag-client-sdk
v0.0.24
Published
an SDK for developing Databag applications
Downloads
26
Readme
!!! still a work in progress !!!
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.
The API is provided through a set of typescript interfaces. Each interface groups methods by their functionality and are only allocated as needed. The platform specific implementations of storage and cryptography are defined externally and are also provided to the SDK through interfaces.
Initialization
DatabacgClientSDK(crypto: Crypto | null, log?: Logging)
Mobile apps typically use the SqlStore interface allowing for offline use cases where most of the relational data is stored
initOfflineStore(sql: SqlStore): Promise<Session | null>
Browser apps typically use the WebStore interface where minimal session data is stored
initOnlineStore(web: WebStore): Promise<Session | null>
login provides a Session through an account login
login(handle: string, password: string, node: string, secure: boolean, mfaCode: string | null, params: SessionParams): Promise<Session>
access provides a Session through token access to an account when password is forgotten
access(node: string, secure: boolean, token: string, params: SessionParams): Promise<Session>
create provides a Session to a newly created account
create(handle: string, password: string, node: string, secure: boolean, token: string | null, params: SessionParams): Promise<Session>
available returns the number of accounts that can be publically created
available(node: string, secure: boolean): Promise<number>
username returns whether the username is available for account creation
username(name: string, token: string, node: string, secure: boolean): Promise<boolean>
logout releases the Session interface
logout(session: Session, all: boolean): Promise<void>
configure allocates the Node interface for the server
configure(node: string, secure: boolean, token: string, mfaCode: string | null): Promise<Node>
automate allocates the Bot interface for ia specific communication channel
automate(node: string, secure: boolean, token: string): Promise<Bot>