2024-08-20 17:20:36 -07:00
..
2024-07-07 21:59:43 -07:00
2024-07-13 10:39:54 -07:00
2024-08-19 15:09:44 -07:00
2024-08-20 17:20:36 -07:00
2024-07-11 23:28:25 -07:00
2024-08-20 17:03:46 -07:00
2024-07-03 16:55:20 -07:00
2024-08-19 07:33:57 -07:00

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<Session | null>

Browser apps typically use the WebStore interface where minimal session data is stored

initOnlineStore(web: WebStore): Promise<Session | null>

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<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>

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<Node>

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<Bot>