Secrets

A Secret stores named, typed secret material for later use by features that reference the Secret by ID.

Secret values are encrypted at rest and are write-only. API responses include metadata and configured value field names, but never include the stored secret values.

List Secrets

SDK Method

secret.List()

Return Object

[]*Secret

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator or a Workspace Administrator for the relevant workspace.

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/secret"
)

secretIterator, err := secret.List(files_sdk.SecretListParams{})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

for secretIterator.Next() {
    secret := secretIterator.secret()
}
err = secretIterator.Err()
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Show Secret

SDK Method

secret.Find()

Return Object

Secret

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator or a Workspace Administrator for the relevant workspace.

SecretFindParams Fields

FieldDescription
Id
int64
Required
Secret ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/secret"
)

secret, err := secret.Find(files_sdk.SecretFindParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Create Secret

SDK Method

secret.Create()

Return Object

Secret

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator or a Workspace Administrator for the relevant workspace.

SecretCreateParams Fields

FieldDefaultDescription
Name
string
Required
Secret name.
Description
string
Internal description for your reference.
SecretType
string
Required
Secret type.
Possible values: basic, token, headers, certificate, key_value
Metadata
object
Non-secret metadata for the Secret type.
WorkspaceId
int64
0Workspace ID. 0 means the default workspace.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/secret"
)

secret, err := secret.Create(files_sdk.SecretCreateParams{
  Name: "Production API token",
  SecretType: "token"
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Update Secret

SDK Method

secret.Update()

Return Object

Secret

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator or a Workspace Administrator for the relevant workspace.

SecretUpdateParams Fields

FieldDescription
Id
int64
Required
Secret ID.
Name
string
Secret name.
Description
string
Internal description for your reference.
SecretType
string
Secret type.
Possible values: basic, token, headers, certificate, key_value
Metadata
object
Non-secret metadata for the Secret type.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/secret"
)

secret, err := secret.Update(files_sdk.SecretUpdateParams{
  Id: 1,
  Name: "Production API token"
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Delete Secret

SDK Method

secret.Delete()

Return Object

No return value.

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator or a Workspace Administrator for the relevant workspace.

SecretDeleteParams Fields

FieldDescription
Id
int64
Required
Secret ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/secret"
)

err := secret.Delete(files_sdk.SecretDeleteParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

The Secret Object

Some of the methods above return a Secret object. The attributes of this object are listed below.

AttributeDescription
Id
int64
Secret ID.
WorkspaceId
int64
Workspace ID. 0 means the default workspace.
Name
string
Secret name.
Description
string
Internal description for your reference.
SecretType
string
Secret type.
Possible values: basic, token, headers, certificate, key_value
Metadata
object
Non-secret metadata for the Secret type.
ValueFieldNames
array(string)
Names of configured secret value fields. Secret values are never returned.
CreatedAt
date-time
Secret create date/time.
UpdatedAt
date-time
Secret update date/time.

metadata

Value Hash ParameterDescription
username
string
Required for basic secrets. Not allowed for other secret types.
header_name
string
For token secrets only. Cannot be combined with query_parameter_name.
query_parameter_name
string
For token secrets only. Cannot be combined with header_name.

Example metadata

{
  "header_name": "Authorization"
}