Apostrophe2 v3.17.0 Release Notes

Release Date: 2022-03-31 // about 2 years ago
  • โž• Adds

    • ๐Ÿ“„ Full support for the object field type, which works just like array but stores just one sub-object as a property, rather than an array of objects.
    • ๐Ÿ’ป To help find documents that reference related ones via relationship fields, implement backlinks of related documents by adding a relatedReverseIds field to them and keeping it up to date. There is no UI based on this feature yet but it will permit various useful features in the near future.
    • โž• Adds possibility for modules to extend the webpack configuration.
    • โž• Adds possibility for modules to add extra frontend bundles for scss and js. This is useful when the ui/src build would otherwise be very large due to code used on rarely accessed pages.
    • Loads the right bundles on the right pages depending on the page template and the loaded widgets. Logged-in users have all the bundles on every page, because they might introduce widgets at any time.
    • ๐Ÿ›  Fixes deprecation warnings displayed after running npm install, for dependencies that are directly included by this package.
    • ๐Ÿ“š Implement custom ETags emission when etags cache option is enabled. See the documentation for more information.
      โšก๏ธ It allows caching of pages and pieces, using a cache invalidation mechanism that takes into account related (and reverse related) document updates, thanks to backlinks mentioned above.
      Note that for now, only single pages and pieces benefit from the ETags caching system (pages' and pieces' getOne REST API route, and regular served pages).
      The cache of an index page corresponding to the type of a piece that was just saved will automatically be invalidated. However, please consider that it won't be effective when a related piece is saved, therefore the cache will automatically be invalidated after the cache lifetime set in maxAge cache option.

    ๐Ÿ›  Fixes

    • ๐Ÿ— Apostrophe's webpack build now works properly when developing code that imports module-specific npm dependencies from ui/src or ui/apos when using npm link to develop the module in question.
    • The es5: true option to @apostrophecms/asset works again.