github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/isecretsimpl/impl.go (about)

     1  /*
     2   * Copyright (c) 2022-present unTill Pro, Ltd.
     3   */
     4  
     5  package isecretsimpl
     6  
     7  import (
     8  	"os"
     9  	"path/filepath"
    10  	"strings"
    11  
    12  	"github.com/voedger/voedger/pkg/isecrets"
    13  )
    14  
    15  func implSecretReader() isecrets.ISecretReader {
    16  	secretRoot := defaultSecretRoot
    17  	if customSecretRoot := os.Getenv(SecretRootEnv); customSecretRoot != "" {
    18  		secretRoot = customSecretRoot
    19  	}
    20  	return &secretReader{secretRoot: secretRoot}
    21  }
    22  
    23  type secretReader struct {
    24  	secretRoot string
    25  }
    26  
    27  func (r *secretReader) ReadSecret(name string) (bb []byte, err error) {
    28  	if strings.TrimSpace(name) == "" {
    29  		return nil, isecrets.ErrSecretNameIsBlank
    30  	}
    31  
    32  	return os.ReadFile(filepath.Join(r.secretRoot, name))
    33  }