func()

in pkg/berglas/access.go [132:166]


func (c *Client) storageAccess(ctx context.Context, i *StorageAccessRequest) ([]byte, error) {
	bucket := i.Bucket
	if bucket == "" {
		return nil, fmt.Errorf("missing bucket name")
	}

	object := i.Object
	if object == "" {
		return nil, fmt.Errorf("missing object name")
	}

	generation := i.Generation
	if generation == 0 {
		generation = -1
	}

	logger := logging.FromContext(ctx).With(
		"bucket", bucket,
		"object", object,
		"generation", generation,
	)

	logger.DebugContext(ctx, "access.start")
	defer logger.DebugContext(ctx, "access.finish")

	secret, err := c.Read(ctx, &ReadRequest{
		Bucket:     bucket,
		Object:     object,
		Generation: generation,
	})
	if err != nil {
		return nil, fmt.Errorf("failed to access secret: %w", err)
	}
	return secret.Plaintext, nil
}