Skip to content

Commit

Permalink
Adjust changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
joseferben committed Nov 29, 2022
1 parent f025329 commit 25a4752
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,71 @@
## [3.0.5] - 2022-11-24

### Updated

- Make id generating function for id middleware configurable
- Make `password` of Sihl_user.t `[@opaque]`

## [3.0.4] - 2022-08-23

### Updated

- Make SMTP credentials optional

## [3.0.3] - 2022-04-01

### Updated

- Update SQL queries to use caqti infix notation

## [3.0.2] - 2022-02-28

### Added

- Expos all log sources

## [3.0.1] - 2021-11-23

### Fixed

- Fixed a bug in the CSRF middleware where the current session cookie was overriden with an empty session
- Fixed an issue where `Sihl.Database.Migration.execute_steps` ignored the provided database pool in `?ctx` and instead creating its own pool

## [3.0.0] - 2021-11-16

### Fixed

- CSRF tokens are now valid per session, not per request. This allows the user to open a form, use various parts of the website in another tab and then come back to the form and submit it.

### Changed

- Enforce OCaml 4.12.0, which doesn't allow named arguments after optional arguments

### Added

- Provide optional `?id` parameter whenever an entity is created, to override the generated it

## [2.0.1] - 2021-10-22

### Added

- Expose service context on `user_from_session`

## [2.0.0] - 2021-10-04

### Changed

- Added the concept of a service context `ctx` which can be used for configuration that is valid for one function call only.

## [1.0.1] - 2021-09-17

### Added

- Support `multipart/form-data` in CSRF middleware

## [1.0.0] - 2021-09-08

### Fixed

- It is now possible to register multiple instances of the same service type simultaneously
- Rename page title of queue dashboard
- Document `EMAIL_BYPASS_INTERCEPT` and `QUEUE_FORCE_ASYNC`
Expand All @@ -52,25 +75,31 @@
- Fix trailing slash middleware to work with `PREFIX_PATH`

### Changed

- The `search_query` for `Sihl.Database.prepare_search_request` has to return the total amount of rows for that query without limit. On PostgreSQL and MariaDB this can be done with `COUNT(*) OVER() as total`. No `count_query`is needed anymore.

#### User service

- Add optional `given_name` and `name`
- Deprecate `update_details` in favor of `update`
- Consistent use of named arguments in service API

### Added

- Optional argument `format_filter` for formatting the search keyword when filtering in `Sihl.Database.prepare_search_request`

## [0.6.0] - 2021-04-30

### Added

- Add CLI generators as built-in CLI commands `gen.service` (for generating CRUD services), `gen.view` (for generating CRUD views) and `gen.html` (for generating CRUD RESTful resources)
- `Sihl.Web.Rest.{query, to_query_string, of_query_string, next_page, previous_page, last_page, first_page, query_filter, query_sort, query_limit, query_offset}`
- Add ParcelJS based asset pipeline to template project in `template`
- Database helpers to conveniently run exactly one caqti request `Sihl.Database.find`, `Sihl.Database.find_opt`, `Sihl.Database.exec` and `Sihl.Database.collect`
- The `search` function of the user service from `sihl-user` takes an optional argument `offset`. This allows you to implement offset based pagination.

### Changed

- Replace the usaged of `Lwt.Syntax` with `lwt_ppx` for nicer error messages in your Sihl apps
- Rework built-in commands (`start` is now `server`, commands are namespaced with `.`)
- The command function in `Sihl.Command.make` returns `unit option Lwt.t` and Sihl takes care of printing the usage if `Lwt.return None` is returned
Expand All @@ -80,15 +109,21 @@
- Change `query` to fully fledged `search` in `Sihl.Rest.SERVICE` to support paginated, filtered and sorted views

## [0.5.0] - 2021-04-10

### Added

- `Sihl.Web.Rest` provides helpers to quickly create HTML resources. This is useful to expose any service of type `Sihl.Web.Rest.SERVICE` through the Internet by making it part of a web app.

## [0.4.1] - 2021-03-31

### Fixed

- Register timezone removal migration in `sihl-queue`. This makes it easy to change the timezone on the server without breaking applications.

## [0.4.0] - 2021-03-27

### Changed

- Get rid of `Sihl.Web.Middleware.htmx`, `Sihl.Web.Htmx` can be used directly now
- `Sihl.Web.Csrf.find` returns `string option`, use `Option.get` if you are sure that the CSRF middleware has been applied
- Take custom `unauthenticated_handler` for `Sihl.Web.Middleware.bearer_token` and enforce existence of `Bearer` token in `Authorization` header
Expand All @@ -99,30 +134,40 @@
- Use `conformist` 0.4.0

### Added

- Read `Request-ID-X` header if present instead of generating a random id for`Sihl.Web.Id`
- Implement composable router API `Sihl.Web.{get, post, ...}` and `Sihl.Web.choose`.
- Implement job queue dashboard for `sihl-queue`

## [0.3.0] - 2021-03-12

### Fixed

- Replace functor based approach with service facade pattern based approach to increase ergonomy
- Move `user_token` middleware to `sihl-token` package

### 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`
Expand All @@ -131,44 +176,60 @@
- 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
Expand All @@ -183,50 +244,68 @@
- 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

0 comments on commit 25a4752

Please # to comment.