Code Monkey home page Code Monkey logo

go-client's Introduction

INFISICAL GO CLIENT

An api client for go applications to interact with infisical's api.

Example api calls

  • An api call with the cli as agent

// Example req - Get a User's Encrypted WorkSpace Key
import (
	"github.com/infisical/go-client/api/models"
	"github.com/infisical/go-client/api"
	)

// configure Api Call for cli
client := api.ClientConfig{
    UserAgent: "cli"
    BaseUrl: "https://app.infisical.com/api" // default, use self-hosted instance if any
}

// Create resty client
httpClient := resty.New()

// Set JWT as authToken if required
httpClient.SetAuthToken(JTWToken).
		SetHeader("Accept", "application/json")

// Configure request
request := models.GetEncryptedWorkspaceKeyRequest{
	WorkspaceId: workspaceId,
}

workspaceKeyResponse, err := client.GetEncryptedWorkspaceKey(httpClient, request)
if err != nil {
	return fmt.Errorf("unable to get your encrypted workspace key. [err=%v]", err)
}
  • An api call with k8-operator as agent

// Example req - Get a User's service token details
// configure Api Call for k8-operator
client := api.ClientConfig{
    UserAgent: "k8-operator"
    BaseUrl: "https://app.infisical.com/api" // default, use self-hosted instance if any
}

// Create resty client
httpClient := resty.New()

// Set serviceToken as authToken if required
httpClient.SetAuthToken(serviceToken).
	SetHeader("Accept", "application/json")

serviceTokenDetails, err := client.GetServiceTokenDetailsV2(httpClient)
if err != nil {
	return fmt.Errorf("unable to get service token details. [err=%v]", err)
}
  • An api call with terraform as the agent

// Example 1 -  Get a User's Accessible Environment for a Workspace

// configure Api Call for terraform
client := api.ClientConfig{
    UserAgent: "terraform"
    HostApiUrl: "https://app.infisical.com/api" // default, use self-hosted instance if any
}

// Create resty client
httpClient := resty.New()

// Set Auth Token if needed
httpClient.SetAuthToken(userLoggedInDetails.JTWToken).
	SetHeader("Accept", "application/json")

// Configure request
request := models.GetAccessibleEnvironmentsRequest{WorkspaceId: workspaceId}

response, err := client.GetAccessibleEnvironments(httpClient, request)
if err != nil {
	return err
}

// Example 2 -  Get a User's Encrypted secrets given a workspace and an environment

// Create resty client
httpClient := resty.New()

// Set Auth Token if needed
httpClient.SetAuthToken(userLoggedInDetails.JTWToken).
	SetHeader("Accept", "application/json")

// Configure request
request := models.GetEncryptedSecretsV3Request{
		WorkspaceId: serviceTokenDetails.Workspace,
		Environment: envSlug,
	}

encryptedSecrets, err := client.GetSecretsV3(httpClient, request)
if err != nil {
	return nil, nil, err
}

go-client's People

Contributors

quinton11 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.