npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@threefold2/grid_client

v2.5.6

Published

[![Version](https://img.shields.io/npm/v/@threefold/grid_client?color=blue)](https://www.npmjs.com/package/@threefold/grid_client) [![Lint](https://github.com/threefoldtech/tfgrid-sdk-ts/actions/workflows/lint.yml/badge.svg)](https://github.com/threefoldt

Downloads

356

Readme

grid_client

Version Lint Build Tests Nightly Code Coverage

Github repo: grid_client

grid_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

Warning: For Qanet, Please use @2.5.2 version

Warning: For Testnet, Please use @2.5.2 version

Warning: For Mainnet, Please use @2.5.2 version

External package

yarn add @threefold/grid_client

Local usage

  • Clone the repository
git clone https://github.com/threefoldtech/tfgrid-sdk-ts.git
  • Install it
yarn install

Getting started

Client configuration

  • Network environment: should select dev environment, qa, test or main.

  • Wallet connector: mnemonics (12 random words in a unique order) for your account to interact with the chain. Create one

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

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

Create client instance

  • Here's a simple example of creating a client instance with the default configurations.

  • or you can check more advanced configuration here.

    async function getClient(): Promise<GridClient> {
      const gridClient = new GridClient({
        network: config.network,
        mnemonic: config.mnemonic,
      });
      await gridClient.connect();
    
      return gridClient;
    }
  • You can set your configurations through environment variables or JSON config file as seen here.

  • With clientOptions being added, all urls are now configured. So, you can easily get the proxy URL for the used network simply by:

    const proxyURL = gridClient.clientOptions.proxyURL;

for more details, check client options

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

gridClient.disconnect();

Using the client

This section assumes that you are using the client configuration from client_loader.ts

  • After creating a client instance you can call it in any of your scripts using getClient().

    const grid3 = getClient();
  • And then you can use this client instance with any of the client modules.

  • For example to deploy a VM you will need to use the machines module with the client and it can be used as follows. you can find the full example script here.

    • To deploy a VM

      await grid3.machines.deploy(vms);
    • To delete a VM

      await grid3.machines.delete({ name: vms.name });
  • More example scripts can be found here

Running the scripts

  • Before Running the scripts make sure you have a tsconfig.json file. here is an example file.

    {
      "compilerOptions": {
        "noImplicitAny": false,
        "module": "commonjs",
        "target": "esnext",
        "lib": ["ESNext", "DOM"],
        "types": ["node", "jest"],
        "declaration": true,
        "declarationMap": true,
        "outDir": "./dist/node",
        "esModuleInterop": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "allowJs": true,
        "baseUrl": "."
      },
      "include": ["src/**/*"]
    }
  • After following the previous examples to create a client instance and using it in a script, you can then execute this script using ts-node.

    yarn run ts-node --project tsconfig-node.json filename.ts

Usage examples

API Docs

https://threefoldtech.github.io/tfgrid-sdk-ts/packages/grid_client/docs/api/index.html

Testing

Related Documentations