Releasing modules on stage at JSNation, What I learned using Postman Collections, Pairing ChatGPT with Platformatic, and other Adventures in Nodeland
Hi Folks,
A lot happened in the last few weeks! This edition of Adventures in Nodeland includes three talks I delivered in the latest spring 2023 season, the recordings of two live streams, many releases, two articles I have authored, and many interesting articles I've read that I have found very useful.
Talks
In this talk that Luca Maraschi and I delivered last June at JSNation, we explore the story of backend APIs and the good and bad of every generation of technologies. We also launched a few new things, doing a live release on stage! Watch the end of the video; you can't miss it. It starts at 20:48: portal.gitnation.org/contents/apis-are-evolving-again.
At JSNation, I also delivered my "I would never use an ORM" talk, which might be its last outing. Check out the latest recording at: portal.gitnation.org/contents/i-would-never-use-an-orm.
How would you build a backend in 2023? Let me demo to you how you could do that with Platformatic: youtu.be/5wG2fy0Xe0A. It's pretty amazing!
Live Streams
In the 19th of June live stream, we integrated GitHub authentication with Fastify and Platformatic via the @fastify/oauth2 module. We also talked about the new fastify.dev website and many other things! Watch it at youtu.be/Qtw_BTTqCjU
In the 22nd of June live stream, we explored how to use the new Platformatic fetch client: youtu.be/yFAGI0IZ-BY.
Platformatic Improvements
Last week I shipped Platformatic v0.29.0, which packs several improvements:
- it adds support for compiling TypeScript for production;
- it makes the Platformatic Client runtime aware;
- it allows for customization of the composed APIs;
- it adds to Platformatic DB the capability to generate custom SQL and connection strings generator for MySQL, MariaDB, and PostgreSQL.
Read the full release notes on the Platformatic Blog.
Releases
- @fastify/aws-lambda v3.3.0 introduces the
retainState
option. - fastify-undici-dispatcher v0.4.2 uses
res.rawPayload
instead ofres.body
. - @fastify/error v3.3.0 reduces the overhead of creating an
Error
by 20%. - @fastify/jwt v7.1.0 adds the ability to only verify tokens and not sign them. v7.2.0 uncoditionally decorates the server with
jwtDecode
. - pino-std-serializers v6.2.2 adds params and query to ts definition.
- @fastify/helment v11.0.0 bumps helmet to v7.0.0.
- @fastify/swagger-ui v1.9.1 updates swagger-ui to v5.1.0. v1.9.2 fixes a problem with Jest.
- clinic v13.0.0 drops support for Node.js v14.
- @fastify/view v8.0.0 bumps Eta support to v3.0.0.
- fastify v4.19.0 adds the ability to narrow the types based on status code, adds "hot fix" to a memory leak in Node.js core, and many other fixes. v4.19.1 is a hot fix for a typescript regression. v4.19.2 fixes a few regression on types and
close
. - @fastify/oauth2 v7.2.0 This release fixes CVE-2023-31999 GHSA-g8x5-p9qc-cf95, it changes the default behavior to store the OAuth2
state
in a cookie with thehttp-only
andsame-site=lax
attributes set; the state is now by default generated for every user; note that this contains a breaking change in thecheckStateFunction
function, which now accepts the fullRequest
object. v7.2.1 fixes the inevitable regression. - @fastify/session v10.3.1 make isModified return false when manually persisting the session. v10.4.0 makes sure to set cookie on manual session saves.
- @fastify/response-validation v2.4.0 allows developers to pass in ajv instance.
- @fastify/swagger v8.7.0 adds
route
,openapi
andswagger
objects totransform
. v8.8.0 adds atransformObject
hook. - @matteo.collina/sqlite-pool v0.2.0 ships with better-sqlite3 v8 and supports Node.js v20. [v0.3.0])https://github.com/mcollina/sqlite-pool/releases/tag/v0.3.0) changes the API to use a named export and adds an onQuery option to log queries.
Articles
- How to Create a Postman Collection From Your Platformatic API
- Use ChatGPT and Platformatic to Build Your API in No Time
- The massive bug at the heart of the npm ecosystem
- Why I enjoy PostgreSQL - Infrastructure Engineer's Perspective
- Interview with Matteo Collina - Packt Partnerships
- Setting Expectations for the Node.js Test Runner
- Avoid Fastify's reply.raw and reply.hijack Despite Being A Powerful HTTP Streams Tool
- HTML is all you need to make a website - Salma Alam-Naylor
- LiteFS Cloud: Distributed SQLite with Managed Backups
- Privilege Escalation Inside Your CI/CD Pipeline
- An Introduction to Command Injection Vulnerabilities in Node.js and JavaScript