Releases: oxidizing/sihl
Releases · oxidizing/sihl
1.0.0-rc3
Fixed
- It is now possible to register multiple instances of the same service type simultaneously
1.0.0-rc2
1.0.0-rc2
1.0.0-rc1
1.0.0-rc1
0.6.0-rc1
Added
- Add CLI generators as built-in CLI commands
gen.service
(for generating CRUD services),gen.view
(for generating CRUD views) andgen.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
andSihl.Database.collect
- The
search
function of the user service fromsihl-user
takes an optional argumentoffset
. This allows you to implement offset based pagination.
Changed
- Replace the usaged of
Lwt.Syntax
withlwt_ppx
for nicer error messages in your Sihl apps - Rework built-in commands (
start
is nowserver
, commands are namespaced with.
) - The command function in
Sihl.Command.make
returnsunit option Lwt.t
and Sihl takes care of printing the usage ifLwt.return None
is returned - Replaced
Sihl.Database.prepare_requests
withSihl.Database.prepare_search_request
- Replaced
Sihl.Database.run_request
withSihl.Database.run_search_request
- Make search query type
'a Sihl.Database.prepared_search_query
abstract to reduce API clutter. The search queries are highly specific to the implementation and are not likely to be re-used independently fromrun_search_request
. - Change
query
to fully fledgedsearch
inSihl.Rest.SERVICE
to support paginated, filtered and sorted views
0.5.0
Added
Sihl.Web.Rest
provides helpers to quickly create HTML resources. This is useful to expose any service of typeSihl.Web.Rest.SERVICE
through the Internet by making it part of a web app.
0.4.1
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
Changed
- Get rid of
Sihl.Web.Middleware.htmx
,Sihl.Web.Htmx
can be used directly now Sihl.Web.Csrf.find
returnsstring option
, useOption.get
if you are sure that the CSRF middleware has been applied- Take custom
unauthenticated_handler
forSihl.Web.Middleware.bearer_token
and enforce existence ofBearer
token inAuthorization
header - Web helpers moved from
Sihl.Web.Http
toSihl.Web
. InSihl.Web.Http
there is only the Opium based HTTP service. - Replace middlewares with helpers where they don't have to be middlewares such as bearer token (
Sihl.Web.Request.bearer_token
), htmx (Sihl.Web.Htmx
) and session (Sihl.Web.Session
) - Remove
form
middleware (Sihl.Web.Middleware.form
), useSihl.Web.Request
directly to parse form requests - Replace
Sihl.Web.Flash.find_custom
withSihl.Web.Flash.find
andSihl.Web.Flash.set_custom
withSihl.Web.Fash.set
to support key-value based semantics. If you need to store your custom string, simply store it under a key likeSihl.Web.Flash.set [("custom", value)] resp
and retrieve it withSihl.Web.Flash.find "custom" request
- Use
conformist
0.4.0
Added
- Read
Request-ID-X
header if present instead of generating a random id forSihl.Web.Id
- Implement composable router API
Sihl.Web.{get, post, ...}
andSihl.Web.choose
. - Implement job queue dashboard for
sihl-queue
0.3.0
Fixed
- Replace functor based approach with service facade pattern based approach to increase ergonomy
- Move
user_token
middleware tosihl-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.3.0-rc2
0.3.0-rc2
0.3.0-rc1
CHANGES:
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