vault/sdk/plugin/context.go
Vault Automation 0c6c13dd38
license: update headers to IBM Corp. (#10229) (#10233)
* license: update headers to IBM Corp.
* `make proto`
* update offset because source file changed

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-21 15:20:20 -06:00

35 lines
1.0 KiB
Go

// Copyright IBM Corp. 2016, 2025
// SPDX-License-Identifier: MPL-2.0
package plugin
import (
"context"
"github.com/hashicorp/vault/sdk/logical"
"google.golang.org/grpc/metadata"
)
// pbMetadataCtxToLogicalCtx extracts the snapshot ID key from an incoming GRPC
// context and adds the logical context key to the returned context
func pbMetadataCtxToLogicalCtx(ctx context.Context) context.Context {
var snapshotID string
snapshotIDs := metadata.ValueFromIncomingContext(ctx, snapshotIDCtxKey)
if len(snapshotIDs) > 0 {
snapshotID = snapshotIDs[0]
}
return logical.CreateContextWithSnapshotID(ctx, snapshotID)
}
// logicalCtxToPBMetadataCtx extracts the logical context snapshot ID key from
// the context and appends it to an outgoing GRPC context
func logicalCtxToPBMetadataCtx(ctx context.Context) context.Context {
snapshotID, ok := logical.ContextSnapshotIDValue(ctx)
if !ok {
return ctx
}
return metadata.AppendToOutgoingContext(ctx, snapshotIDCtxKey, snapshotID)
}
const snapshotIDCtxKey string = "snapshot_id"