Skip to content

Instantly share code, notes, and snippets.

@FyberEngineers
Last active November 6, 2019 11:36
Hashi-Tools
import com.typesafe.config.ConfigFactory
import com.fyber.vault.client.Secrets
import com.fyber.vault.engines.AWS.AWSCredentials
import scala.concurrent.duration.Duration
import scala.concurrent.{Await, Future}
def config = ConfigFactory.load().getConfig("secrets")
val secrets = Secrets(config)
println("--------------------------------------------------------")
println("Get AWS Credentials")
val awscredentials = secrets.engines.aws.getCredentials
val awsAccessKey = awscredentials.accessKey.key
val awsSecretKey = awscredentials.secretKey.key
val awscredentialsVerifyedAsReady = secrets.engines.aws.getCredentialsAndWait
println("--------------------------------------------------------")
println("Get AWS Credentials in async way")
val credentialsAsync: Future[AWSCredentials] = secrets.engines.aws.getCredentialsAsync
val result = Await.result(credentialsAsync, Duration.Inf)
println(s" accessKey: ${result.accessKey.key}")
println("--------------------------------------------------------")
println("Get AWS Credentials for different mount")
val credentialsProduction = secrets.engines.aws.getCredentials("prod")
val awsAccessKeyProduction = credentialsProduction.accessKey.key
println("--------------------------------------------------------")
println("Get database Credentials")
val databaseCredentials = secrets.engines.database.getCredentials
val userName = databaseCredentials.user.userName
val password = databaseCredentials.password.password
println("--------------------------------------------------------")
println("Get a secret by key")
val myValue = secrets.engines.kv.getCredentials(Path("my-secret"), Key("my-value"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment