MIT licensed
Maintained by Freckle Education
This version can be pinned in stack with:freckle-app-1.3.0.0@sha256:ba9eec0906806db8ffd8c48fb6608181e79a9116edd43446377894355d40f658,6999
Module documentation for 1.3.0.0
Depends on 58 packages
(full list with versions ) :
aeson ,
base ,
Blammo ,
bugsnag ,
bytestring ,
case-insensitive ,
conduit ,
containers ,
datadog ,
dlist ,
doctest ,
ekg-core ,
envparse ,
errors ,
exceptions ,
filepath ,
Glob ,
hashable ,
hspec ,
hspec-core ,
hspec-expectations-lifted ,
hspec-junit-formatter ,
http-client ,
http-conduit ,
http-link-header ,
http-types ,
immortal ,
lens ,
load-env ,
memcache ,
monad-control ,
monad-logger ,
MonadRandom ,
mtl ,
network-uri ,
persistent ,
persistent-postgresql ,
postgresql-simple ,
primitive ,
resource-pool ,
and many more
Adjust Freckle.App.Test interface
Remove runAppTest
Add appExample for making a expectation concretely AppExample
Add expectationFailure, and pending(With) helpers in MonadIO
Env.kept compatibility with envparse-0.5
Use Env.kept with parsing that occurs in makePostgresPool
This ensure all PG variables are kept in the environment after parsing, to
again match pre-v1.1 behavior.
If you would prefer not to keep these variables, parse them yourself (e.g.
with envParseDatabaseConf) and use makePostgresPoolWith.
Add Freckle.App.Env.kept to re-define a Parser so that all variables are
kept after reading. Not doing this can break tests if you are re-parsing the
environment for each example.
Replace Env.parse f with Env.parse f $ Env.kept to recover how this module
behaved prior to v1.1.
Remove Freckle.App.Logging, integrate with blammo instead.
This will require the following end-user changes:
Remove HasLogging instance and add HasLogger
This will require storing a Logger on your runtime App type, instead of
a LogLevel (et al) in your static AppSettings type. (Or move to
runSimpleLoggingT.)
Replace WAI middleware with Blammo integration
Replace Yesod functions with [Blammo integration][blammo-yesod]
And changes to environment variable values:
If using LOG_OUTPUT=std(out|err), use LOG_DESTINATION=std(out|err) (note
that stdout is the default)
If using LOG_OUTPUT=file, use [email protected] (yes, that’s
this option did)
If using LOG_FORMAT=terminal, use LOG_FORMAT=tty (note that this is the
defualt)
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.
Add Freckle.App.Bugsnag for Bugsnag logging in applications.
Increased default PG poolsize to 10.
Add Freckle.App.Memcache for using memcached in Apps
Add Freckle.App.Scientist for using scientist in Apps
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.
Add some common textual encoding functions to prelude
Remove explicit --region in IAM DB token call
Relax lower-bounds throughout
Add a looser lower-bound on containers
Add a looser lower-bound on bytestring
Add a looser lower-bound on template-haskell
Add a looser lower-bound on base
Add Freckle-specific prelude.
Target hspec-junit-formatter-1.0.3.0 (use 1.1.0.0 in development)
Add denyFrameEmbeddingMiddleware for denying HTML frame embedding.
Add ‘Freckle.App.Yesod.Route’ to allow printing route names.
Added Freckle.App.Datadog.Gauge for client side stateful gauges.
Added Freckle.App.Datadog.Rts for sending RTS statistics to DataDog.
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
Add package.yaml to extra-source-files.
Extract tests that require git into a new suite.
Ensure release GitHub Action completes properly.
First tagged release.
Stackage is a service provided by the
Haskell Foundation
│ Originally developed by
FP Complete