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 Values

Returns a *secret.Iter and an error. Range over All() to receive files_sdk.Secret values and errors. Check each loop error before using its resource. Next() and Err() remain supported.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}

for secret, err := range secretIterator.All() {
    if err != nil {
        var respErr files_sdk.ResponseError
        if errors.As(err, &respErr) {
            fmt.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
        } else {
            fmt.Printf("Request failed: %v\n", err)
        }
        return
    }
    fmt.Println(secret)
}

Show Secret

SDK Method

secret.Find()

Return Values

Returns a files_sdk.Secret value and an error.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}
fmt.Println(secret)

Create Secret

SDK Method

secret.Create()

Return Values

Returns a files_sdk.Secret value and an error.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}
fmt.Println(secret)

Update Secret

SDK Method

secret.Update()

Return Values

Returns a files_sdk.Secret value and an error.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}
fmt.Println(secret)

Delete Secret

SDK Method

secret.Delete()

Return Values

Returns an error, or nil on success.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}

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"
}