↑ ↓ to navigate
↵ to select
esc to close
v0.13.5 Enhancement Breaking Change

v0.13.5 - Identity constraints for assets, fields, values and paths

Asset paths, blueprint field handles, stored values and content paths are now unique at the database level, and collections_save no longer shares one blueprint between collections.

Breaking Changes

This release contains breaking changes. Please review the migration guide below before upgrading.

Changes

  • Assets: (path, filename) is unique per account, enforced by the database. Uploads from imports and background jobs are no longer rejected because a different account holds the same filename.
  • Blueprint fields: handles are unique within a blueprint, and every field must have a handle and a registered type.
  • One stored value per field per entry, enforced by the database.
  • Content paths: one URL per account and one path per entry. An entry whose new path would collide with an existing one keeps its previous URL and logs the clash.
  • collections_save: naming a blueprint_handles entry that another collection already owns is now refused and reported in missing with the owning collection, instead of silently sharing the schema between collections.
  • collections_delete, navigations_delete and globals_delete leave a blueprint another owner still claims in place and return the retained handles in the response, rather than failing with an internal error.
  • Custom domains: a platform surface (app, api, auth under a platform apex) or another account's subdomain can no longer be claimed as a custom domain.

Migration Guide

collections_save with a blueprint_handles entry owned by another collection now returns the handle in missing. To reuse a schema, create a copy under a new handle with blueprints_save and attach that instead.