| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Network.VaultTool
Description
Unless otherwise specified, all IO functions in this module may
potentially throw HttpException or VaultException
Synopsis
- newtype VaultAddress = VaultAddress {}
- newtype VaultUnsealKey = VaultUnsealKey {}
- newtype VaultAuthToken = VaultAuthToken {}
- newtype VaultAppRoleId = VaultAppRoleId {}
- newtype VaultAppRoleSecretId = VaultAppRoleSecretId {}
- data VaultException
- data VaultHealth = VaultHealth {}
- vaultHealth :: VaultAddress -> IO VaultHealth
- data VaultConnection
- connectToVault :: VaultAddress -> VaultAuthToken -> IO VaultConnection
- connectToVaultAppRole :: VaultAddress -> VaultAppRoleId -> VaultAppRoleSecretId -> IO VaultConnection
- vaultAuthEnable :: VaultConnection -> Text -> IO ()
- vaultPolicyCreate :: VaultConnection -> Text -> Text -> IO ()
- vaultInit :: VaultAddress -> Int -> Int -> IO ([VaultUnsealKey], VaultAuthToken)
- data VaultSealStatus = VaultSealStatus {}
- vaultSealStatus :: VaultAddress -> IO VaultSealStatus
- vaultSeal :: VaultConnection -> IO ()
- data VaultUnseal
- vaultUnseal :: VaultAddress -> VaultUnseal -> IO VaultSealStatus
- vaultAppRoleCreate :: VaultConnection -> Text -> VaultAppRoleParameters -> IO ()
- vaultAppRoleRoleIdRead :: VaultConnection -> Text -> IO VaultAppRoleId
- vaultAppRoleSecretIdGenerate :: VaultConnection -> Text -> Text -> IO VaultAppRoleSecretIdGenerateResponse
- defaultVaultAppRoleParameters :: VaultAppRoleParameters
- data VaultAppRoleParameters = VaultAppRoleParameters {
- _VaultAppRoleParameters_BindSecretId :: Bool
- _VaultAppRoleParameters_Policies :: [Text]
- _VaultAppRoleParameters_SecretIdNumUses :: Maybe Int
- _VaultAppRoleParameters_SecretIdTTL :: Maybe Int
- _VaultAppRoleParameters_TokenNumUses :: Maybe Int
- _VaultAppRoleParameters_TokenTTL :: Maybe Int
- _VaultAppRoleParameters_TokenMaxTTL :: Maybe Int
- _VaultAppRoleParameters_Period :: Maybe Int
- data VaultAppRoleSecretIdGenerateResponse = VaultAppRoleSecretIdGenerateResponse {
- _VaultAppRoleSecretIdGenerateResponse_SecretIdAccessor :: VaultAppRoleSecretIdAccessor
- _VaultAppRoleSecretIdGenerateResponse_SecretId :: VaultAppRoleSecretId
- data VaultMount a b = VaultMount {}
- type VaultMountRead = VaultMount Text VaultMountConfigRead
- type VaultMountWrite = VaultMount (Maybe Text) (Maybe VaultMountConfigWrite)
- data VaultMountConfig a = VaultMountConfig {}
- type VaultMountConfigRead = VaultMountConfig Int
- type VaultMountConfigWrite = VaultMountConfig (Maybe Int)
- vaultMounts :: VaultConnection -> IO [(Text, VaultMountRead)]
- vaultMountTune :: VaultConnection -> Text -> IO VaultMountConfigRead
- vaultMountSetTune :: VaultConnection -> Text -> VaultMountConfigWrite -> IO ()
- vaultNewMount :: VaultConnection -> Text -> VaultMountWrite -> IO ()
- vaultUnmount :: VaultConnection -> Text -> IO ()
- newtype VaultMountedPath = VaultMountedPath {}
- newtype VaultSearchPath = VaultSearchPath {}
- newtype VaultSecretPath = VaultSecretPath (VaultMountedPath, VaultSearchPath)
- data VaultSecretMetadata = VaultSecretMetadata {}
- vaultWrite :: ToJSON a => VaultConnection -> VaultSecretPath -> a -> IO ()
- vaultRead :: FromJSON a => VaultConnection -> VaultSecretPath -> IO (VaultSecretMetadata, Either (Value, String) a)
- vaultDelete :: VaultConnection -> VaultSecretPath -> IO ()
- vaultList :: VaultConnection -> VaultSecretPath -> IO [VaultSecretPath]
- isFolder :: VaultSecretPath -> Bool
- vaultListRecursive :: VaultConnection -> VaultSecretPath -> IO [VaultSecretPath]
Documentation
newtype VaultAddress Source #
Constructors
| VaultAddress | |
Fields | |
Instances
| Eq VaultAddress Source # | |
Defined in Network.VaultTool.Types | |
| Ord VaultAddress Source # | |
Defined in Network.VaultTool.Types Methods compare :: VaultAddress -> VaultAddress -> Ordering # (<) :: VaultAddress -> VaultAddress -> Bool # (<=) :: VaultAddress -> VaultAddress -> Bool # (>) :: VaultAddress -> VaultAddress -> Bool # (>=) :: VaultAddress -> VaultAddress -> Bool # max :: VaultAddress -> VaultAddress -> VaultAddress # min :: VaultAddress -> VaultAddress -> VaultAddress # | |
| Show VaultAddress Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultAddress -> ShowS # show :: VaultAddress -> String # showList :: [VaultAddress] -> ShowS # | |
newtype VaultUnsealKey Source #
Constructors
| VaultUnsealKey | |
Fields | |
Instances
| Eq VaultUnsealKey Source # | |
Defined in Network.VaultTool.Types Methods (==) :: VaultUnsealKey -> VaultUnsealKey -> Bool # (/=) :: VaultUnsealKey -> VaultUnsealKey -> Bool # | |
| Ord VaultUnsealKey Source # | |
Defined in Network.VaultTool.Types Methods compare :: VaultUnsealKey -> VaultUnsealKey -> Ordering # (<) :: VaultUnsealKey -> VaultUnsealKey -> Bool # (<=) :: VaultUnsealKey -> VaultUnsealKey -> Bool # (>) :: VaultUnsealKey -> VaultUnsealKey -> Bool # (>=) :: VaultUnsealKey -> VaultUnsealKey -> Bool # max :: VaultUnsealKey -> VaultUnsealKey -> VaultUnsealKey # min :: VaultUnsealKey -> VaultUnsealKey -> VaultUnsealKey # | |
| Show VaultUnsealKey Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultUnsealKey -> ShowS # show :: VaultUnsealKey -> String # showList :: [VaultUnsealKey] -> ShowS # | |
newtype VaultAuthToken Source #
Constructors
| VaultAuthToken | |
Fields | |
Instances
| Eq VaultAuthToken Source # | |
Defined in Network.VaultTool.Types Methods (==) :: VaultAuthToken -> VaultAuthToken -> Bool # (/=) :: VaultAuthToken -> VaultAuthToken -> Bool # | |
| Ord VaultAuthToken Source # | |
Defined in Network.VaultTool.Types Methods compare :: VaultAuthToken -> VaultAuthToken -> Ordering # (<) :: VaultAuthToken -> VaultAuthToken -> Bool # (<=) :: VaultAuthToken -> VaultAuthToken -> Bool # (>) :: VaultAuthToken -> VaultAuthToken -> Bool # (>=) :: VaultAuthToken -> VaultAuthToken -> Bool # max :: VaultAuthToken -> VaultAuthToken -> VaultAuthToken # min :: VaultAuthToken -> VaultAuthToken -> VaultAuthToken # | |
| Show VaultAuthToken Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultAuthToken -> ShowS # show :: VaultAuthToken -> String # showList :: [VaultAuthToken] -> ShowS # | |
| FromJSON VaultAuthToken Source # | |
Defined in Network.VaultTool.Types Methods parseJSON :: Value -> Parser VaultAuthToken # parseJSONList :: Value -> Parser [VaultAuthToken] # | |
newtype VaultAppRoleId Source #
Constructors
| VaultAppRoleId | |
Fields | |
Instances
newtype VaultAppRoleSecretId Source #
Constructors
| VaultAppRoleSecretId | |
Fields | |
Instances
data VaultException Source #
Constructors
Instances
| Eq VaultException Source # | |
Defined in Network.VaultTool.Types Methods (==) :: VaultException -> VaultException -> Bool # (/=) :: VaultException -> VaultException -> Bool # | |
| Show VaultException Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultException -> ShowS # show :: VaultException -> String # showList :: [VaultException] -> ShowS # | |
| Exception VaultException Source # | |
Defined in Network.VaultTool.Types Methods toException :: VaultException -> SomeException # | |
data VaultHealth Source #
Constructors
| VaultHealth | |
Instances
| Eq VaultHealth Source # | |
Defined in Network.VaultTool | |
| Ord VaultHealth Source # | |
Defined in Network.VaultTool Methods compare :: VaultHealth -> VaultHealth -> Ordering # (<) :: VaultHealth -> VaultHealth -> Bool # (<=) :: VaultHealth -> VaultHealth -> Bool # (>) :: VaultHealth -> VaultHealth -> Bool # (>=) :: VaultHealth -> VaultHealth -> Bool # max :: VaultHealth -> VaultHealth -> VaultHealth # min :: VaultHealth -> VaultHealth -> VaultHealth # | |
| Show VaultHealth Source # | |
Defined in Network.VaultTool Methods showsPrec :: Int -> VaultHealth -> ShowS # show :: VaultHealth -> String # showList :: [VaultHealth] -> ShowS # | |
| FromJSON VaultHealth Source # | |
Defined in Network.VaultTool | |
vaultHealth :: VaultAddress -> IO VaultHealth Source #
data VaultConnection Source #
connectToVault :: VaultAddress -> VaultAuthToken -> IO VaultConnection Source #
Just initializes the VaultConnection objects, does not actually make any
contact with the vault server. (That is also the explanation why there is no
function to disconnect)
connectToVaultAppRole :: VaultAddress -> VaultAppRoleId -> VaultAppRoleSecretId -> IO VaultConnection Source #
Initializes the VaultConnection objects using approle credentials to retrieve an authtoken,
and then calls connectToVault
vaultAuthEnable :: VaultConnection -> Text -> IO () Source #
vaultPolicyCreate :: VaultConnection -> Text -> Text -> IO () Source #
Arguments
| :: VaultAddress | |
| -> Int |
|
| -> Int |
|
| -> IO ([VaultUnsealKey], VaultAuthToken) | master keys and initial root token |
data VaultSealStatus Source #
Constructors
| VaultSealStatus | |
Fields
| |
Instances
| Eq VaultSealStatus Source # | |
Defined in Network.VaultTool Methods (==) :: VaultSealStatus -> VaultSealStatus -> Bool # (/=) :: VaultSealStatus -> VaultSealStatus -> Bool # | |
| Ord VaultSealStatus Source # | |
Defined in Network.VaultTool Methods compare :: VaultSealStatus -> VaultSealStatus -> Ordering # (<) :: VaultSealStatus -> VaultSealStatus -> Bool # (<=) :: VaultSealStatus -> VaultSealStatus -> Bool # (>) :: VaultSealStatus -> VaultSealStatus -> Bool # (>=) :: VaultSealStatus -> VaultSealStatus -> Bool # max :: VaultSealStatus -> VaultSealStatus -> VaultSealStatus # min :: VaultSealStatus -> VaultSealStatus -> VaultSealStatus # | |
| Show VaultSealStatus Source # | |
Defined in Network.VaultTool Methods showsPrec :: Int -> VaultSealStatus -> ShowS # show :: VaultSealStatus -> String # showList :: [VaultSealStatus] -> ShowS # | |
| FromJSON VaultSealStatus Source # | |
Defined in Network.VaultTool Methods parseJSON :: Value -> Parser VaultSealStatus # parseJSONList :: Value -> Parser [VaultSealStatus] # | |
vaultSeal :: VaultConnection -> IO () Source #
data VaultUnseal Source #
Constructors
| VaultUnseal_Key VaultUnsealKey | |
| VaultUnseal_Reset |
Instances
| Eq VaultUnseal Source # | |
Defined in Network.VaultTool | |
| Ord VaultUnseal Source # | |
Defined in Network.VaultTool Methods compare :: VaultUnseal -> VaultUnseal -> Ordering # (<) :: VaultUnseal -> VaultUnseal -> Bool # (<=) :: VaultUnseal -> VaultUnseal -> Bool # (>) :: VaultUnseal -> VaultUnseal -> Bool # (>=) :: VaultUnseal -> VaultUnseal -> Bool # max :: VaultUnseal -> VaultUnseal -> VaultUnseal # min :: VaultUnseal -> VaultUnseal -> VaultUnseal # | |
| Show VaultUnseal Source # | |
Defined in Network.VaultTool Methods showsPrec :: Int -> VaultUnseal -> ShowS # show :: VaultUnseal -> String # showList :: [VaultUnseal] -> ShowS # | |
vaultUnseal :: VaultAddress -> VaultUnseal -> IO VaultSealStatus Source #
vaultAppRoleCreate :: VaultConnection -> Text -> VaultAppRoleParameters -> IO () Source #
vaultAppRoleSecretIdGenerate :: VaultConnection -> Text -> Text -> IO VaultAppRoleSecretIdGenerateResponse Source #
data VaultAppRoleParameters Source #
https://www.vaultproject.io/api/auth/approle/index.html#create-new-approle
Note: For TTL fields, only integer number seconds, i.e. 3600, are supported
Constructors
Instances
| ToJSON VaultAppRoleParameters Source # | |
Defined in Network.VaultTool Methods toJSON :: VaultAppRoleParameters -> Value # toEncoding :: VaultAppRoleParameters -> Encoding # toJSONList :: [VaultAppRoleParameters] -> Value # | |
| FromJSON VaultAppRoleParameters Source # | |
Defined in Network.VaultTool Methods parseJSON :: Value -> Parser VaultAppRoleParameters # parseJSONList :: Value -> Parser [VaultAppRoleParameters] # | |
data VaultAppRoleSecretIdGenerateResponse Source #
Constructors
| VaultAppRoleSecretIdGenerateResponse | |
Fields
| |
Instances
| FromJSON VaultAppRoleSecretIdGenerateResponse Source # | |
Defined in Network.VaultTool | |
data VaultMount a b Source #
Constructors
| VaultMount | |
Fields
| |
Instances
type VaultMountWrite = VaultMount (Maybe Text) (Maybe VaultMountConfigWrite) Source #
data VaultMountConfig a Source #
Constructors
| VaultMountConfig | |
Fields | |
Instances
type VaultMountConfigWrite = VaultMountConfig (Maybe Int) Source #
vaultMounts :: VaultConnection -> IO [(Text, VaultMountRead)] Source #
https://www.vaultproject.io/docs/http/sys-mounts.html
For your convenience, the results are returned sorted (by the mount point)
vaultMountSetTune :: VaultConnection -> Text -> VaultMountConfigWrite -> IO () Source #
vaultNewMount :: VaultConnection -> Text -> VaultMountWrite -> IO () Source #
vaultUnmount :: VaultConnection -> Text -> IO () Source #
newtype VaultMountedPath Source #
Constructors
| VaultMountedPath | |
Fields | |
Instances
| Eq VaultMountedPath Source # | |
Defined in Network.VaultTool.Types Methods (==) :: VaultMountedPath -> VaultMountedPath -> Bool # (/=) :: VaultMountedPath -> VaultMountedPath -> Bool # | |
| Ord VaultMountedPath Source # | |
Defined in Network.VaultTool.Types Methods compare :: VaultMountedPath -> VaultMountedPath -> Ordering # (<) :: VaultMountedPath -> VaultMountedPath -> Bool # (<=) :: VaultMountedPath -> VaultMountedPath -> Bool # (>) :: VaultMountedPath -> VaultMountedPath -> Bool # (>=) :: VaultMountedPath -> VaultMountedPath -> Bool # max :: VaultMountedPath -> VaultMountedPath -> VaultMountedPath # min :: VaultMountedPath -> VaultMountedPath -> VaultMountedPath # | |
| Show VaultMountedPath Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultMountedPath -> ShowS # show :: VaultMountedPath -> String # showList :: [VaultMountedPath] -> ShowS # | |
newtype VaultSearchPath Source #
Constructors
| VaultSearchPath | |
Fields | |
Instances
| Eq VaultSearchPath Source # | |
Defined in Network.VaultTool.Types Methods (==) :: VaultSearchPath -> VaultSearchPath -> Bool # (/=) :: VaultSearchPath -> VaultSearchPath -> Bool # | |
| Ord VaultSearchPath Source # | |
Defined in Network.VaultTool.Types Methods compare :: VaultSearchPath -> VaultSearchPath -> Ordering # (<) :: VaultSearchPath -> VaultSearchPath -> Bool # (<=) :: VaultSearchPath -> VaultSearchPath -> Bool # (>) :: VaultSearchPath -> VaultSearchPath -> Bool # (>=) :: VaultSearchPath -> VaultSearchPath -> Bool # max :: VaultSearchPath -> VaultSearchPath -> VaultSearchPath # min :: VaultSearchPath -> VaultSearchPath -> VaultSearchPath # | |
| Show VaultSearchPath Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultSearchPath -> ShowS # show :: VaultSearchPath -> String # showList :: [VaultSearchPath] -> ShowS # | |
newtype VaultSecretPath Source #
Constructors
| VaultSecretPath (VaultMountedPath, VaultSearchPath) |
Instances
| Eq VaultSecretPath Source # | |
Defined in Network.VaultTool.Types Methods (==) :: VaultSecretPath -> VaultSecretPath -> Bool # (/=) :: VaultSecretPath -> VaultSecretPath -> Bool # | |
| Ord VaultSecretPath Source # | |
Defined in Network.VaultTool.Types Methods compare :: VaultSecretPath -> VaultSecretPath -> Ordering # (<) :: VaultSecretPath -> VaultSecretPath -> Bool # (<=) :: VaultSecretPath -> VaultSecretPath -> Bool # (>) :: VaultSecretPath -> VaultSecretPath -> Bool # (>=) :: VaultSecretPath -> VaultSecretPath -> Bool # max :: VaultSecretPath -> VaultSecretPath -> VaultSecretPath # min :: VaultSecretPath -> VaultSecretPath -> VaultSecretPath # | |
| Show VaultSecretPath Source # | |
Defined in Network.VaultTool.Types Methods showsPrec :: Int -> VaultSecretPath -> ShowS # show :: VaultSecretPath -> String # showList :: [VaultSecretPath] -> ShowS # | |
data VaultSecretMetadata Source #
Constructors
| VaultSecretMetadata | |
Instances
| Eq VaultSecretMetadata Source # | |
Defined in Network.VaultTool Methods (==) :: VaultSecretMetadata -> VaultSecretMetadata -> Bool # (/=) :: VaultSecretMetadata -> VaultSecretMetadata -> Bool # | |
| Show VaultSecretMetadata Source # | |
Defined in Network.VaultTool Methods showsPrec :: Int -> VaultSecretMetadata -> ShowS # show :: VaultSecretMetadata -> String # showList :: [VaultSecretMetadata] -> ShowS # | |
| FromJSON VaultSecretMetadata Source # | |
Defined in Network.VaultTool Methods parseJSON :: Value -> Parser VaultSecretMetadata # parseJSONList :: Value -> Parser [VaultSecretMetadata] # | |
vaultWrite :: ToJSON a => VaultConnection -> VaultSecretPath -> a -> IO () Source #
https://www.vaultproject.io/docs/secrets/generic/index.html
The value that you give must encode as a JSON object
Arguments
| :: FromJSON a | |
| => VaultConnection | |
| -> VaultSecretPath | |
| -> IO (VaultSecretMetadata, Either (Value, String) a) | A You will get the
"data" as a raw
|
vaultDelete :: VaultConnection -> VaultSecretPath -> IO () Source #
vaultList :: VaultConnection -> VaultSecretPath -> IO [VaultSecretPath] Source #
https://www.vaultproject.io/docs/secrets/generic/index.html
This will normalise the results to be full secret paths.
Will return only secrets that in the are located in the folder hierarchy directly below the given folder.
Use isFolder to check if whether each result is a secret or a subfolder.
The order of the results is unspecified.
To recursively retrieve all of the secrets use vaultListRecursive
isFolder :: VaultSecretPath -> Bool Source #
vaultListRecursive :: VaultConnection -> VaultSecretPath -> IO [VaultSecretPath] Source #
Recursively calls vaultList to retrieve all of the secrets in a folder
(including all subfolders and sub-subfolders, etc...)
There will be no folders in the result.
The order of the results is unspecified.