Go - Secret.Put()

Store a new secret value, creating a new version to store the value.

import (
  "context"
  "fmt"

  "github.com/nitrictech/go-sdk/nitric"
)

func main() {
  secret, err := nitric.NewSecret("secret-name").Allow(nitric.SecretAccess)
  if err != nil {
    return
  }

  versionRef, err := secret.Put(context.TODO(), []byte("content"))
  if err != nil {
    return
  }

  if err := nitric.Run(); err != nil {
    fmt.Println(err)
  }
}

Parameters

  • Name
    ctx
    Required
    Required
    Type
    context
    Description

    The context of the call, used for tracing.

  • Name
    secret
    Required
    Required
    Type
    []byte
    Description

    The new secret value to store in the secrets manager.

Notes

A new secret version is always created when calling Put(), the versions will automatically be provided a unique id. This behavior is dependent on the underlying secrets manager.

Examples

Store a new secret value

import (
  "context"
  "fmt"

  "github.com/nitrictech/go-sdk/nitric"
)

func main() {
  secret, err := nitric.NewSecret("secret-name").Allow(nitric.SecretPut)
  if err != nil {
    return
  }

  versionRef, err := secret.Put(context.TODO(), []byte("content"))
  if err != nil {
    return
  }

  if err := nitric.Run(); err != nil {
    fmt.Println(err)
  }
}

Get the id of a new secret version

Calling put() returns a promise to a reference to the new secret version. Storing the ID of the new version can be useful if you need to retrieve that specific value again in future using version.access()

import (
  "context"
  "fmt"

  "github.com/nitrictech/go-sdk/nitric"
)

func main() {
  secret, err := nitric.NewSecret("secret-name").Allow(nitric.SecretAccess)
  if err != nil {
    return
  }

  versionRef, err := secret.Put(context.TODO(), []byte("content"))
  if err != nil {
    return
  }

  fmt.Println(versionRef.Version())

  if err := nitric.Run(); err != nil {
    fmt.Println(err)
  }
}