Files
threshold/internal/server/public_ids.go
T
Jeff MitchellandIrena Rindos bdf7bf7702 Do not allow PKI-KMS workers to have names updated via API (#3143)
Do not allow PKI-KMS workers to have names updated via API

This would cause their public IDs to change, which we do not want.

Descriptions are also disallowed, since those come from the config file.

This also adds logic to allow upgrading from old KMS method to new, with
a test.

Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com>
2023-04-03 17:44:41 -04:00

33 lines
941 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package server
import (
"context"
"github.com/hashicorp/boundary/globals"
"github.com/hashicorp/boundary/internal/db"
"github.com/hashicorp/boundary/internal/errors"
)
func newWorkerId(ctx context.Context) (string, error) {
id, err := db.NewPublicId(globals.WorkerPrefix)
if err != nil {
return "", errors.Wrap(ctx, err, "server.newWorkerId")
}
return id, nil
}
// NewWorkerIdFromScopeAndName generates a predictable public id based on the
// scope and the worker name. This should only be used on kms workers at
// upsert time.
func NewWorkerIdFromScopeAndName(ctx context.Context, scope, name string) (string, error) {
const op = "server.NewWorkerIdFromScopeAndName"
id, err := db.NewPublicId(globals.WorkerPrefix, db.WithPrngValues([]string{scope, name}))
if err != nil {
return "", errors.Wrap(ctx, err, "server.newWorkerId")
}
return id, nil
}