info_tfgrid/collections/developers/proxy/commands.md

4.6 KiB

Commands

Table of Contents


Introduction

The Makefile makes it easier to do mostly all the frequently commands needed to work on the project.

Work on Docs

we are using swaggo/swag to generate swagger docs based on the annotation inside the code.

  • install swag executable binary

    go install github.com/swaggo/swag/cmd/swag@latest
    
  • now if you check the binary directory inside go directory you will find the executable file.

    ls $(go env GOPATH)/bin
    
  • to run swag you can either use the full path $(go env GOPATH)/bin/swag or export go binary to $PATH

    export PATH=$PATH:$(go env GOPATH)/bin
    
  • use swag to format code comments.

    swag fmt
    
  • update the docs

    swag init
    
  • to parse external types from vendor

    swag init --parseVendor
    
  • for a full generate docs command

    make docs
    

To start the GridProxy server

After preparing the postgres database you can go run the main file in cmds/proxy_server/main.go which responsible for starting all the needed server/clients.

The server options

Option Description
-address Server ip address (default ":443")
-ca certificate authority used to generate certificate (default "https://acme-staging-v02.api.letsencrypt.org/directory")
-cert-cache-dir path to store generated certs in (default "/tmp/certs")
-domain domain on which the server will be served
-email email address to generate certificate with
-log-level log level
-no-cert start the server without certificate
-postgres-db postgres database
-postgres-host postgres host
-postgres-password postgres password
-postgres-port postgres port (default 5432)
-postgres-user postgres username
-tfchain-url tF chain url (default "wss://tfchain.dev.grid.tf/ws")
-relay-url RMB relay url (default"wss://relay.dev.grid.tf")
-mnemonics Dummy user mnemonics for relay calls
-v shows the package version

For a full server setup:

make restart

Run tests

There is two types of tests in the project

  • Unit Tests
    • Found in pkg/client/*_test.go
    • Run with go test -v ./pkg/client
  • Integration Tests
    • Found in tests/queries/

    • Run with:

      go test -v \
      --seed 13 \
      --postgres-host <postgres-ip> \
      --postgres-db tfgrid-graphql \
      --postgres-password postgres \
      --postgres-user postgres \
      --endpoint <server-ip> \
      --mnemonics <insert user mnemonics>
      
    • Or to run a specific test you can append the previous command with

      -run <TestName>
      

      You can found the TestName in the tests/queries/*_test.go files.

To run all the tests use

make test-all