Skip to content

alleotech/grid3_client_ts

Repository files navigation

grid3_client_ts

Build

Github repo: grid3_client_ts

grid3_client is a client used for deploying workloads (VMs, ZDBs, k8s, etc.) on grid3.

Prerequisites

  • node 16.13.1 or higher
  • npm 8.2.0 or higher
  • may need to install libtool apt-get install libtool

Installation

External package

npm install grid3_client

or

yarn add grid3_client

Local usage

  • Clone the repository
git clone https://github.com/threefoldtech/grid3_client_ts.git
  • Install it
npm install

or

yarn install

Getting started

Client configuration

  • Network environment: should select dev environment or test.

    import { NetworkEnv } from "grid3_client";
    
    const network = NetworkEnv.dev
  • Mnemonic: 12 words for your account. create one

  • Store secret: it's any word that will be used for encrypting/decrypting the keys on threefold key-value store.

  • Create RMB client

    grid 3 client supports communication over RMB MessageBusClient or HTTP HTTPMessageBusClient using one of the deployed grid3 proxies.

    HTTP

    import { HTTPMessageBusClient } from "ts-rmb-http-client";
    
    const rmb = new HTTPMessageBusClient(0, "");

    Note: twinId and proxyURL are set to 0 and "" as the grid client will auto set them based on network environment selected and mnemonic entered.

    RMB

    import { MessageBusClient } from "ts-rmb-redis-client";
    
    const rmb = new MessageBusClient();
  • project name: it's a name to isolate the deployments into a namespace.

    Note: only network can't be isolated, all project can see the same network.

  • Backend storage: can select fs,localstorage, auto, or tfkvstore. (default: auto)

    Note: selecting auto will auto detect the process if it's node it will use fs and if it's browser it will use localstorage.

import { BackendStorageType } from "grid3_client";

const backendStorageType = BackendStorageType.auto
  • keypair type: the keypair types supported are sr25519 or ed25519. (default: sr25519)
import { KeypairType } from "grid3_client";

const keypairType = KeypairType.sr25519

Create client instance

By gathering all the previous configuration in one script.

import { GridClient, NetworkEnv, BackendStorageType, KeypairType } from "grid3_client";
import { HTTPMessageBusClient } from "ts-rmb-http-client";
import { MessageBusClient } from "ts-rmb-redis-client";

// use http proxy client
const rmb = new HTTPMessageBusClient(0, "");

const gridClient = new GridClient(NetworkEnv.dev, mnemonic, "mysecret", rmb, "myproject", BackendStorageType.auto, KeypairType.sr25519);
await gridClient.connect();

Important Note: grid client should be disconnected after finishing its usage.

gridClient.disconnect();

Usage examples

see scripts

see server

API Docs

https://threefoldtech.github.io/grid3_client_ts/api/