smith-client: API client for <https://smith.st/ Smith>.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

This is an API client library for interacting with Smith.


[Skip to Readme]

Properties

Versions 0.0.1, 0.0.1
Change log ChangeLog.md
Dependencies aeson (>=1.0 && <1.5), base (>=4.10 && <5), bytestring (<1), directory (>=1 && <2), filepath (>=1 && <2), http-client (>=0.5 && <0.6), http-client-tls (>=0.2 && <0.4), http-types (<1), jose (>=0.7 && <0.8), oauth2-jwt-bearer (>=0.0 && <0.1), text (>=1 && <2), transformers (>=0.4 && <0.6), transformers-bifunctors (<1) [details]
License BSD-3-Clause
Copyright (c) 2019, HotelKilo
Author Mark Hibberd
Maintainer mth@smith.st
Category Security
Home page https://github.com/smith-security/smith-client
Bug tracker https://github.com/smith-security/smith-client/issues
Source repo head: git clone git@github.com:smith-security/smith-client.git
Uploaded by MarkHibberd at 2019-02-08T08:29:05Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for smith-client-0.0.1

[back to package description]

smith-client

This is a client-library for the Smith API.

The goal is to provide a convenient Haskell API for working with the API.

Configuration

The default 'configure' function will source credentials configuration as follows:

The default 'configure' function will source endpoint configuration as follows:

Stability

This library is new, and should have the disclaimers that normally comes with that. It is expected that most people will interact with smith-cli rather than directly with this library, however if you do use this library directly, please note that whilst compatibility won't be broken unless necessary there are a few parts of the library (for example error handling) that will be evolved and polished as an official release version of the API is available.

Example

A crude example:

import qualified Data.Text.IO as Text

import qualified Smith.Client as Smith
import           Smith.Client.Data.User
import           Smith.Client.Error (SmithError (..))

example :: IO (Either SmithError UserInfo)
example =
  Smith.configure >>= \c -> case c of
    Left err ->
       Text.putStrLn . Smith.renderSmithConfigureError $ err
    Right smith ->
      Smith.runRequest smith Smith.userinfo

Development

The simplest way to develop this library is working against the Pact stub server (depends on docker).

# Configures and starts a docker container with API stubs.
/bin/ghci-stub