Class FileSystemSecretStoreHeaplet

  • All Implemented Interfaces:
    Heaplet

    public class FileSystemSecretStoreHeaplet
    extends GenericHeaplet
    This heaplet represents an instance of a PropertyResolverSecretStore resolving properties from files in a directory. The FlatFileResolver resolves each property stored in its own file in some directory.
     {
           "type": "FileSystemSecretStore",
           "config": {
             "directory":            expression             [REQUIRED - path to the directory containing the files
                                                                        (one file per password).]
             "format":               expression(enum)       [OPTIONAL - PLAIN or BASE64, default is BASE64],
             "suffix":               expression             [OPTIONAL - the suffix such as ".secret", default: empty.]
             "mappings":[            array                  [OPTIONAL - secrets mappings.]
               {                     object
                 "secretId":           expression             [REQUIRED - the label of the secret to map.]
                 "format":             reference              [REQUIRED - a reference to a
                                                                          {@link SecretPropertyFormat} object.]
               }
             ]
             "leaseExpiry":          expression<duration>   [OPTIONAL - defaults to 5 minutes.]
             "autoRefresh": {        object                 [OPTIONAL - indicate if this FileSystemSecretStore should be
                                                                        refreshed on filesystem change (edit and delete).]
               "enabled":              expression<boolean>    [OPTIONAL - Configure with boolean value or expression
                                                                          with 'true' to enable, or 'false' to disable.
                                                                          Default is enabled.]
               "executor":             executor               [OPTIONAL - Executor to use in monitoring the filesystem,
                                                                          defaults to heap-configured
                                                                          {@literal SCHEDULED_EXECUTOR_SERVICE_HEAP_KEY}.]
             }
        }
     }
     

    Example:

     {
           "type": "FileSystemSecretStore",
           "config": {
             "directory": "/path/to/openig/basedir/secrets"
             "format": "PLAIN"
           }
        }
     
    Example showing "autoRefresh" config, supporting filesystem monitoring and refresh:
     {
           "type": "FileSystemSecretStore",
           "config": {
             "directory": "/path/to/openig/basedir/secrets"
             "format": "PLAIN",
             "autoRefresh": {
               "enabled": "${my.boolean.property}",
               "executor": "#refreshExecutor"
             }
           }
        }
     
    See Also:
    FlatFileResolver
    • Constructor Detail

      • FileSystemSecretStoreHeaplet

        public FileSystemSecretStoreHeaplet()
    • Method Detail

      • destroy

        public void destroy()
        Description copied from interface: Heaplet
        Called to indicate that the object created by the heaplet is going to be dereferenced. This gives the heaplet an opportunity to free any resources that are being held prior to its dereference.
        Specified by:
        destroy in interface Heaplet
        Overrides:
        destroy in class GenericHeaplet