package sihl-facade

  1. Overview
  2. Docs
Sihl service facade that uses the facade pattern to hide service implementations

Install

Dune Dependency

Authors

Maintainers

Sources

sihl-0.3.0-rc1.tbz
sha256=ebfeaa62fe4498e6de03d7e6577e10c143d6148a10a6a47b98e032f3dcc70ddc
sha512=e1d80894a4a5a2d99036f6dc0fbd60686a105509fb5b743d5dfa70f4ce76a2ffeac6419bcc1b0da56a631f592497262551a44ec4a004c81809bc08d156008061

CHANGES.md.html

[0.3.0] - 2021-01-08

Fixed

  • Replace functor based approach with service facade pattern based approach to increase ergonomy

Added

  • Implement MariaDB and PostgreSql backends for all services except storage service

  • JSON Web Token backend for the token service

  • Default middlewares for server side rendered forms and JSON API

[0.2.2] - 2020-12-17

Fixed

  • Merge form data and urlencoded form parsing and provide them in one middleware

[0.2.1] - 2020-12-09

Fixed

  • Two subsequent POST request works now with the CSRF middleware

[0.2] - 2020-12-07

Fixed

  • Extract sihl-core, sihl-type, sihl-contract, sihl-user, sihl-persistence and sihl-web as separate opam packages

  • Increase session key size to 20 bytes

  • Sign session cookies with SIHL_SECRET

  • Simplify session service API

  • Implement generic flash storage on top of session storage and replace the specific message service

  • Update to httpaf-based Opium 0.19.0

Added

  • File log reporter to store logs in logs/error.log and logs/app.log

  • Add log source to log text

[0.1.10] - 2020-11-18

Fixed

  • Properly load .env files based on project root, can be set using ENV_FILES_PATH

  • Add custom error types for user actions to allow overriding errors displayed to users

Added

  • Determine project rood using markers such as the .git folder

[0.1.9] - 2020-11-16

Fixed

  • Get rid of Core.Ctx.t

  • Make sure migrations and repo cleaners are registered when registering service

  • Sihl.Core.* modules are now accessible directly under Sihl.*

[0.1.8] - 2020-11-12

Fixed

  • Get rid of Result.get_ok because it swallows errors

[0.1.7] - 2020-11-03

Fixed

  • Simplify Database.Service API: Only provide transaction, query and fetch_pool

  • Fixe dune package names, private dune packages don't have generic names like http or database causing conflicts in a Sihl app

[0.1.6] - 2020-10-31

Fixed

  • Database.Service and Repository.Service are assumed to have just one implementation, so they are referenced directly in service implementations instead of passing them as functor arguments

  • Extract Random.Service from utils as standalone top level service

  • Merge utils into one utils.ml file

HTTP API
  • Sihl.Http.Response and Sihl.Http.Request have consistent API

  • Sihl.Middleware contains all provided middlewares

  • Implement multi-part form data parsing

[0.1.5] - 2020-10-14

Fixed

  • Remove seed service since the same functionality

  • Simplify app abstraction, instead of with_ use service APIs directly

  • Extract storage service as sihl-storage opam package

  • Extract email service as sihl-email opam package

  • Extract queue service as sihl-queue opam package

  • Move configuration and logging into core, neither of the are implemented as services

  • Replace pcre with re as regex library to get rid of a system dependency on pcre

  • Split up Sihl.Data into Sihl.Migration, Sihl.Repository and Sihl.Database

  • Move module signatures from Foo.Service.Sig to Foo.Sig, the services might live in a third party opam package, but the signatures are staying in sihl

  • Move Sihl.App to Sihl.Core.App and simplify app API

  • Move log service, config service and cmd service into core (they don't have to be provided to other services through functors)

  • Simplify Sihl app creation and service configuration

[0.1.4] - 2020-09-24

Fixed

  • Remove reason and tyxml-jsx as dependency as they are not used anymore

Added

  • Various combinators for Sihl.Seed.t including constructor and field accessors

[0.1.3] - 2020-09-14

Added

  • Seed Service with commands seedlist and seedrun <name>

Fixed

  • Lifecycle API: A service now has two additional functions start and stop, which are used in the lifecycle definition

  • Database service query functions query, atomic and with_connection can now be nested

[0.1.2] - 2020-09-09

Fixed

  • Re-export Sihl.Queue.Job.t

  • Export content types under Sihl.Web

[0.1.1] - 2020-09-07

Fixed

  • Don't raise exception when user login fails if it is a user error

  • Remove dev tools as dev dependencies

Added

  • Storage service can remove files

  • Move README.md documentation to ocamldoc based documentation

[0.1.0] - 2020-09-03

Fixed

  • DB connection leaks caused deadlocks

  • Provide all service dependencies using functors

  • Move Opium & Cohttp specific stuff into the web server service implementation to allow for swappable implementation based on something like httpaf

  • Inject log service to all other services by default

Added

  • Support letters 0.2.0 for SMTP emailing

  • Switch to exception based service API

  • HTTP Response API to respond with file Sihl.Web.Res.file

[0.0.56] - 2020-08-17

Fixed

  • Stop running integration tests during OPAM release

[0.0.55] - 2020-08-17

Added

  • Initial release of Sihl