let Schema = -- | define a configuration schema. { Type = { Host : Text , Port : Natural , AppName : Text , LiveMode : Bool , DevelMode : Bool , Session : { CookieName : Text , CookieAuthSecret : Text , CookieEncrSecret : Text } , Logger : { JSON : Bool, Fmt : Optional Text } , InitialAdminPassword : Text , Registration : { Allowed : Bool } } , default = -- | have sane defaults. { Host = "" , Port = 3000 , AppName = "pcmt" , LiveMode = False , DevelMode = False , Session = { CookieName = "pcmt_session" , CookieAuthSecret = "" , CookieEncrSecret = "" } , Logger = { JSON = True, Fmt = None Text } , InitialAdminPassword = -- | used for the first admin, forced change on first login. "50ce50fd0e4f5894d74c4caecb450b00c594681d9397de98ffc0c76af5cff5953eb795f7" , Registration.Allowed = True } } in Schema