Search code examples
google-secret-manager

What is a good way to get the latest version of a app engine cloud secret?


I can get the secret versions with

from google.cloud import secretmanager
secretmanager_client = secretmanager.SecretManagerServiceClient()

secret_pages = secretmanager_client.list_secret_versions(parent=f"projects/{project-number}/secrets/{secret-name}").pages

version = next(version for page in secret_pages for version in page.versions if version.state.value == 1)

data = secretmanager_client.access_secret_version(name=version.name).payload.data

But all this is very awkward to put in all my apps. Isn't there a better way?


Solution

  • Secret Manger allows the string "latest" as a version id for this case.

    projects/{project-number}/secrets/{secret-name}/versions/latest

    https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets#access