Class SecureNoteConverter

java.lang.Object
com.mwdle.bitwarden.converters.CredentialConverter
com.mwdle.bitwarden.converters.SecureNoteConverter
All Implemented Interfaces:
ExtensionPoint

@Extension public class SecureNoteConverter extends CredentialConverter
Converts Bitwarden Secure Note items into a Jenkins StringCredentials or FileCredentials proxy. The specific type is determined by the item's name.
  • Constructor Details

    • SecureNoteConverter

      public SecureNoteConverter()
  • Method Details

    • canConvert

      public boolean canConvert(BitwardenItemMetadata metadata)
      Checks if this converter can handle the item type specified in the metadata.

      This is a fast check based only on the item's type, without accessing any secret data.

      This implementation returns true if the item's type is BitwardenItemType.SECURE_NOTE.

      Specified by:
      canConvert in class CredentialConverter
      Parameters:
      metadata - The lightweight, non-secret metadata of the Bitwarden item.
      Returns:
      true if this converter is designed for the item's type.
    • canConvert

      public boolean canConvert(BitwardenItem item)
      Checks if this converter can handle the fully resolved item.

      This check is performed after the secret has been fetched and can be used to verify that the necessary fields (e.g., login, notes) are present.

      This implementation returns true if the Bitwarden item contains a non-null notes field.

      Specified by:
      canConvert in class CredentialConverter
      Parameters:
      item - The fully resolved Bitwarden item with all metadata and secret fields.
      Returns:
      true if this converter can handle the item's data.
    • createProxy

      public com.cloudbees.plugins.credentials.common.StandardCredentials createProxy(com.cloudbees.plugins.credentials.CredentialsScope scope, String id, BitwardenItemMetadata metadata)
      Creates a lightweight, lazy-loading proxy for a Jenkins credential.

      This method should not perform any expensive operations. It creates a dynamic proxy that will defer the actual fetching of the secret until a method like getPassword() or getContent() is called.

      This implementation creates a proxy for either StringCredentials or FileCredentials, based on whether the item name ends with .env.

      Specified by:
      createProxy in class CredentialConverter
      Parameters:
      scope - The scope for the new credential (always GLOBAL for this provider).
      id - The ID the credential will be known by in Jenkins (either the name or UUID).
      metadata - The lightweight metadata of the Bitwarden item.
      Returns:
      A StandardCredentials proxy object.
    • convert

      public com.cloudbees.plugins.credentials.common.StandardCredentials convert(com.cloudbees.plugins.credentials.CredentialsScope scope, String id, String description, BitwardenItem item)
      Creates a real, fully-formed Jenkins credential from a complete Bitwarden item.

      This method is called by the CredentialProxy during the lazy-loading process after the full item has been fetched from the Bitwarden CLI.

      This implementation returns a StringCredentialsImpl using the content of the notes field, or a FileCredentialsImpl if the item name ends with .env.

      Specified by:
      convert in class CredentialConverter
      Parameters:
      scope - The scope for the new credential.
      id - The ID for the new credential.
      description - The user-facing description for the new credential.
      item - The fully resolved Bitwarden item.
      Returns:
      The final, concrete Jenkins credential object.