Documentation
¶
Overview ¶
Package secretmanager is the Secret Manager emulation.
A secret is a container; the value lives in numbered versions beneath it, and "latest" is an alias for the newest one still enabled. That indirection is the whole model, and the reason a rotated credential does not need the code reading it to change.
Index ¶
- Constants
- type REST
- type Service
- func (s *Service) AccessSecretVersion(ctx context.Context, req *secretmanagerpb.AccessSecretVersionRequest) (*secretmanagerpb.AccessSecretVersionResponse, error)
- func (s *Service) AddSecretVersion(ctx context.Context, req *secretmanagerpb.AddSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
- func (s *Service) CreateSecret(ctx context.Context, req *secretmanagerpb.CreateSecretRequest) (*secretmanagerpb.Secret, error)
- func (s *Service) DeleteSecret(ctx context.Context, req *secretmanagerpb.DeleteSecretRequest) (*emptypb.Empty, error)
- func (s *Service) DestroySecretVersion(ctx context.Context, req *secretmanagerpb.DestroySecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
- func (s *Service) DisableSecretVersion(ctx context.Context, req *secretmanagerpb.DisableSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
- func (s *Service) EnableSecretVersion(ctx context.Context, req *secretmanagerpb.EnableSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
- func (s *Service) GetSecret(ctx context.Context, req *secretmanagerpb.GetSecretRequest) (*secretmanagerpb.Secret, error)
- func (s *Service) GetSecretVersion(ctx context.Context, req *secretmanagerpb.GetSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
- func (s *Service) ListSecretVersions(ctx context.Context, req *secretmanagerpb.ListSecretVersionsRequest) (*secretmanagerpb.ListSecretVersionsResponse, error)
- func (s *Service) ListSecrets(ctx context.Context, req *secretmanagerpb.ListSecretsRequest) (*secretmanagerpb.ListSecretsResponse, error)
- func (s *Service) UpdateSecret(ctx context.Context, req *secretmanagerpb.UpdateSecretRequest) (*secretmanagerpb.Secret, error)
Constants ¶
const LatestAlias = "latest"
LatestAlias is the version name every caller uses instead of a number.
const MaxBodyBytes = 4 << 20
MaxBodyBytes caps a JSON request body.
These are metadata APIs: the largest thing they legitimately carry is a secret payload or a message, both far below this. Without a cap, one unauthenticated request with an endless body allocates until the emulator dies, which is a cheap way to take down everything else sharing the port.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type REST ¶
type REST struct {
// contains filtered or unexported fields
}
REST serves the Secret Manager JSON API over the same service the gRPC half uses. gcloud speaks REST; the Go client speaks gRPC.
type Service ¶
type Service struct {
secretmanagerpb.UnimplementedSecretManagerServiceServer
// contains filtered or unexported fields
}
Service holds secrets and their versions.
func (*Service) AccessSecretVersion ¶
func (s *Service) AccessSecretVersion(ctx context.Context, req *secretmanagerpb.AccessSecretVersionRequest) (*secretmanagerpb.AccessSecretVersionResponse, error)
AccessSecretVersion returns the value. This is the call everything else exists to serve.
func (*Service) AddSecretVersion ¶
func (s *Service) AddSecretVersion(ctx context.Context, req *secretmanagerpb.AddSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
AddSecretVersion stores a new value. Versions are numbered from one and never reused, so a reference to a version always means the same bytes.
func (*Service) CreateSecret ¶
func (s *Service) CreateSecret(ctx context.Context, req *secretmanagerpb.CreateSecretRequest) (*secretmanagerpb.Secret, error)
func (*Service) DeleteSecret ¶
func (s *Service) DeleteSecret(ctx context.Context, req *secretmanagerpb.DeleteSecretRequest) (*emptypb.Empty, error)
func (*Service) DestroySecretVersion ¶
func (s *Service) DestroySecretVersion(ctx context.Context, req *secretmanagerpb.DestroySecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
func (*Service) DisableSecretVersion ¶
func (s *Service) DisableSecretVersion(ctx context.Context, req *secretmanagerpb.DisableSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
func (*Service) EnableSecretVersion ¶
func (s *Service) EnableSecretVersion(ctx context.Context, req *secretmanagerpb.EnableSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
func (*Service) GetSecret ¶
func (s *Service) GetSecret(ctx context.Context, req *secretmanagerpb.GetSecretRequest) (*secretmanagerpb.Secret, error)
func (*Service) GetSecretVersion ¶
func (s *Service) GetSecretVersion(ctx context.Context, req *secretmanagerpb.GetSecretVersionRequest) (*secretmanagerpb.SecretVersion, error)
func (*Service) ListSecretVersions ¶
func (s *Service) ListSecretVersions(ctx context.Context, req *secretmanagerpb.ListSecretVersionsRequest) (*secretmanagerpb.ListSecretVersionsResponse, error)
func (*Service) ListSecrets ¶
func (s *Service) ListSecrets(ctx context.Context, req *secretmanagerpb.ListSecretsRequest) (*secretmanagerpb.ListSecretsResponse, error)
func (*Service) UpdateSecret ¶
func (s *Service) UpdateSecret(ctx context.Context, req *secretmanagerpb.UpdateSecretRequest) (*secretmanagerpb.Secret, error)
UpdateSecret applies the fields named by the update mask. `gcloud secrets update` reaches this to change labels.