Apostrophe 4.9.0: lightning-fast Vite builds, ESM support and more great enhancements #4790
BoDonkey
announced in
Release Notes
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Namaste, Apostrophe Universe!
As jack-o'-lanterns light up porches and Diwali's festival of lights begins, we're illuminating the path forward with our latest ApostropheCMS release. This update brings some treats (no tricks!), including a bright new Vite and ESM integration, enhanced schema capabilities, and improved breakpoint previews.
While we've highlighted our continued translation expansions in recent releases, this update shines particularly bright with its numerous accessibility improvements and bug fixes. Let's dive into what's new!
ApostropheCMS.4.9.0_.Vite.ESM.support.dynamic.schema.choices.breakpoint.preview.enhancements.mp4
Vite Build System: Development at the Speed of Light! 🚀
Get ready for a revolutionary upgrade to your development workflow! Our new Vite integration brings blazing-fast Hot Module Replacement to ApostropheCMS. Watch your UI changes appear instantly, say goodbye to full page reloads, and enjoy build times that will make you wonder how you ever lived without it. Available now in beta, Vite is set to become our default bundler - join us in building the future of ApostropheCMS development!
ESM Support: Welcome to Modern JavaScript! 🎉
The future of JavaScript has arrived in ApostropheCMS with full ESM support! Harness the power of native JavaScript modules for cleaner code, smarter bundling, and seamless integration with modern tools and frameworks. Combined with Vite's HMR capabilities, you'll experience development nirvana: crystal-clear module dependencies, instant updates, and the pure joy of working with cutting-edge JavaScript. The modern ApostropheCMS developer experience you've been asking for is here!
Dynamic Field Dependencies: Enhanced Schema Options
Create smarter interfaces where field options adapt naturally to your content structure as it changes. Now your schema field
choices
can be dynamically updated based on other field values, enabling more sophisticated and responsive content models. As always we support dynamic choices for checkboxes, radio buttons, and select fields.Breakpoint Preview Menu: Expanded Device Testing
The breakpoint preview feature introduced last release gets even better with a new dropdown menu interface. Now you can configure and switch between a wider range of device sizes, making it easier than ever to test your responsive designs across multiple screen formats. This enhancement gives you more flexibility in previewing how your content appears across various devices without cluttering your interface.
Enhanced Hosting: Headless CMS + Modern Frontend
We now offer managed hosting for ApostropheCMS in any configuration, from basic single-site Apostrophe projects through larger multisite projects with Assembly and all the way to headless Apostrophe paired with an Astro frontend. Astro integration offers all the familiar ApostropheCMS features - in-context editing, admin UI, and content management tools - while leveraging modern web architecture for enhanced performance. Come check out our hosting options!
A note about Node.js versions
Congratulations to Node.js 22.x, which is now the newest LTS (Long-Term Support) release of Node.js. ApostropheCMS fully supports Node.js 22.x, as well as the other active LTS releases, 18.x and 20.x.
Please do not use Node.js 22.7.0, which had a bug causing issues with certain Apostrophe features. Use Node.js 22.10.0 (as of this writing) if you wish to use the Node 22.x series.
A note on updating your Apostrophe packages
For best results, when you want to update an Apostrophe package, make sure you update them all together for full compatibility. Remember,
npm update
gets you the latest and greatest right in your project!Apostrophe 4.9.0
Adds
app.js
,modules/each-module/index.js
, etc., andtype
must be set tomodule
inpackage.json
.select
andcheckboxes
fields that implement dynamic choices can now take into account the value of other fields on the fly, by specifying afollowing
property with an array of other field names. Array and object subfields can access properties of the parent documentby adding a
<
prefix (or more than one) to field names infollowing
to look upwards a level. Your custom method on the server side will now receive afollowing
object as an additional argument. One limitation: for now, a field with dynamic choices cannot depend on another field with dynamic choices in this way.data-apos-focus-priority
attribute that prioritizes them inside the focusable elements list.data-apos-focus-priority
appears or the max retry threshold is reached.before: "module-name"
property in their configuration to initialize them before another module, bypassing the normal order implied bydefaults.js
andapp.js
.shortcut
property to display breakpoints out of the dropdown.isActive
state to context menu items. Also adds possibility to add icons to context menu items.vh
andvw
values on breakpoint preview mode.@apostrophecms/asset
module to enable bundling via external build modules such as the new@apostrophecms/vite
npm module.@apostrophecms/asset:reset
to reset the asset build cache and all build artifacts.apos.asset.devServerUrl()
nunjucks helper to get the (bundle) dev server URL when available.Changes
@import
. The Sass team has stated there will be a two-year transition period before the feature is actually removed. The use of@import
is common practice in the Apostrophe codebase and in many project codebases. We will arrange for an orderly migration to the new@use
directive before Sass 3.x appears.mergeConfiguration
,autodetectBundles
,lintModules
,nestedModuleSubdirs
andtestDir
are now async to accommodate our new ESM support.express.getSessionOptions
is now async to accommodate our new ESM support.Fixes
AposAreaMenu.vue
component to set thedisabled
attribute totrue
if the max number of widgets have been added in an area withexpanded: true
.pnpm: true
option inapp.js
is no longer breaking the application.vue-template-compiler
dependency.@apostrophecms/global
doc and more generally all singletons.isEqual
method ofarea
field type to avoid comparing an area having temporary properties with one having none.withRelationships
and dot notation in combination with a projection, this projection is updated to add the id storage fields of the needed relationships.sendPage
call and there is no current "in context" page or piece.[data-apos-refreshable]
.Apostrophe modules
@apostrophecms/anchors
v1.0.1This Anchors module adds a wrapping element with an anchor linking target around all widgets. Developers may customize or opt-out individual widget types.
Adds
@apostrophecms/form
1.4.2Allow ApostropheCMS editors to build their own forms. They can then place any form in one or more content areas across the website.
Adds
@apostrophecms/import-export
2.4.2This module enables import and export of pages and pieces, with or without related documents such as files, images and other related types.
Adds
@apostrophecms/i18n-static
1.1.1This module makes it possible to edit the translations of static text strings found in templates through the ApostropheCMS admin UI.
Adds
@apostrophecms/login-totp
1.3.1This login verification module adds a TOTP (Time-based One-Time Password) check when any user logs into the site, compatible with Google Authenticator or any TOTP app.
When activated, it will ask unregistered users to add a token to their app through a QR code. Once done, it will ask users to enter the code provided by their app after the initial login step.
Adds
@apostrophecms/passport-bridge
1.3.0apostrophe-passport
works together withpassport-google-oauth20
,passport-gitlab2
and similar passport strategy modules to let users log in to Apostrophe CMS sites via Google, Gitlab and other identity providers. This feature is often called federation or single sign-on.Changes
self.apos.root.import
instead ofself.apos.root.require
.enablePassportStrategies
is now async.@apostrophecms/seo
1.3.0Add useful meta fields to all pages and pieces.
Adds
robots.txt
"file" to the site through the global configuration.@apostrophecms/svg-sprite
1.0.2This module provides an Apostrophe piece type that manages and renders SVG sprites. Sprites can be imported from files in a website codebase or an external source via a URL.
Adds
@apostrophecms/vite
1.0.0-beta.1This extension provides Vite integration for ApostropheCMS projects, enabling module bundling and hot module replacement (HMR) during development.
Pro modules
@apostrophecms-pro/advanced-permission
3.0.4This module provides more granular control over content permission. It allows the creation of custom groups with proscribed abilities and the ability to assign users to as few or as many groups as desired. Users and groups can also be assigned per-document and per-locale permissions allowing for fine control of who can edit and publish any document. Dive into our extension documentation to learn how this extension can contribute to your project. Explore our documentation to discover how this extension can enhance your project. Then, effortlessly integrate it through our new Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Adds
Changes
stylelint-config-apostrophe
and fix warnings in order to prevent havingmixed-decls
warnings from Sass.@apostrophecms-pro/basics
1.5.1This module adds a range of basic widgets and their configurations to
@apostrophecms-pro/multisite
. Explore our documentation to discover how this extension can enhance your project. Then, effortlessly integrate it through our new Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.Adds
@apostrophecms-pro/data-set
2.0.2This module provides an easy avenue for low-code data presentation. It creates a data-set piece for the import of comma-separated values (CSV) files. A separate widget allows for the dynamic selection of columns, and display of the data as an HTML table, or in other templates provided by the developer. Contact us or visit our pricing page to learn more.
Adds
@apostrophecms-pro/doc-template-library
2.2.2This module solves the "blank page problem" for developers and product managers, and makes it faster for editors to create content. doc-template-library allows for the configuration of default widgets and pre-populated content on piece or page templates, and to re-use existing layouts. Explore our documentation to discover how this extension can enhance your project. Then, effortlessly integrate it through our new Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Adds
@apostrophecms-pro/multisite
4.3.0This module lets you have many ApostropheCMS websites running on a single codebase in a single Node.js process. Each has its own database, users, media uploads, etc. Sites can be created and managed via a dashboard site. Explore our documentation to discover how this extension can enhance your project. For further details or inquiries, feel free to contact us or visit our pricing page.
Adds
Changes
root
,rootDir
,npmRootDir
andgetNpmPath
from apostrophe instance.@apostrophecms-pro/multisite-dashboard
1.4.0This extension creates the new default multisite dashboard with infinite scroll, search functionality, and the ability to save templates. This extension requires that the project also have the
@apostrophecms-pro/multisite
extension installed and configured. Explore our documentation to discover how this extension can enhance your project. For further details or inquiries, feel free to contact us or visit our pricing page.Changes
getNpmPath
implementation with the one provided by the apostrophe instance.Fixes
@apostrophecms-pro/palette
4.3.2An in-context interface for changing CSS.
@apostrophecms-pro/palette
is a module that provides an in-context interface for changing the values of developer-set CSS properties. The values are stored in an Apostrophe piece singleton (like @apostrophecms/global) and applied to the site whenever the stylesheet link is included in a template. Adjusting values via the palette interface renders changes to the site instantly. Explore our documentation to discover how this extension can enhance your project. Then, effortlessly integrate it through our new Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.Adds
@apostrophecms-pro/seo-assistant
1.1.1The SEO Assistant module generates SEO page metadata automatically through the use of AI. It comes configured for use with the OpenAI models. It is also possible to configure your own providers, see related section. This extension requires that the project also have the
@apostrophecms-pro/automatic-translation
andapostrophecms/seo
extensions installed. Explore our documentation to discover how this extension can enhance your project. Then, effortlessly integrate it through our new Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.Adds
@apostrophecms-pro/signup
2.0.2A seamless solution that empowers users to easily create accounts on your website. Users can sign up in a few simple steps, complete with email verification and pre-determined user role and access level. Explore our documentation to discover how this extension can enhance your project. Then, effortlessly integrate it through our new Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Adds
Legacy modules
apostrophe-saml
3.0.0apostrophe-saml provides single sign-on with identity providers based on SAML or Shibboleth. Shibboleth is very common in academic environments and is built on top of SAML, which is common in corporate environments.
Changes
This module is still for Apostrophe 2.x. The major version change reflects potentially incompatible changes below:
Upgrade dependencies to @node-saml/passport-saml 5.x, which is actively supported. That version and the version of node-saml it depends on have some changes in their default behavior, therefore the major version change.
Properties of the passportSamlOptions option now override even if the default configuration contains those properties, as otherwise the option is of limited usefulness. This is a another reason for the major version change.
apostrophe-secure-attachments
2.1.0 (2024-10-15)apostrophe-secure-attachments
allows you to limit access to certain uploaded files, such as PDFs, to website users who have specifically been given permission to view those files.Adds
uploadfs
storage backend that has been modernized with astreamOut
implementation. This allows the module to be used in a scaled application with multiple servers. Not compatible withAPOS_UPLOADFS_ASSETS=1
.Utilities
@apostrophecms/apostrophe-astro
1.0.9 (2024-10-23)This module integrates ApostropheCMS into your Astro application.
Changes
Connection: Upgrade
header from breaking Astro'sfetch
calls to Apostrophe when hosted in an environment that permits websocket upgrades of existing connections.uploadfs
1.24.1 (2024-10-15)uploadfs
copies files to a web-accessible location and provides a consistent way to get the URLs that correspond to those files. uploadfs can also resize, crop and autorotate uploaded images. uploadfs includes S3-based, Azure-based, GCS-based and local filesystem-based backends and you may supply others.Fixes
streamOut
. If an HTTP error status code is encountered, the stream will emit an error, and the error object will have astatusCode
property, allowing downstream code to handle this situation appropriately.1.24.0 (2024-10-15)
Fixes
bucketObjectsACL
is respected by theenable
method, that method no longer makes filespublic
again. Previously it was only respected atcopyIn
/copyImageIn
time.disabledBucketObjectsACL
is now also supported, it is used by thedisable
method rather thanassuming
private
(still the default).1.23.0 (2024-10-14)
Adds
streamOut
API forlocal
ands3
storage backends.Beta Was this translation helpful? Give feedback.
All reactions