Skip to content

Create Secret

Deprecated
client.Secrets.New(ctx, body) (*CloudSecret, error)
POST/v5/sgp/secrets

Create an account-level secret.

The secret value is stored in the cloud provider’s secret store. SGP only stores metadata (key name, description, audit info). The value is never returned by any API. Returns 409 if a secret with the same key already exists.

ParametersExpand Collapse
body SecretNewParams
Key param.Field[string]

Secret name (e.g. openai-api-key). Must be lowercase alphanumeric with hyphens (no dots or underscores), so it maps 1:1 to a valid secret name on every cloud backend (AWS / Azure Key Vault / GCP Secret Manager).

maxLength90
minLength1
Value param.Field[string]

The secret value to store

minLength1
Description param.Field[string]Optional

Optional human-readable description

ReturnsExpand Collapse
type CloudSecret struct{…}

API response model for a secret. Never includes the secret value.

ID string

The unique identifier of the entity.

AccountID string

The ID of the account that owns the given entity.

CloudSecretPath string

Full path in the cloud secret store.

CreatedAt Time

The date and time when the entity was created in ISO format.

formatdate-time
CreatedBy Identity

The identity that created the entity.

ID string
Type IdentityType
One of the following:
const IdentityTypeUser IdentityType = "user"
const IdentityTypeServiceAccount IdentityType = "service_account"
Object IdentityObjectOptional
Key string

Secret name, e.g. OPENAI_API_KEY.

Description stringOptional

Optional human-readable description of the secret.

Object CloudSecretObjectOptional
UpdatedAt TimeOptional

Timestamp of last update.

formatdate-time
UpdatedBy stringOptional

User who last updated the secret.

Create Secret

package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  cloudSecret, err := client.Secrets.New(context.TODO(), sgpdev.SecretNewParams{
    Key: "key",
    Value: "x",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", cloudSecret.ID)
}
{
  "id": "id",
  "account_id": "account_id",
  "cloud_secret_path": "cloud_secret_path",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "key": "key",
  "description": "description",
  "object": "sgp_cloud_secret",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "updated_by": "updated_by"
}
Returns Examples
{
  "id": "id",
  "account_id": "account_id",
  "cloud_secret_path": "cloud_secret_path",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "key": "key",
  "description": "description",
  "object": "sgp_cloud_secret",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "updated_by": "updated_by"
}