v0.19.0 #1450
mpscholten
started this conversation in
General
v0.19.0
#1450
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
A new IHP release, containing bug fixes and productivity improvements to existing features 🛠️
IHP is a modern batteries-included haskell web framework, built on top of Haskell and Nix. Blazing fast, secure, easy to refactor and the best developer experience with everything you need - from prototype to production.
Major Changes
💻 Apple M1 Support:
This release finally adds support for Apple M1 devices. So we all can get new macbooks now 🎉
🔄 Major DataSync Improvements:
We've implemented a lot of improvements to IHP DataSync:
withTransaction
:🚀 We've also launched Thin Backend, which is IHP DataSync as a Service If you're into Frontend Development, give it a try!
🕶️ Dark Mode:
We've redesigned the dev tools and finally added Dark Mode to IHP:
There's also a couple of nice improvements in the UI in general, e.g. you can now add columns such as
created_at
orupdated_at
with a single click:In the Data Editor you can now hover over IDs to show the referenced database record in a card:
🎨 Redesigned Migration Workflow:
Migrations can now be managed much better from the dev tools. E.g. you can see all migrations, see what has been run already and also manually run migrations here that haven't been executed yet:
🗳️ Filebase Integration
You can now use Filebase as an alternative to S3 for storing files with IHP Storage:
Learn more in the Docs.
🔨 Custom Middlewares:
IHP provides an "escape-hatch" from the framework with the
CustomMiddleware
option.This can be used to run any WAI middleware after IHP's middleware stack, allowing for possibilities
such as embedding a Servant or Yesod app into an IHP app, adding GZIP compression, or any other
number of possibilities. See wai-extra for examples
of WAI middleware that could be added.
The following example sets up a custom middleware that infers the real IP using
X-Forwarded-For
and adds a custom header for every request.
Other Changes
useQuerySingleResult
withRLS
to wrap database operations inside a RLS context. This added an overhead of several additional database queries. Now we pack allSET ..
statements right into the query string itself, so it's send to postgres inside a single operation.where('field', null')
needs to add a SQL condition likeWHERE field IS NULL
instead ofWHERE field = NULL
[UUID]
in AutoRoute(
and)
.ensureIsUser
for the full applicationFull Changelog: v0.18.0...v0.19.0
Feature Voting
Help decide what's coming next to IHP by using the Feature Voting!
Updating
→ See the UPGRADE.md for upgrade instructions.
If you have any problems with updating, let us know on the IHP forum.
📧 To stay in the loop, subscribe to the IHP release emails (right at the bottom of the page). Or follow digitally induced on twitter.
This discussion was created from the release v0.19.0.
Beta Was this translation helpful? Give feedback.
All reactions