Connector for Secret Manager

Workflows connector that defines the built-in function used to access Secret Manager within a workflow.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

YAML

  # This workflow demonstrates how to use the Secret Manager connector: 
 # Retrieve a secret using three different methods 
 # Expected output: the secret data (thrice) 
 - 
  
 init 
 : 
  
 assign 
 : 
  
 - 
  
 project_id 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} 
  
 - 
  
 secret_id 
 : 
  
 "test-secret" 
  
 # Make sure you have this secret and it has a version of 1. 
  
 - 
  
 version 
 : 
  
 "1" 
 # Add data to an existing secret without base-64 encoding 
 - 
  
 add_version_string 
 : 
  
 call 
 : 
  
 googleapis.secretmanager.v1.projects.secrets.addVersionString 
  
 args 
 : 
  
 secret_id 
 : 
  
 ${secret_id} 
  
 project_id 
 : 
  
 ${project_id} 
  
 data 
 : 
  
 "a 
  
 new 
  
 secret" 
 # Retrieve the secret in string format without base-64 decoding and assume 
 # that the secret data is a valid UTF-8 string; if not, raise an error 
 - 
  
 access_string_secret 
 : 
  
 call 
 : 
  
 googleapis.secretmanager.v1.projects.secrets.versions.accessString 
  
 args 
 : 
  
 secret_id 
 : 
  
 ${secret_id} 
  
 version 
 : 
  
 ${version} 
  
 # if not set, "latest" is used 
  
 project_id 
 : 
  
 ${project_id} 
  
 result 
 : 
  
 str_secret 
 # Retrieve the secret in string format without base-64 decoding 
 - 
  
 access_secret 
 : 
  
 call 
 : 
  
 googleapis.secretmanager.v1.projects.secrets.versions.access 
  
 args 
 : 
  
 name 
 : 
  
 ${"projects/" + project_id + "/secrets/" + secret_id + "/versions/" + version} 
  
 result 
 : 
  
 base64_encoded_secret 
 # Retrieve the secret using positional arguments in an expression 
 - 
  
 expression 
 : 
  
 assign 
 : 
  
 - 
  
 secret_str_from_exp 
 : 
  
 ${googleapis.secretmanager.v1.projects.secrets.versions.accessString(secret_id, version, project_id)} 
 - 
  
 the_end 
 : 
  
 return 
 : 
  
 - 
  
 ${str_secret} 
  
 - 
  
 ${text.decode(base64.decode(base64_encoded_secret.payload.data))} 
  
 - 
  
 ${secret_str_from_exp} 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: