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