freckle-app

Haskell application toolkit used at Freckle.


CHANGELOG | LICENSE

Changes

Unreleased

v1.1.0.0

  • Require MonadLoggerIO in makePostgresPool (and so respect that logging context from DB activities).

    Previous behavior can be recovered by using runNoLoggingT makePostgresPool.

  • Re-implement FronRow.App.Env via external library, envparse

    Some conversions will be required:

    • Reader a should now be Reader Error a

    • Parser a should now be Parser Error a

    • parse should now be parse id

    • var x X nonEmpty should now be var (x <=< nonempty) X mempty

      Note that (str <=< nonempty) is redundant.

    • var (f <$> g) X m should now be f <$> var g X m

      Note that def will now need a value the same type as g, not f.

    • switch and flag no longer accept def (the non-active value is an implicit default; the previous behavior was kind of surprising and ambiguous).

    • handleEither has been removed. Users will have to parse a complete value and then further validate/throw externally.

    • Previously, we always behaved as if keep was applied. Add that explicitly if you need that behavior.

v1.0.4.0

  • Add Freckle.App.Bugsnag for Bugsnag logging in applications.
  • Increased default PG poolsize to 10.

v1.0.3.0

  • Add Freckle.App.Memcache for using memcached in Apps
  • Add Freckle.App.Scientist for using scientist in Apps

v1.0.2.10

  • Support GHC 9.0 and 9.2

  • Change Wai function arguments for producing RouteName and TraceId to tags

    To maintain the same behavior, replace

    makeLoggingMiddleware app getRouteName getTraceId ...
    

    With

    makeLoggingMiddleware app getTags ...
      where
        getTags req = catMaybes
          [ ("route", ) <$> getRouteName req
          , ("trace_id", ) <$> getTraceId req
          ]
    

    And similar for makeRequestMetricsMiddleware.

v1.0.2.9

  • Add some common textual encoding functions to prelude

v1.0.2.8

  • Don’t allow aeson-2.0

v1.0.2.7

  • Remove explicit --region in IAM DB token call
  • Relax lower-bounds throughout

v1.0.2.6

  • Add a looser lower-bound on containers

v1.0.2.5

  • Add a looser lower-bound on bytestring
  • Add a looser lower-bound on template-haskell

v1.0.2.4

  • Add a looser lower-bound on base

v1.0.2.3

  • Add Freckle-specific prelude.

v1.0.2.2

  • Target hspec-junit-formatter-1.0.3.0 (use 1.1.0.0 in development)

v1.0.2.1

  • Add denyFrameEmbeddingMiddleware for denying HTML frame embedding.

v1.0.2.0

  • Add ‘Freckle.App.Yesod.Route’ to allow printing route names.

v1.0.1.0

  • Added Freckle.App.Datadog.Gauge for client side stateful gauges.
  • Added Freckle.App.Datadog.Rts for sending RTS statistics to DataDog.

v1.0.0.4

  • Support seconds or milliseconds in PGSTATEMENTTIMEOUT

    NOTE: We consider this a non-breaking change because the environment variable interface is backwards-compatible. By normal Haskell rules, it would be major since it’s changing the type of something exported.

  • Add respondQueryCanceled Yesod Middlewares

  • Add makeRequestMetricsMiddleware

v1.0.0.3

  • Add package.yaml to extra-source-files.

v1.0.0.2

  • Extract tests that require git into a new suite.

v1.0.0.1

  • Ensure release GitHub Action completes properly.

v1.0.0.0

First tagged release.