packages feed

secretspec-0.13.0: secretspec.cabal

cabal-version:      2.4
name:               secretspec
version:            0.13.0
synopsis:           Haskell SDK for SecretSpec, a declarative secrets manager
description:
  A thin client over the @secretspec-ffi@ C ABI (linked at build time).
  Resolution (providers, chains, profiles, generation, @as_path@) happens in the
  Rust core; this package marshals a JSON request to the native library and
  parses the response, mirroring the Rust derive crate's vocabulary.
homepage:           https://secretspec.dev/
license:            Apache-2.0
license-file:       LICENSE
author:             Domen Kožar
maintainer:         domen@enlambda.com
category:           Configuration
build-type:         Simple

library
  exposed-modules:    SecretSpec
  hs-source-dirs:     src
  build-depends:      base       >=4.14 && <5
                    , aeson      >=2.0  && <3
                    , bytestring <1
                    , containers <1
                    , directory  <2
                    , text       <3
  -- The native resolver, statically linked at build time. Point --extra-lib-dirs
  -- at a directory containing ONLY libsecretspec_ffi.a (so -lsecretspec_ffi
  -- resolves to the archive, not a co-located .so), and pass the archive's
  -- transitive native deps via --ghc-options=-optl<lib> (capture them with
  -- `cargo rustc -p secretspec-ffi --crate-type staticlib -- --print native-static-libs`).
  -- The Rust code is embedded in the binary, so no LD_LIBRARY_PATH is needed.
  extra-libraries:    secretspec_ffi
  default-language:   Haskell2010
  ghc-options:        -Wall

test-suite secretspec-test
  type:               exitcode-stdio-1.0
  main-is:            Main.hs
  hs-source-dirs:     test
  build-depends:      base
                    , secretspec
                    , aeson      >=2.0
                    , bytestring
                    , containers
                    , directory
                    , filepath
                    , process
                    , text
  default-language:   Haskell2010
  ghc-options:        -Wall -threaded