From 2218292fecbb90d753f75d2b9186b8606afa6e4f Mon Sep 17 00:00:00 2001 From: Pierre Balzack <96387156+balzack@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:20:36 -0700 Subject: [PATCH] Create API.md --- app/sdk/API.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 app/sdk/API.md diff --git a/app/sdk/API.md b/app/sdk/API.md new file mode 100644 index 00000000..ee501018 --- /dev/null +++ b/app/sdk/API.md @@ -0,0 +1,65 @@ +The API for the Databag package is provided through a set of typescript interfaces. Each interface groups methods by their fonctionality and only need to be allocated as needed. + +## Initialization + +
+ 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``` +