340 KiB
2.11.2 (2024-02-23)
Features
Bug Fixes
- Add Context Provider in EditMany Component (#5005) (70e57fe)
- db-mongodb: unique sparse for not required fields (#5114) (815bdfa)
- db-postgres: set _parentID for array nested localized fields (#5117) (ceca5c4)
- disabling API Key does not remove the key (#5145) (7a7f0ed)
- handle thrown errors in config-level afterError hook (#5147) (32ed95e)
- only replace the drawer content with full edit component if it exists (#5144) (0a07f60)
- transaction error from access endpoint (#5156) (ad42d54)
2.11.1 (2024-02-16)
Features
- db-postgres: adds idType to use uuid or serial id columns (#3864) (d6c2578)
- db-postgres: reconnect after disconnection from database (#5086) (bf942fd)
- plugin-search: add req to beforeSync args for transactions (#5068) (98b87e2)
- richtext-lexical: add justify aligment to AlignFeature (#4035) (#4868) (6d6823c)
- richtext-lexical: AddBlock handle for all nodes, even if they aren't empty paragraphs (#5063) (00fc034)
- richtext-lexical: Update lexical from 0.12.6 to 0.13.1, port over all useful changes from playground (#5066) (0d18822)
Bug Fixes
- db-mongodb: find versions pagination (#5091) (5d4022f)
- db-postgres: query using blockType (#5044) (35c2a08)
- filterOptions errors cause transaction to abort (#5079) (5f3d016)
- plugin-form-builder: hooks do not respect transactions (#5069) (82e9d31)
- remove collection findByID caching (#5034) (1ac943e)
- richtext-lexical: do not remove adjacent paragraph node when inserting certain nodes in empty editor (#5061) (6323965)
- uploads: account for serverURL when retrieving external file (#5102) (25cee8b)
⚠ BREAKING CHANGES: @payloadcms/richtext-lexical
- richtext-lexical: Update lexical from 0.12.6 to 0.13.1, port over all useful changes from playground (#5066)
- You HAVE to make sure that any versions of the lexical packages (IF you have any installed) match the lexical version which richtext-lexical uses: v0.13.1. If you do not do this, you may be plagued by React useContext / "cannot find active editor state" errors
- Updates to lexical's API, e.g. the removal of INTERNAL_isPointSelection, could be breaking depending on your code. Please consult the lexical changelog.
2.11.0 (2024-02-09)
Features
2.10.1 (2024-02-09)
Bug Fixes
- clearable cells handle null values (#5038) (f6d7da7)
- db-mongodb: handle null values with exists (#5037) (cdc4cb9)
- db-postgres: handle nested docs with drafts (#5012) (da184d4)
- ensures docs with the same id are shown in relationship field select (#4859) (e1813fb)
- query relationships by explicit id field (#5022) (a0a58e7)
- richtext-lexical: make editor reactive to initialValue changes (#5010) (2315781)
2.10.0 (2024-02-06)
Features
- add more options to addFieldStatePromise so that it can be used for field flattening (#4799) (8725d41)
- extend transactions to cover after and beforeOperation hooks (#4960) (1e8a6b7)
- previousValue and previousSiblingDoc args added to beforeChange field hooks (#4958) (5d934ba)
- re-use existing logger instance passed to payload.init (#3124) (471d211)
- richtext-lexical: Blocks: generate type definitions for blocks fields (#4529) (90d7ee3)
- use deletion success message from server if provided (#4966) (e3c8105)
Bug Fixes
- db-postgres: filtering relationships with drafts enabled (#4998) (c3a3942)
- db-postgres: handle schema changes with supabase (#4968) (5d3659d)
- db-postgres: indexes not created for non unique field names (#4967) (64f705c)
- db-postgres: indexes not creating for relationships, arrays, hasmany and blocks (#4976) (47106d5)
- db-postgres: localized field sort count (#4997) (f3876c2)
- ensures docPermissions fallback to collection permissions on create (#4969) (afa2b94)
- migrations: safely create migration file when no name passed (#4995) (0740d50)
- plugin-seo: tabbedUI with email field causes duplicate field (#4944) (db22cbd)
2.9.0 (2024-01-26)
Features
Bug Fixes
- afterLogin hook write conflicts (#4904) (3eb681e)
- db-postgres: migrate down error (#4861) (dfba522)
- db-postgres: query unset relation (#4862) (8ce15c8)
- migrate down missing filter for latest batch (#4860) (b99d24f)
- plugin-cloud-storage: slow get file performance large collections (#4927) (f73d503)
- remove No Options dropdown from hasMany fields (#4899) (e5a7907)
- upload input drawer does not show draft versions (#4903) (6930c4e)
2.8.2 (2024-01-16)
Features
- db-postgres: support drizzle logging config (#4809) (371353f)
- plugin-form-builder: add validation for form ID when creating a submission (#4730)
- plugin-seo: add support for interfaceName and fieldOverrides (#4695)
Bug Fixes
- db-mongodb: mongodb versions creating duplicates (#4825) (a861311)
- db-mongodb: transactionOptions=false typeErrors (82383a5)
- db-postgres: Remove duplicate keys from response (#4747) (eb9e771)
- db-postgres: validateExistingBlockIsIdentical with arrays (3b88adc)
- db-postgres: validateExistingBlockIsIdentical with other tables (0647c87)
- plugin-seo: fix missing spread operator in URL generator function (#4723)
- removes max-width from field-types class & correctly sets it on uploads (#4829) (ee5390a)
2.8.1 (2024-01-12)
Bug Fixes
2.8.0 (2024-01-12)
Features
- allow custom config properties in blocks (#4766) (d92af29)
- logger: show local time (#4663) (493fde5)
- plugin-cloud: use resend smtp instead of custom transport (#4746) (5cfde54)
- plugin-seo: add fr translations (#4774) (4319fe1)
- plugin-seo: remove support for payload <2.7.0 (#4765) (5e08368)
Bug Fixes
- allow a custom ID field to be nested inside unnamed tabs and rows (#4701) (6d5ac1d)
- build payload without initializing (#4028) (1115387)
- db-mongodb: limit=0 returns unpaginated (63e5c43)
- db-postgres: totalPages value when limit=0 (5702b83)
- migration regression (#4777) (fa3b3dd)
- db-mongodb: migration regression (#4777) (fa3b3dd)
- **db-postgres:**migration regression (#4777) (fa3b3dd)
- passes
draft=truein fetch for relationships (#4784) (0a259d2) - plugin-form-builder: replaces curly brackets with lexical editor (#4753) (8481846)
- prioritizes
valuekey when filtering / querying for relationships (#4727) (d0f7677) - text hasMany validation (#4789) (e2e56a4)
⚠ BREAKING CHANGES
@payloadcms/plugin-seo
- remove support for payload <2.7.0 (#4765)
2.7.0 (2024-01-09)
Features
- db-mongodb: improve transaction support by passing req to migrations (682eca2)
- db-postgres: improve transaction support by passing req to migrations (555d027)
- hasMany property for text fields (#4605) (f43cf18)
- improve transaction support by passing req to migrations (1d14d9f)
- plugin-seo: add i18n (#4665) (3027a03)
- provide document info to ActionsProvider (#4696) (6a8a6e4)
Bug Fixes
- adds objectID validation to isValidID if of type
text(#4689) (d419275) - allow json field to be saved empty and reflect value changes (#4687) (0fb3a9c)
- custom ids in versions (#4680) (5d15955)
- custom overrides of breadcrumb and parent fields (7db58b4)
- db-mongodb: migration error calling beginTransaction with transactionOptions false (21b9453)
- db-mongodb: querying plan for collections ignoring indexes (#4655) (63bc4ca)
- db-postgres: incorrect results querying json field using exists operator (9d9ac0e)
- db-postgres: migrate down only runs latest batch size (6acfae8)
- db-postgres: query on json properties (ec4d2f9)
- db-postgres: validation prevents group fields in blocks (#4699) (cab6bab)
- non-boolean condition result causes infinite looping (#4579) (a3e7816)
- plugin-form-builder: slate serializer should replace curly braces in links (#4703) (28a3012)
- plugin-nested-docs: breadcrumbsFieldSlug used in resaveSelfAfterCreate hook (a5a91c0)
- plugin-nested-docs: children wrongly publishing draft data (#4692) (5539942)
- plugin-nested-docs: custom parent field slug (635e7c2)
- plugin-nested-docs: parent filterOptions errors when specifying breadcrumbsFieldSlug (c4a4678)
- prevents row overflow (#4704) (9828772)
- relations with number based ids (postgres) show untitled ID: x (1b91408)
- sidebar fields not disabled by access permissions (#4682) (85e38b7)
- unlock user condition always passes due to seconds conversion (#4610) (d543665)
2.6.0 (2024-01-03)
Features
Bug Fixes
- "The punycode module is deprecated" warning by updating nodemailer (00d8480)
- adjusts json field joi schema to allow editorOptions (bff4cf5)
- db-postgres: Wait for transaction to complete on commit (#4582) (a71d37b)
- detect language from request headers accept-language (#4656) (69a9944)
- graphql multiple locales (98890ee)
- navigation locks when modal is closed with esc (#4664) (be3beab)
- req.locale and req.fallbackLocale get reassigned in local operations (aa048d5)
- resets actions array when navigating out of view with actions (#4585) (5c55231)
- richtext-lexical: z-index issues (#4570) (8015e99)
- tab field error when using the same interface name (#4657) (f1fa374)
2.5.0 (2023-12-19)
Features
- add Chinese Traditional translation (#4372) (50253f6)
- add context to auth and globals local API (#4449) (168d629)
- adds new
actionsproperty to admin customization (#4468) (9e8f14a) - async live preview urls (#4339) (5f17324)
- pass path to FieldDescription (#4364) (3b8a27d)
- plugin-form-builder: Lexical support (#4487) (c6c5cab)
- prevent querying relationship when filterOptions returns false (#4392) (c1bd338)
- richtext-lexical: improve floating select menu Dropdown classNames (#4444) (9331204)
- richtext-lexical: improve link URL validation (#4442) (9babf68)
- richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290) (5de347f)
- richtext-lexical: Link & Relationship Feature: field-level configurable allowed relationships (#4182) (7af8f29)
- richtext-lexical: link node: change doc data format to be consistent with relationship field (#4504) (cc0ba89)
- richtext-lexical: rename TreeviewFeature into TreeViewFeature (#4520) (c49fd66)
- richtext-lexical: Slate to Lexical converter: add blockquote conversion, convert custom link fields (#4486) (31f8f3c)
- richtext-lexical: Upload html serializer: Output picture element if the image has multiple sizes, improve absolute URL creation (e558894)
Bug Fixes
- adds bg color for year/month select options in datepicker (#4508) (07371b9)
- correctly fetches externally stored files when passing uploadEdits (#4505) (228d45c)
- cursor jumping around inside json field (#4453) (6300037)
- db-mongodb: documentDB unique constraint throws incorrect error (#4513) (05e8914)
- db-postgres: findOne correctly querying with where queries (#4550) (8bc31cd)
- db-postgres: querying nested blocks fields (#4404) (6e9ae65)
- db-postgres: sorting on a not-configured field throws error (#4382) (dbaecda)
- defaultValues computed on new globals (#4380) (b6cffce)
- disallow duplicate fieldNames to be used on the same level in the config (#4381) (a1d66b8)
- ensure ui fields do not make it into gql schemas (#4457) (3a20ddc)
- format fields within tab for list controls (#4516) (2650c70)
- formats locales with multiple labels for versions locale selector (#4495) (8257661)
- graphql schema generation for fields without queryable subfields (#4463) (13e3e06)
- handles null upload field values (#4397) (cf9a370)
- live-preview: populates rte uploads and relationships (#4379) (4090aeb)
- live-preview: sends raw js objects through window.postMessage instead of json (#4354) (03a3872)
- make admin navigation transition smoother (#4217) (eb6572e)
- omit field default value if read access returns false (#4518) (3e9ef84)
- pin ts-node versions which are causing swc errors (#4447) (b9c0248)
- properly spreads collection fields into non-tabbed configs #50 (#51) (7e88159)
- plugin-form-builder: removes use of slate in rich-text serializer (#4451) (3df52a8)
- plugin-nested-docs: properly exports field utilities (#4462) (1cc87bd)
- richtext-*: loosen RichTextAdapter types due to re-occuring ts strict mode errors (#4416) (48f1299)
- richtext-lexical: Blocks field: should not prompt for unsaved changes due to value comparison between null and non-existent props (#4450) (548e78c)
- richtext-lexical: do not add unnecessary paragraph before upload, relationship and blocks nodes (#4441) (5c2739e)
- richtext-lexical: lexicalHTML field not working when used inside of Blocks field (128f9c4)
- richtext-lexical: lexicalHTML field now works when used inside of row fields (#4440) (0421173)
- richtext-lexical: not all types of URLs are validated correctly (ac7f980)
- searching by id sends undefined in where query param (#4464) (46e8c01)
- simplifies query validation and fixes nested relationship fields (#4391) (4b5453e)
- updates return value of empty arrays in getDataByPath (#4553) (f3748a1)
- upload editing error with plugin-cloud (#4170) (fcbe574)
- upload related issues, cropping, fetching local file, external preview image (#4461) (45c472d)
- uploads files after validation (#4218) (65adfd2)
⚠ BREAKING CHANGES
@payloadcms/richtext-lexical
If you import TreeviewFeature, you have to rename the import to use TreeViewFeature (capitalized "V")
- richtext-lexical: link node: change doc data format to be consistent with relationship field (#4504) (cc0ba89)
An unpopulated, internal link node no longer saves the doc id under fields.doc.value.id. Now, it saves it under fields.doc.value. Migration inside of payload is automatic. If you are reading from the link node inside of your frontend though, you will have to adjust it.
Dropdown component has a new mandatory sectionKey prop
- richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290) (5de347f)
-
Most important: If you are updating
@payloadcms/richtext-lexicalto v0.4.0 or higher, you will HAVE to update payload to the latest version as well. If you don't update it, payload likely won't start up due to validation errors. It's generally good practice to upgrade packages prefixed with @payloadcms/ together with payload and keep the versions in sync. -
@payloadcms/richtext-slateis not affected by this. -
Every single property in the
Featureinterface which accepts a React component now no longer accepts a React component, but a function which imports a React component instead. This is done to ensure no unnecessary client-only code is leaked to the server when importing Features on a server. Here's an example migration:
Old:
import { BlockIcon } from '../../lexical/ui/icons/Block'
...
Icon: BlockIcon,
New:
// import { BlockIcon } from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
// @ts-expect-error
import('../../lexical/ui/icons/Block').then((module) => module.BlockIcon),
Or alternatively, if you're using default exports instead of named exports:
// import BlockIcon from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
// @ts-expect-error
import('../../lexical/ui/icons/Block'),
-
The types for
SanitizedEditorConfigandEditorConfighave changed. Their respectivelexicalproperty no longer expects theLexicalEditorConfig. It now expects a function returning theLexicalEditorConfig. You will have to adjust this if you adjusted that property anywhere, e.g. when initializing the lexical field editor property, or when initializing a new headless editor. -
The following exports are now exported from the
@payloadcms/richtext-lexical/componentssubpath exports instead of@payloadcms/richtext-lexical:
ToolbarButtonToolbarDropdownRichTextCellRichTextFielddefaultEditorLexicalConfig
You will have to adjust your imports, only if you import any of those properties in your project.
@payloadcms/richtext-*
@payloadcms/richtext-lexical 0.4.1 (2023-12-07)
@payloadcms/richtext-slate 1.3.1 (2023-12-07)
Bug Fixes
- richtext-*: loosen RichTextAdapter types due to re-occuring ts strict mode errors (#4416) (48f1299)
- richtext-lexical: lexicalHTML field not working when used inside of Blocks field (128f9c4)
2.4.0 (2023-12-06)
Features
- add Chinese Traditional translation (#4372) (50253f6)
- async live preview urls (#4339) (5f17324)
- pass path to FieldDescription (#4364) (3b8a27d)
- richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290) (5de347f)
- richtext-lexical: Link & Relationship Feature: field-level configurable allowed relationships (#4182) (7af8f29)
Bug Fixes
- db-postgres: sorting on a not-configured field throws error (#4382) (dbaecda)
- defaultValues computed on new globals (#4380) (b6cffce)
- handles null upload field values (#4397) (cf9a370)
- live-preview: populates rte uploads and relationships (#4379) (4090aeb)
- live-preview: sends raw js objects through window.postMessage instead of json (#4354) (03a3872)
- simplifies query validation and fixes nested relationship fields (#4391) (4b5453e)
- upload editing error with plugin-cloud (#4170) (fcbe574)
- uploads files after validation (#4218) (65adfd2)
⚠ BREAKING CHANGES
- richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290)
⚠️ @payloadcms/richtext-lexical
Most important: If you are updating @payloadcms/richtext-lexical to v0.4.0 or higher, you will HAVE to update payload to the latest version as well. If you don't update it, payload likely won't start up due to validation errors. It's generally good practice to upgrade packages prefixed with @payloadcms/ together with payload and keep the versions in sync.
@payloadcms/richtext-slate is not affected by this.
Every single property in the Feature interface which accepts a React component now no longer accepts a React component, but a function which imports a React component instead. This is done to ensure no unnecessary client-only code is leaked to the server when importing Features on a server.
Here's an example migration:
Old:
import { BlockIcon } from '../../lexical/ui/icons/Block'
...
Icon: BlockIcon,
New:
// import { BlockIcon } from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
// @ts-expect-error
import('../../lexical/ui/icons/Block').then((module) => module.BlockIcon),
Or alternatively, if you're using default exports instead of named exports:
// import BlockIcon from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
// @ts-expect-error
import('../../lexical/ui/icons/Block'),
The types for SanitizedEditorConfig and EditorConfig have changed. Their respective lexical property no longer expects the LexicalEditorConfig. It now expects a function returning the LexicalEditorConfig. You will have to adjust this if you adjusted that property anywhere, e.g. when initializing the lexical field editor property, or when initializing a new headless editor.
The following exports are now exported from the @payloadcms/richtext-lexical/components subpath exports instead of @payloadcms/richtext-lexical:
- ToolbarButton
- ToolbarDropdown
- RichTextCell
- RichTextField
- defaultEditorLexicalConfig
You will have to adjust your imports, only if you import any of those properties in your project.
2.3.1 (2023-12-01)
Bug Fixes
- ensure doc controls are not hidden behind lexical field (#4345) (bea79fe)
- query validation on relationship fields (#4353) (fe888b5)
- richtext-lexical: blocks content may be hidden behind components outside of the editor (#4325) (3e745e9)
- richtext-lexical: Blocks node: incorrect conversion from v1 node to v2 node (ef84a2c)
2.3.0 (2023-11-30)
Features
- add serbian (latin and cyrillic) translations (#4268) (40c8909)
- db-mongodb: search for migrations dir intelligently (530c825)
- db-postgres: search for migrations dir intelligently (308979f)
- live-preview: batches api requests (#4315) (d49bb43)
- relationship sortOptions property (#4301) (224cddd)
- support migrations with js files (2122242)
- support OAuth 2.0 format Authorization: Bearer tokens in headers (c1eb9d1)
- useDocumentEvents (#4284) (9bb7a88)
Bug Fixes
- db-postgres: allow for nested block fields to be queried (#4237) (cd07873)
- db-postgres: error saving nested arrays with versions (#4302) (3514bfb)
- duplicate documents with required localized fields (#4236) (9da9b1f)
- incorrect key property in Tabs field component (#4311) (3502ce7), closes #4282
- live-preview-react: removes payload from peer deps (7e1052f)
- live-preview: compounds merge results (#4306) (381c158)
- live-preview: property resets rte nodes (#4313) (66679fb)
- live-preview: re-populates externally updated relationships (#4287) (57fc211)
- live-preview: removes payload from peer deps (b4af95f)
- properly exports useDocumentsEvents hook (#4314) (5420963)
- properly sets tabs key in fieldSchemaToJSON (#4317) (9cc88bb)
- richtext-lexical: HTML Converter field not working inside of tabs (#4293) (5bf6493)
- richtext-lexical: re-use payload population logic to fix population-related issues (#4291) (094d02c)
- richtext-slate: add use client to top of tsx files importing from payload core (#4312) (d4f28b1)
BREAKING CHANGES
⚠️ @payloadcms/richtext-lexical
The SlashMenuGroup and SlashMenuOption classes have changed. If you have any custom lexical Features which are adding new slash menu entries, this will be a breaking change for you. If not, no action is required from your side.
Here are the breaking changes and how to migrate:
- The
SlashMenuOption's first argument is now used as akeyand not as a display name. Additionally, a new, optionaldisplayNameproperty is added which will serve as the display name. Make sure yourkeydoes not contain any spaces or special characters. - The
titleproperty ofSlashMenuGrouphas been replaced by a new, mandatorykeyand an optionaldisplayNameproperty. To migrate, you will have to remove thetitleproperty and add akeyproperty instead - make sure you do not use spaces or special characters in thekey. - Additionally, if you have custom styles targeting elements inside of slash or floating-select-toolbar menus, you will have to adjust those too, as the CSS classes changed
This is an example of performing these updates
2.2.2 (2023-11-27)
Features
Bug Fixes
- number field validation (#4233) (19fcfc2)
- passes date options to the react-datepicker in filter UI, removes duplicate options from operators select (#4225) (3d2b62b)
- prevent json data getting reset when switching tabs (#4123) (1dcd3a2)
- transactions broken within doc access (443847e)
- typo in polish translations (#4234) (56a4692)
2.2.1 (2023-11-21)
Bug Fixes
2.2.0 (2023-11-20)
Features
- allow richtext adapters to control type generation, improve generated lexical types (#4036) (989c10e)
- hide publish button based on permissions (#4203) (de02490)
- richtext-lexical: Add new position: 'top' property for plugins (eed4f43)
Bug Fixes
- fully define the define property for esbuild string replacement (#4099) (e22b95b)
- i18n: polish translations (#4134) (782e118)
- improves live preview breakpoints and zoom options in dark mode (#4090) (b91711a)
- plugin-nested-docs: await populate breadcrumbs on resaveChildren (#4226) (4e41dd1)
- rename tab button classname to prevent unintentional styling (#4121) (967eff1)
- richtext-lexical: add missing 'use client' to TestRecorder feature plugin (fc26275)
- richtext-lexical: Blocks: Array row data is not removed (#4209) (0af9c4d)
- richtext-lexical: Blocks: fields without fulfilled condition are now skipped for validation (50fab90)
- richtext-lexical: Blocks: make sure fields are wrapped in a uniquely-named group, change block node data format, fix react key error (#3995) (c068a87)
- richtext-lexical: Blocks: z-index issue, e.g. select field dropdown in blocks hidden behind blocks below, or slash menu inside nested editor hidden behind blocks below (09f17f4)
- richtext-lexical: Floating Select Toolbar: Buttons and Dropdown Buttons not clickable in nested editors (615702b), closes #4025
- richtext-lexical: HTMLConverter: cannot find nested lexical fields (#4103) (a6d5f2e), closes #4034
- richtext-lexical: incorrect caret positioning when selecting second line of multi-line paragraph (#4165) (b210af4)
- richtext-lexical: make lexicalHTML() function work for globals (dbfc835)
- richtext-lexical: nested editor may lose focus when writing (#4139) (859c2f4)
- richtext-lexical: remove optional chaining after
thisas transpilers are not handling it well (#4145) (2c8d34d) - richtext-lexical: visual bug after rearranging blocks (a6b4860)
- simplifies block/array/hasMany-number field validations (#4052) (803a37e)
- synchronous transaction errors (#4164) (1510baf)
- thread locale through to access routes from admin panel (#4183) (05f3169)
- transactionID isolation for GraphQL (#4095) (195a952)
- upload fit not accounted for when editing focal point or crop (#4142) (45e9a55)
2.1.1 (2023-11-10)
Bug Fixes
- conditionally hide dot menu in DocumentControls (#4075) (cef4cbb)
- disable editing option for svg image types (#4071) (949e265)
- fixes creation of related documents within a transaction if filterOptions is used (#4087) (acad288)
- hide empty image sizes from the preview drawer (#3946) (687f485)
- live-preview: ensures field schema exists before traversing fields (#4074) (7059a71)
- live-preview: field recursion and relationship population (#4045) (2ad7340)
- live-preview: properly handles apiRoute (#4076) (1f851f2)
- plugin-nested-docs: sync write transaction errors (#4084) (47efd3b)
- possible issue with access control not using req (#4086) (348a70c)
- richtext-lexical: Blocks: unnecessary saving node value when initially opening a document & new lexical tests (#4059) (fff377a)
- richtext-lexical: floating select toolbar caret not positioned correctly if first line is selected (#4062) (c462df3)
2.1.0 (2023-11-08)
Features
- add internationalization (i18n) to locales (#4005) (6a0a859)
- Custom Error, Label, and before/after field components (#3747) (266c327)
Bug Fixes
- error on graphql multiple queries (#3985) (57da3c9)
- focal and cropping issues, adds test (#4039) (acba5e4)
- handle invalid tokens in refresh token operation (#3647) (131d89c)
- hasMany number and select fields unable to save within arrays (#4047) (182c57b)
- injects array and block ids into fieldSchemaToJSON (#4043) (d068ef7)
- parse predefined migrations via file arg or name prefix (#4001) (eb42c03)
- polymorphic hasMany relationships missing in postgres admin (#4053) (7a9af44)
- resets list filter row when the filter on field is changed (#3956) (8d14c21)
- Update API Views (b008b6c)
- vite not replacing env vars correctly when building (67b3baa)
2.0.15 (2023-11-03)
Bug Fixes
- autosave updating data in unrelated docs (b722f20)
- better error handling within parseCookies (#3720) (6b1b4ff)
- block row removal w/ db-postgres adapter (#3951) (5ea88bb)
- deeply merges view configs (#3954) (a5b2333)
- do not display field if read permission is false - admin panel ui (#3949) (cdc10be)
- ensures dataloader does not run requests in parallel (4607dbf)
- exclude files from dev bundle if aliased (#3957) (7966692)
- field paths being mutated if they ended with the req.locale (#3936) (36576f1)
- findVersions pagination (#3906) (1f8f173)
- global autosave and relevant e2e test (a9d96b1)
- i18n: polish translations (#3934) (e4881bb)
- passes correct data to buildStateFromSchema on account page (#3984) (c7a315a)
- prevent sort from saving a new version in version list view (#3944) (900a9ea)
- properly load temp files into buffer (#3996) (d1a0822)
- sort document tabs by order (#3968) (06cd52b)
- vertical alignment in step nav when using larger logos (#3955) (b6d9a20)
2.0.14 (2023-10-30)
Bug Fixes
- adds null to non-required field unions (#3870) (7e919aa)
- checks for user before accessing properties in preferences update operation(#3844) (24eab3a)
- db-mongodb: improve find query performance (#3836) (56e58e9), closes #3904
- db-mongodb: versions pagination (#3875) (4f2b080)
- disable webpack hot reload on production (#3891) (422c803)
- duplicate document copying to incorrect locale (#3874) (89f273b)
- enables nested AND/OR queries (#3834) (237eebd)
- ensure serverURL has string value for getBaseUploadFields function (#3900) (c564a83)
- ensures compare-version select field cannot be cleared (#3901) (42d8d11)
- error handling when duplicating documents fails (#3873) (435eb62)
- generate new block ids on create (#3871) (3404bab)
- global permissions for live preview (#3854) (3032e0b)
- handles null & undefined relationship field values in versions view (#3609) (115e592)
- incorrect duplication of data in admin ui (#3907) (46fc41c)
- only apply focal manipulation when necessary (#3902) (a4f36aa)
- graphql query errors transaction race condition (#3795) (dc13b10)
- removes conditional return of formattedEmails in sendEmail hook #26 (#28) (e8458f8)
- resize image if no aspect ratio change (#3859) (f53b713)
- richtext-*: type issues with typescript strict mode enabled (dac9514)
- richtext-lexical: Blocks node incorrectly marked as client module (35f00fa)
- richtext-lexical: remove unnecessary dependencies (fixes #3889) (760565f)
- set date to 12UTC for default, dayOnly and monthOnly fields (#3887) (d393225)
- store resized image on req or tempFilePath (#3883) (6c5d525)
- unique field error handling (#3888) (4d8d4c2)
2.0.13 (2023-10-24)
Bug Fixes
- adjusts props to accept components for before and after fields instead of functions (#3820) (c476d01)
- alignment of collapsible within row (#3822) (eaef0e7)
- named tabs not appearing in the gql mutation input type (#3835) (a0019d0)
- only parses live preview ready message when same origin (#3791) (e8f2377)
- prevent storing duplicate user preferences (#3833) (7eee0ec)
- prevents document sidebar from collapsing (71a3e5b)
- renders live preview for globals (#3801) (a13ec2e)
- reverting localized versions (#3831) (5a0d0db)
2.0.12 (2023-10-23)
Features
- collection, global and field props for hooks, fix request context initialization, add context to global hooks (#3780)
- richtext-lexical: HTML Serializer (#3685)
Bug Fixes
- remove duplicate removal of temp upload file (#3818)
- simplify how the search input and query params are connected (#3797)
- standardizes layout of document fields (#3798)
- issue where dragging unsortable item would crash the page (#3789)
- richtext-lexical: defaultValue property didn't fit into field schema (b5c7bbed9)
- richtext-*: hasMany relationships not populated correctly (e197e0316)
2.0.11 (2023-10-19)
Features
- add ability to opt out of type gen declare statement (#3765)
Bug Fixes
-
corrects versions collection casing (#3739)
-
updates req after file resize (#3754)
-
correctly renders focal point when crop is set to false (#3759)
-
account for many slug types in generate types (#3698)
-
handle graphQL: false on globals when building policy type (#3729)
-
renders id as fallback title in DeleteDocument (#3745)
-
properly handles hideAPIURL (#3721)
-
filesRequiredOnCreate typing, tests, linting (#3737)
-
webpack-bundler: corrects payload alias (#3769)
-
bundler-webpack: better node_modules resolution (#3744)
-
db-postgres: block and array inserts error (#3714)
-
live-preview: properly handles uploads and hasOne monomorphic relationships (#3719)
2.0.10 (2023-10-17)
Features
Bug Fixes
2.0.8 (2023-10-17)
Features
Bug Fixes
- autosave time shown minutes only (#3492) (e311e8f)
- blocks within groups in postgres (45a62ba)
- bug with seeding ecommerce (993568a)
- corrects add block index (#3681) (3c50443)
- misc upload crop/focal point updates (#3580) (d616772)
- renders mobile document controls (#3695) (1625ff2)
- some local operations missing req.transactionID (#3651) (150799e)
- richtext-*: extra fields not being iterated correctly (#3693) (b8a5866)
- richtext-*: link drawer form receiving incorrect field schema (#3696) (cb39354)
- richtext-lexical: #3682 isolated editor container causing z-index issues (24918fe)
- templates: user access control (#3712) (8b8ceab)
2.0.6 (2023-10-14)
Bug Fixes
- document sidebar vertical overflow (#3639) (fcd4c8d)
- login form clearing out and field spacing (#3633) (4bd01df)
- sidebar field permissions (#3629) (c956a85)
- preview button conditions (#3613) (beed83b)
- allows drafts to be duplicated (1a99d66)
2.0.5 (2023-10-12)
Bug Fixes
- properly renders custom buttons for globals (#3616) (05cc287)
- minor type issue in richText validate function (06a51b3)
- live preview device size (#3606) (8bbac60)
- properly handles nested routes for live preview (#3586) (6486468)
- various stepnav related issues (#3599) (aaf8839)
- database adapter types (cc56da1)
- postgres select fields within groups (#3570) (06e2fa9)
- #3511, documents don't delete their versions (#3520) (e3c7765)
Documentation
2.0.4 (2023-10-12)
Bug Fixes
- API tab breadcrumbs and results indentation (#3564) (e0afeec)
- sticky sidebar (#3563) (76e306d)
- sidebar width when fields have long descriptions (#3562) (cfc78ed)
- row field margins (#3558) (6d9353b)
- removes nested array field configs from array value (#3549) (af892ec)
- #3521 (eb97acd)
- #3540 (2567ac5)
- row field width (#3550) (9ff014b)
- #3541 (e6f0d35)
- renders global label as page title (#3532) (ace3e57)
- increases document controls popup list button hitbox (#3529) (f009593)
Documentation
2.0.3 (2023-10-09)
Bug Fixes
- webpack export default was not found #3494 (be049ce)
- postgres generated type id #3504 (c90d1fa)
- hasMany relationships unable to be cleared #3513 (5d9384f)
Documentation
- move payload script mention to top of migrations (26967fb92)
- payload script in package.json (2f86c196e)
- updates required node version (70e068b18)
- improves custom views (#3499) (6c17222a6)
2.0.2 (2023-10-09)
Bug Fixes
- beforeOperation hooks now correctly only run once (e5d6a75)
2.0.1 (2023-10-09)
Bug Fixes
- fix: richtext adapter types (#3497) (7679e3f0a)
Documentation
- remove --save flag for install command (f7c35df6d)
- updates live preview docs (ca97f692c)
- fixes label for rich text overview (7df1256bf)
2.0.0 (2023-10-09)
Features
- New database adapter pattern
- Official Postgres adapter released, built on Drizzle ORM
- Database transactions added
- Full, first-party migration support added
- The admin UI has been redesigned to be more extensible and offer more horizontal real estate
- Admin UI sidebar is now collapsible
- Live preview added to admin UI, including usable frontend hooks
- New "Views" API added, which allows for custom sub-views on List and Edit views within Admin UI
- New bundler adapter pattern released
- Official Vite bundler released
- Offical Lexical rich text adapter released
- Lexical rich text editor now supports drag and drop of rich text elements
- Lexical rich text now supports Payload blocks directly within rich text editor
- Upload image cropping added
- Upload "focal point" controls added
- New "API" view added to Edit view(s), allowing for quick and customizable references to API response
- MongoDB draft querying has been significantly improved and is now much faster
- Arabic / RTL UI support added
- Locales can now be further configured to accept settings like
rtl, human-friendly labels, etc. - The
tsconfigpathpointing to your generated Payload types is no longer required for types to work
BREAKING CHANGES
⚠️ You now need to provide your Payload config with a database, a bundler, and a rich text adapter
Here's an example of a barebones Payload config, set up to work as 1.0 did:
import { mongooseAdapter } from '@payloadcms/db-mongodb'
import { slateEditor } from '@payloadcms/richtext-slate'
import { webpackBundler } from '@payloadcms/bundler-webpack'
import { buildConfig } from 'payload/config'
export default buildConfig({
admin: {
bundler: webpackBundler(),
},
editor: slateEditor({}),
collections: [
// your collections here
],
db: mongooseAdapter({
url: process.env.DATABASE_URI,
}),
})
These new properties are all now required for Payload to function, and you will have to install each separate adapter that you use. Feel free to swap out any of the adapters with your choice (Lexical, Postgres, Vite, etc.)
Make sure to install the packages that you need. In the above example, you would need to install the following:
npm install --save @payloadcms/db-mongodb @payloadcms/richtext-slate @payloadcms/bundler-webpack
⚠️ Draft versions now require a latest: true property to be set on the most recent draft in your _versions collections(s)
We have a ready-to-go migration script for your versions from v1 to v2, and to use it, all you have to do is run the following commands:
1. First, make sure you have a payload npm script in your package.json
{
"scripts": {
"payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload"
}
}
Adjust the PAYLOAD_CONFIG_PATH to point to your Payload config file if necessary.
2. Create a migration, using the new Payload migration API
npm run payload migrate:create --file @payloadcms/db-mongodb/versions-v1-v2
The above command will output a migration file into your ./src/migrations folder (default migrations location). It contains a migration script to automatically add a latest: true flag to each of your newest drafts, for all draft-enabled collections. It works out of the box!
3. Run migrations
From there, you need to run migrations. Run the following command to execute your new migration:
npm run payload migrate
And you'll be all good!
⚠️ Array and block field validations now accept the full array of field data as their validation argument instead of the value.length
This change should only affect you if you have a custom array / block validation defined.
⚠️ For MongoDB, all models have been moved from the Payload object to the database adapter
For example, if you are leveraging Mongoose models directly, in 1.0, you would have accessed them via payload.collections[myCollectionSlug].Model. Now, you can access the Mongoose model from payload.db.collections[myCollectionSlug].
Version models can be accessed from payload.db.versions[myEntitySlug], and the global model can be accessed via payload.db.globals.
⚠️ User preferences data shape has changed, and you will lose preferences unless you manually migrate them to the new shape
We don't have a migration ready to go yet for user preferences, and this typically wouldn't be a big deal for most Payload projects. So don't let it stop you from updating unless you have a serious amount of user preferences that you'd like to keep. If so, we'll come up with a migration script for you and hook you up. Just reach out to us on Discord to ask for this.
⚠️ Node 16 is now the minimum required node version and Node 14 is no longer supported
Pretty self-explanatory on this one. Node 14 is old.
⚠️ The Pino logger has been updated, which may require you to make changes to your Pino config if you have a custom one
If you don't have anything custom with the Pino logger, this does not apply to you.
⚠️ Transactions are now enabled by default if your database supports them
MongoDB requires a replica set for transactions to work, so they likely are not going to work for you unless you do indeed have a replica set configured. But if you do, transactions will now instantly work for all internal Payload operations.
This means that in some fringe cases, if you are creating a doc and then instantly trying to update it within an afterChange hook, the newly created doc may not truly exist yet. This should not cause any problems for 99% of projects, but if you think this applies to you, might be good to double-check through your code.
To avoid any issues, you can pass the req.transactionID through to your Local API calls, so that your Local API calls are included as part of the parent transaction.
⚠️ Locales now have more functionality, and in some places, you might need to update custom code
Payload's locales have become more powerful and now allow you to customize more aspects per locale such as a human-friendly label and if the locale is RTL or not.
This means that certain functions now return a different shape, such as useLocale. This hook used to return a string of the locale code you are currently editing, but it now returns an object with type of Locale.
⚠️ Admin panel CSS classes may have changed
The revisions we've made in 2.0 required changes to both HTML and CSS within the admin panel. For this reason, if you were loading custom CSS into the admin panel to customize the look and feel, your stylesheets may need to be updated. If your CSS is targeting elements on the page using HTML selectors or class names, you may need to update these selectors based on the current markup. It may also be necessary to update your style definitions if the core Payload component you are targeting has undergone significant change.
In many cases, our classnames and structure have remained the same, but technically, this could be a breaking change.
⚠️ Custom admin views API has changed
These changes only affect apps that are using custom views via the admin.components.routes config.
The type AdminRoute was renamed to AdminViewConfig. Simply update your instances with this new type and it will continue to work as expected. The properties of this type have not changed.
The admin.components.routes config has been merged with admin.components.views. Simply move your custom views to the views object. The properties of the config have not changed. Here is an example:
Previous:
admin: {
components: {
routes: [
{
Component: MyCustomView,
path: '/custom-view',
},
]
}
}
Current:
admin: {
components: {
views: {
MyCustomView: {
Component: MyCustomView,
path: '/custom-view'
}
}]
}
}
⚠️ Rich text admin properties have moved
If you have customized the Slate rich text editor via admin.elements or admin.leaves properties, you now need to add your customizations to a slateEditor({ admin: {} }) property. The signatures are all the same, but you might have to move some properties around.
Previous:
const myRichTextField: Field = {
name: 'content',
type: 'richText',
admin: {
elements: [
'h1',
'link',
// etc
],
},
}
Current:
import { slateEditor } from '@payloadcms/richtext-slate'
const myRichTextField: Field = {
name: 'content',
type: 'richText',
editor: slateEditor({
// Move the admin property as shown below
admin: {
elements: [
'h1',
'link',
// etc
],
},
}),
}
⚠️ MongoDB connection options have been removed from payload.init
To pass connection options for MongoDB, you now need to pass them to db: mongooseAdapter({}) instead of passing them to payload.init().
⚠️ Some types have changed locations
If you are importing types from Payload, some of their locations may have changed. An example would be Slate-specific types being no longer exported from Payload itself—they are now exported from the @payloadcms/richtext-slate package.
Recap
That's it! Most of these changes will be instantly apparent to you thanks to TypeScript, and many may not apply to you at all. But this list should be comprehensive and we will do our best to keep everything up-to-date here accordingly. There are inevitably some types that have changed locations, and similar things like that, but overall, you should be able to swing the breaking changes and get updated.
If you need a hand, reach out on Discord and we will hook you up!
1.14.0 (2023-08-16)
Bug Fixes
- DatePicker showing only selected day by default (#3169) (edcb393)
- only allow redirects to /admin sub-routes (c0f05a1)
- passes in height to resizeOptions upload option to allow height resize (#3171) (7963d04)
- WhereBuilder component does not accept all valid Where queries (#3087) (fdfdfc8)
Features
- add afterOperation hook (#2697) (33686c6)
- add support for hotkeys (#1821) (942cfec)
- Added Azerbaijani language file (#3164) (63e3063)
- allow async relationship filter options (#2951) (bad3638)
- Improve admin dashboard accessibility (#3053) (e03a8e6)
- improve field ops (#3172) (d91b44c)
- make PAYLOAD_CONFIG_PATH optional (#2839) (5744de7)
- text alignment for richtext editor (#2803) (a0b13a5)
1.13.4 (2023-08-11)
Bug Fixes
1.13.3 (2023-08-11)
Bug Fixes
1.13.2 (2023-08-10)
1.13.1 (2023-08-08)
Bug Fixes
1.13.0 (2023-08-08)
Bug Fixes
setPreference()return type (#3125) (463d6bb)- absolute staticURL admin thumbnails (#3135) (1039f39)
- adding and replacing similarly shaped block configs (#3140) (8e188cf)
Features
- default tab labels from name (#3129) (e8f0516)
- radio and select fields are filterable by options (#3136) (b117e73)
- recursive saveToJWT field support (#3130) (c6e0908)
1.12.0 (2023-08-04)
Bug Fixes
- excludes useAsTitle field from searchableFields in collection view (#3105) (8c4d251)
- relationship field filter long titles (#3113) (da27a8a)
- wrong links in verification and forgot password emails if serverURL not set (#3010) (6a189c6)
Features
- add support for sharp resize options (#2844) (144bb81)
- allows for upload relationship drawer to be opened (#3108) (ea73e68)
- option to pre-fill login credentials automatically (#3021) (c5756ed)
- programmatic control over array and block rows inside the form (#3110) (a78c463)
- set JWT token field name with saveToJWT (#3126) (356f174)
1.11.8 (2023-07-31)
1.11.7 (2023-07-27)
Bug Fixes
- #3062 (0280953)
- array row deletion (#3062) (cf9795b)
- incorrect image rotation after being processed by sharp (#3081) (0a91950)
Features
1.11.6 (2023-07-25)
Bug Fixes
- collections:admin: Enable adminThumbnail fn execution on all types (2c74e93)
- threads hasMaxRows into ArrayAction components within blocks and arrays (#3066) (d43c83d)
1.11.5 (2023-07-25)
Bug Fixes
1.11.4 (2023-07-25)
Bug Fixes
Features
- bump mongoose and mongoose-paginate versions (#3025) (41d3eee)
- improve keyboard focus styles (#3011) (080e619)
- solidifies bundler adapter pattern (#3044) (641c765)
1.11.3 (2023-07-19)
Bug Fixes
- adds backdrop blur to button (#3006) (4233426)
- rich text link element not validating on create (#3014) (60fca40)
Features
- auto-login in config capability (#3009) (733fc0b)
- returns queried user alongside refreshed token (#2813) (2fc03f1)
- support logger destination (#2896) (cd0bf68)
1.11.2 (2023-07-14)
Features
- adds array, collapsible, tab and group error states (4925f90)
1.11.1 (2023-07-11)
Bug Fixes
- #2980, locale=all was not iterating through arrays / blocks (d6bfba7)
- anchor Button component respect margins (#2648) (1877d22)
1.11.0 (2023-07-05)
Bug Fixes
- ensures fields within blocks respect field level access control (#2969) (5b79067)
- ensures rows always have id's (#2968) (04851d0)
- GraphQL type for number field (#2954) (29d8bf0)
- nested richtext bug and test (#2966) (801f609)
- properly threads custom react-select props through relationship field (#2973) (79393e8)
Features
- improve typing of ExtendableError and APIError (#2864) (7c47e4b)
- narrow endpoint.method type (#1880) (b734a1c)
1.10.5 (2023-06-30)
Bug Fixes
- fields in drawer cannot be edited (#2949) (0c2e41c), closes #2945
- improve versions test suite (#2941) (1d4df99)
- incorrect graphql type generation (#2898) (b36deb4)
1.10.4 (2023-06-30)
Features
- add locale to displayed API URL (b22d157)
1.10.3 (2023-06-30)
Bug Fixes
- #2937, depth not being respected in graphql rich text fields (f84b432)
- shows updatedAt date when selecting a version to compare from dropdown (3c9dab3)
1.10.2 (2023-06-26)
Bug Fixes
- adjusts swc loader to only exclude non ts/tsx files - #2888 (#2907) (a2d9ef3)
- autosave on localized fields, adds test (6893231)
- broken export of entityToJSONSchema (#2894) (837dccc)
- correctly scopes data variable within bulk update - #2901 (#2904) (f627277)
- safely check for tempFilePath when updating media document (#2899) (8206c0f)
1.10.1 (2023-06-22)
Bug Fixes
- conditional fields perf bug - #2886 (#2890) (b83d788)
- cutoff tooltips in relationship field (#2873) (09c6cad)
- Relationship hasMany and filterOptions fails above 10 items (#2891) (8128de6)
1.10.0 (2023-06-20)
Bug Fixes
- #2831, persists payloadAPI through local operations that accept req (85d2467)
- #2842, querying number custom ids with in (116e9ff)
- default sort with near operator (#2862) (99f3809)
- deprecate min/max in exchange for minRows and maxRows for relationship field (#2826) (0d8d7f3)
- drawer close on backspace (#2869) (a110ba2)
- drawer fields are read-only if opened from a hasMany relationship (#2843) (542b536)
- fields in relationship drawer not usable #2815 (#2870) (8626dc6)
- mobile loading overlay width #2866 (#2867) (ba9d633)
- near query sorting by distance and pagination (#2861) (1611896)
- relationship field query pagination (#2871) (ce84174)
- slow like queries with lots of records (4dd703a)
Features
- automatically redirect a user back to their originally requested URL after login (#2838) (e910688)
- hasMany for number field (#2517) (8f086e3), closes #2812 #2821 #2823 #2824 #2814 #2793 #2835
- optimizes conditional logic performance (967f217)
1.9.5 (2023-06-16)
1.9.4 (2023-06-16)
Bug Fixes
- incorrectly return totalDocs=1 instead of the correct count when pagination=false (2e73938)
1.9.3 (2023-06-16)
Bug Fixes
- adds custom property to ui field in joi validation (#2835) (56d7745)
- ensures relations to object ids can be queried on (c3d6e1b)
1.9.2 (2023-06-14)
Bug Fixes
- #2821 i18n ui field label (#2823) (63cd7fb)
- adds missing dark-mode styles for version differences view (#2812) (346a48f)
- sanitize reset password result - #2805 (#2808) (46a5f41)
- user can be created without having to specify an email - #2801 (abe3852)
1.9.1 (2023-06-09)
Features
- adds option to customize filename on upload (596eea1)
- collection list view custom components: BeforeList, BeforeListTable, AfterListTable, AfterList (#2792) (38e962f)
1.9.0 (2023-06-07)
Features
1.8.6 (2023-06-07)
Bug Fixes
- #2711 index sortable field global versions fields (#2775) (576af01)
- #2767 bulk operations missing locales in admin requests (e30871a)
- #2771 relationship field not querying all collections (#2774) (8b767a1)
- adjusts activation constraint of draggable nodes (#2773) (863be3d)
- flattens relationships in the update operation for globals #2766 (#2776) (3677cf6)
- improperly typing optional arrays with required fields as required (f1fc305)
- read-only Auth fields (#2781) (3c72f33)
- read-only Auth fields (#2781) (60f5522)
- recursiveNestedPaths not merging existing fields when hoisting row/collapsible fields (#2769) (536d701)
1.8.5 (2023-06-03)
Features
- allows objectid through relationship validation (42afa6b)
1.8.4 (2023-06-02)
Features
Bug Fixes
- group row hoisting (#2683) (1626e17)
- graphql where types on rows and collapsible's (#2758) (f978299)
- RichText link custom fields (#2756) (23be263)
- adds timestamps to global schemas (#2738) (0986282)
- adjusts code field joi schema to allow editorOptions (ed136fb)
- fix locale popup overflow (#2737) (8ee9724)
- fix tests by hard-coding the URL in the logger (2697974)
- mongoose connection (#2754) (69b97bb)
- removes payload dependency inception (#2717) (6125b66)
- searches on correct useAsTitle field in polymorphic list drawers #2710 (9ec2a40)
- typing of sendMail function (e3ff4c4)
- corrects relationship field schema from pr #2696 (#2714) (8285bac)
1.8.3 (2023-05-24)
Bug Fixes
- #2662, draft=true querying by id (3b78ab0)
- #2685, graphql querying relationships with custom id (9bb5470)
- adds credentials to doc access request (#2705) (c716954)
- prevents add new relationship modal from adding duplicative values to the parent doc #2688 (a2a8ac9)
- unable to clear relationships or open relationship drawer on mobile #2691 #2692 (782f8ca)
1.8.2 (2023-05-10)
Bug Fixes
- react webpack alias (1732bb8)
1.8.1 (2023-05-10)
Bug Fixes
Features
- allow users to manipulate images without needing to resize them (#2574) (8531687)
- export additional graphql types (#2610) (3f185cb)
1.8.0 (2023-05-09)
Bug Fixes
- correct casing on graphql type (219f50b)
- defaultValue missing from Upload field schema (7b21eaf)
- ensures nested querying works when querying across collections (09974fa)
- query custom text id fields (967f2ac)
- removes deprecated queryHiddenFIelds from local API docs (5f30dbb)
- removes queryHiddenFields from example Find operation (fb4f822)
- resolve process/browser package in webpack config (02f27f3)
- Row groups in tabs vertical alignment (#2593) (54fac4a)
- softens columns and filters pill colors (#2642) (9072096)
- webp upload formatting (ccd6ca2)
Features
1.7.5 (2023-05-04)
Bug Fixes
Features
- collection admin.enableRichTextLink property (#2560) (9678992)
- custom admin buttons (#2618) (1d58007)
1.7.4 (2023-05-02)
Bug Fixes
1.7.3 (2023-05-01)
Bug Fixes
- #2592, allows usage of hidden fields within access query constraints (#2599) (a0bb13a)
- addds workaround for slate isBlock function issue (#2596) (8f6f13d)
- bulk operations result type (#2588) (8382faa)
- query on id throws 500 (#2587) (0ba22c3)
- timestamp queries (#2583) (9c5107e)
Features
- Add new translation for romanian language (#2556) (fbf3a2a)
- add persian translations (#2553) (c80f68a)
- adjust stack trace for api error (#2598) (870838e)
- allow customizing the link fields (#2559) (bf65228)
- supports collection compound indexes (#2529) (85b3d57)
1.7.2 (2023-04-25)
Bug Fixes
- #2521, graphql AND not working with drafts (e67ca20)
- document drawer access control #2545 (439caf8)
- prevent floating point number in image sizes (#1935) (7fcde11)
- prevent sharp toFormat settings fallthrough by using clone (#2547) (90dab3c)
- query localized fields without localization configured (12edb1c)
- read-only styles (823d022)
Features
- add rich-text blockquote element, change quote node type to blockquote (ed230a4)
- add user to field conditional logic (274edc7)
- exposes id in conditional logic (c117b32)
- imageresizer: add trim options (#2073) (0406548)
1.7.1 (2023-04-18)
Bug Fixes
- adds 'use client' for next 13 compatibility (5e02985)
- graphql variables not being passed properly (72be80a)
Features
- configuration extension points (023719d)
1.7.0 (2023-04-17)
Features
- feat: exposes new replaceState form api (
52ae6f06a) - feat: support email configuration in payload config (#2485) (
042e58ea2) - feat: refactors buildQuery to rely on fields instead of mongoose (
d187b809d) - feat: add admin.hidden to collections and globals (#2487) (
81d69d1b6) - feat: replace deprecated express-graphql dependency (#2484) (
cd548a6e2) - feat: supports null preview url #2472 (
e8a24fd2e) - feat: migrates form builder example nextjs to examples (
28ecb0c5e)
Bug Fixes
- fix: #2494, reduces versions caused by reverting to published with autosave: true (
e0c0b2fdf) - fix: incorrect version defaults (
3f9bbe90b) - fix: hides preview button until document is saved #2476 (#2477) (
f9b8e2dbc) - fix: corrects sidebar spacing in collection and global edit views #2478 (
a45ab8bd7) - fix: use correct locale when querying relationships for list view (#2438) (
15442a9cc) - fix: proper height data for animated gifs (#2506) (
aee6ca05c) - fix: Clear blocks modal search input when closing the modal (#2501) (
0f8051b57) - fix: excess padding on textarea (#2488) (
6ceb79189) - fix: increase line height for global title (#2465) (
19ce0d79e) - fix: uses docPermissions to show/hide x button on media collection doc fileDetails - #2428 (
7f2c3d1d0) - fix: prevents rendering of version actions when a user does not have permission (
13cc669e2) - fix: properly awaits email send to catch potential errors #2444 (#2470) (
11a6ce6d3)
1.6.32 (2023-04-05)
Features
- only uses sharp if required (f9f6ec4)
1.6.31 (2023-04-04)
Bug Fixes
- ensures select hasMany does not get mutated on patch operations (3a6acf3)
Features
- improves required type accuracy (a9cd23a)
1.6.30 (2023-04-03)
Bug Fixes
- incorrect type local api using delete with where (de5ceb2)
- originalDoc being mutated in beforeChange field hooks (888bbf2)
1.6.29 (2023-03-31)
Bug Fixes
1.6.28 (2023-03-28)
Bug Fixes
- potential memory leak with
probe-image-size(8eea0d6)
1.6.27 (2023-03-27)
Bug Fixes
- #2355, select field not fully visible on small screens in certain scenarios (07eb8dd)
- #2384, preserves manually set verified from admin UI (72a8b1e)
- hide fields with admin.hidden attribute (ad25b09)
- make update typing a deep partial (#2407) (e8dc7d4)
- restoring version did not correctly create new version from result (6ca12b1)
- textarea field overlap in UI (1c8cf24)
1.6.25 (2023-03-24)
Bug Fixes
1.6.24 (2023-03-23)
Features
1.6.23 (2023-03-22)
Bug Fixes
- #2315 - deleting files if overwriteExistingFiles is true (4d578f1)
- #2363 version tabs and select field comparisons (#2364) (21b8da7)
- allows base64 thumbnails (#2361) (e09ebff)
- DateField admin type (#2256) (fb2fd3e)
- fallback to default locale showing on non-localized fields (#2316) (e1a6e08)
- Fix missing Spanish translations (#2372) (c0ff75c)
- relationship field useAsTitle #2333 (#2350) (10dd819)
Features
- adds title attribute to ThumbnailCard (#2368) (a8766d0)
- exposes defaultSort property for collection list view (#2382) (1f480c4)
1.6.22 (2023-03-15)
1.6.21 (2023-03-15)
Bug Fixes
1.6.20 (2023-03-13)
Bug Fixes
- allow thumbnails in upload gallery to show useAsTitle value (aae6d71)
- allows useListDrawer to work without collectionSlugs defined (e1553c2)
- cancels existing fetches if new fetches are started (ccc92fd)
- check relationships indexed access for undefined (959f017)
- ensures documentID exists in doc documentDrawers (#2304) (566c45b)
- flattens title fields to allow seaching by title if title inside Row field (75e776d)
- keep drop zone active when hovering inner elements (#2295) (39e303a)
- Prevent browser initial favicon request (fd8ea88)
- removes forced require on array, block, group ts (657aa65)
- removes pagination type from top level admin config types (bf9929e)
- renders presentational table columns (4e1748f)
- undefined point fields saving as empty object (#2313) (af16415)
Features
- #2280 Improve UX of paginator (#2293) (1df3d14)
- exposes useTheme hook (abebde6)
- provide refresh permissions for auth context (e9c796e)
1.6.19 (2023-03-09)
Bug Fixes
- ensures nested fields save properly within link, upload rte (057522c)
1.6.18 (2023-03-09)
Bug Fixes
- #2272, rich text within blocks causing crash on reorder (7daddf8)
- allows swc/register to transpile files above current workspace (ef826c8)
- renders row fields as table columns #2257 (b10e842)
- table column preferences sync (a1ddd2e)
1.6.17 (2023-03-06)
Bug Fixes
- #2150, can now query on N number of levels deep (ac54b11)
- #2179, async default values resetting form state (a4de51a)
- allows empty objects to be retained in db (0247e2d)
- clear relationship value (#2188) (387cec9)
- conditionally renders draggable pill (#2224) (812ab9f)
- ensures sorting on drafts works in all cases (c87fd2b)
- globals publish after draft (44651e6)
- minimize not set to false on all field type schemas (ace032e)
- pass result of previous hook into next hook (c661ac2)
- properly resizes animated images (#2181) (8c4f890)
- properly set req.payload on forgotPassword in local API (#2194) (5ac436e)
- redirects example (#2209) (5aa203d)
- removes duplicative fields from table columns #2221 (#2226) (474a3cb)
- renders rte upload drawer #2178 (523d9d4)
- skips field validation on submit if skipValidation is set to true (cf17760)
- Validate typescript signature (8d31ed6)
- version comparison view errors on old select value (#2163) (a3cc3c3)
- versions table (#2235) (066f5f6)
- virtual fields example (#2214) (f6eb020)
Features
- Add Hungarian Translations (#2169) (ebd16e8)
- adds min and max options to relationship with hasMany (0f38a0d)
- drag-and-drop columns (#2142) (e2c65e3)
- improves ui performance with thousands of fields (0779f8d)
1.6.16 (2023-02-28)
Bug Fixes
- #2150, can now query on N number of levels deep (ac54b11)
- #2179, async default values resetting form state (a4de51a)
- allows empty objects to be retained in db (0247e2d)
- clear relationship value (#2188) (387cec9)
- ensures sorting on drafts works in all cases (c87fd2b)
- globals publish after draft (44651e6)
- properly resizes animated images (#2181) (8c4f890)
- properly set req.payload on forgotPassword in local API (#2194) (5ac436e)
- redirects example (#2209) (5aa203d)
- renders rte upload drawer #2178 (523d9d4)
- skips field validation on submit if skipValidation is set to true (cf17760)
- version comparison view errors on old select value (#2163) (a3cc3c3)
Features
1.6.15 (2023-02-21)
Bug Fixes
- mongoose connection error with useFacet (5888fb9)
1.6.14 (2023-02-21)
Bug Fixes
- #2091 admin translations for filter operators (#2143) (8a8c392)
- #2096, allows custom ts paths with payload generate:types (686a616)
- #2117 collection pagination defaultLimit (#2147) (2a4db38)
- #2131, doesn't log in unverified user after resetting password (3eb85b1)
- #2134, allows links to be populated without having relationship or upload enabled (32a0778)
- #2148, adds queryHiddenFields property to find operation (15b6bb3)
- checks locale is valid for monaco code editor (#2144) (40224ed)
- generate proper json field type according to rfc (#2137) (7e88698)
- removes custom header and gutter from rte link drawer #2120 (#2135) (6a7663b)
- sizes property optional on upload (#2066) (79d047e)
- useFacet config option to disable $facet aggregation (#2141) (b4a2074)
1.6.13 (2023-02-18)
Bug Fixes
1.6.12 (2023-02-17)
Bug Fixes
- ensures only valid fields can be queried on (1930bc2)
Features
- adds gql auth example (#2115) (fa32c27)
- auth example (c076c77)
- separates admin root component from DOM render logic (ff4d1f6)
- virtual fields example (#1990) (2af0c04)
1.6.11 (2023-02-15)
Bug Fixes
Features
1.6.10 (2023-02-14)
Bug Fixes
- #2077 useAPIKey UI missing with disableLocalStrategy (#2084) (586b25a)
- Add missing Spanish translations and fix typos (c4742e5)
- document type in update request handler (d5cd970)
- ensures versions createdAt matches the original doc (8c7e37c)
- globals not saving drafts unless published first (#2082) (4999fba)
- Use the user's AdminUI locale for the DatePicker (#2046) (#2057) (b4a7e91)
- validate type (7bb0984)
Features
- allows control over relationship add new button (6096044)
- async plugins (#2030) (9f30553)
- export more errors (3a2a41d)
1.6.9 (2023-02-10)
Bug Fixes
- adds query constraint to ensureMaxVersions query (30688bb)
- translation of "or" -> "ou" in french (#2047) (dddbec2)
Features
- allows customization of the folder used to serve admin bundled files in production (4d259a6)
1.6.7 (2023-02-08)
Bug Fixes
- drawer state was not set when opened (e6ac872)
1.6.6 (2023-02-07)
Bug Fixes
- #1887, dataloader rich text population infinite loop (ac2e174)
- enables locales with date field (aefb655)
1.6.5 (2023-02-07)
Bug Fixes
- allows radio input to be tabbable (b5880f2)
- auth type leaking into type gen (1f0a1c7)
- corrects keyboard accessibility for checkbox field (65b8fd2)
- ensures preview is enabled before rendering button (e968f40)
- local API update typing (#2010) (4b0d4f4), closes #2009
- max versions incorrectly sorting, causing incorrect versions to be held onto (2e4f7ab)
- named tabs not displaying data in versions view (a41e295)
- replaced media not rendering after document save (827428d)
- webpack css-loader resolve urls (ade4c01)
Features
- deletes old media upon re-upload #1897 (02f9be2)
- enables document drawers from read-only fields (#1989) (0dbc4fa)
1.6.4 (2023-02-03)
Bug Fixes
- only hoists localized values if localization is enabled (8c65f6a)
Features
1.6.3 (2023-02-01)
Bug Fixes
- properly await graphql schema generation (888b3a2)
1.6.2 (2023-02-01)
Features
- Adds optional password to generated types within auth-enabled collections
1.6.1 (2023-02-01)
🐛 Bug Fixes
- updated nl i18n typos (cc7257e)
- fixes #1905
- fixes #1885
- fixes #1869
- versions error on cosmos db (338c4e2)
- hides fallback locale checkbox when field localization is set to false (#1893) (0623039)
- #1870 and #1859 (c0ac155)
- creates backup of latest version after restoring draft #1873 (bd4da37)
- disables escapeValue for i18n (#1886) (eec4b3a)
✨ Features
- Roadmap - improved TypeScript experience - begins work to SIGNIFICANTLY improve typing of Payload's Local API, removing the need for generics and inferring types automatically from your generated types
- Refactors the Local API to include only the bare minimum code necessary for running local API operations, which will allow us to deploy serverlessly
- blocks drawer #1909 (339cee4)
- requires ts-node to start a project for any config that uses ts or jsx (f1c342e)
- simplifies versions logic (8cfa550)
- add Chinese translation (#1926) (7c6ff89)
- add Croatian translation (#1982) (dfa47a0
🚨 BREAKING CHANGES
✋ Payload now no longer transpiles your config for you
This release removes the need to use @swc/register to automatically transpile Payload configs, which dramatically improves Payload initialization speeds and simplifies the core Payload logic significantly. More info in the PR here.
If you are not using TypeScript, this will be a breaking change. There are many ways to mitigate this - but the best way is to just quickly scaffold a barebones TS implementation. You can still write JavaScript, and this PR does not require you to write TS, but handling transpilation with TypeScript will be an easy way forward and can set you up to opt-in to TS over time as well.
For instructions regarding how to migrate to TS, review the PR here.
✋ Payload init is now always async, and payload.initAsync has been removed
We are pulling off a bandaid here and enforcing that payload.init is now asynchronous across the board. This will help prevent issues in the future and allow us to do more advanced things within init down the road. But this will be a breaking change if your project uses payload.init right now.
To migrate, you need to convert your code everywhere that you run payload.init to be asynchronous instead. For example, here is an example of a traditional payload.init call which needs to be migrated:
const express = require('express')
const payload = require('payload')
const app = express()
payload.init({
secret: 'SECRET_KEY',
mongoURL: 'mongodb://localhost/payload',
express: app,
})
app.listen(3000, async () => {
console.log('Express is now listening for incoming connections on port 3000.')
})
Your payload.init call will need to be converted into the following:
const express = require('express')
const payload = require('payload')
const app = express()
const start = async () => {
await payload.init({
secret: 'SECRET_KEY',
mongoURL: 'mongodb://localhost/payload',
express: app,
})
app.listen(3000, async () => {
console.log('Express is now listening for incoming connections on port 3000.')
})
}
start()
Notice that all we've done is wrapped the payload.init and app.listen calls with a start function that is asynchronous.
✋ All Local API methods are no longer typed as generics, and instead will infer types for you automatically
Before this release, the Local API methods were configured as generics. For example, here is an example of the findByID method prior to this release:
const post = await payload.findByID<Post>({
collection: 'posts',
id: 'id-of-post-here',
})
Now, you don't need to pass your types and Payload will automatically infer them for you, as well as significantly improve typing throughout the local API. Here's an example:
const post = await payload.findByID({
collection: 'posts', // this is now auto-typed
id: 'id-of-post-here',
})
// `post` will be automatically typed as `Post`
To migrate, just remove the generic implementation!
But there's one more thing to do before Payload can automatically type your Local API. You need to add a path to your tsconfig.json file that matches your exported types from Payload:
{
"compilerOptions": {
// your compilerOptions here
"paths": {
// Tell TS where to find your generated types
// This is the default location below
"payload/generated-types": ["./src/payload-types.ts"]
}
}
}
Then go regenerate your types. We've extended the payload generate:types method a bit to be more complete. Upon regenerating types, you'll see a new Config export at the top of the file which contains a key - value pair of all your collection and global types, which Payload will automatically import.
✋ JSX support must be defined in tsconfig.json
If not already defined, add the following to your compilerOptions:
"compilerOptions": {
"jsx": "react"
}
✋ Versions may need to be migrated
This release includes a substantial simplification / optimization of how Versions work within Payload. They are now significantly more performant and easier to understand behind-the-scenes. We've removed ~600 lines of code and have ensured that Payload can be compatible with all flavors of MongoDB - including versions earlier than 4.0, Azure Cosmos MongoDB, AWS' DocumentDB and more.
But, some of your draft-enabled documents may need to be migrated.
If you are using versions and drafts on any collections, you can run a simple migration script to ensure that your drafts appear correctly in the Admin UI. Your data will never disappear from your database in any case if you update, but some drafts may not show in the List view anymore.
To migrate, create this file within the root of your Payload project:
migrateVersions.ts
const payload = require('payload')
require('dotenv').config()
const { PAYLOAD_SECRET, MONGODB_URI } = process.env
// This function ensures that there is at least one corresponding version for any document
// within each of your draft-enabled collections.
const ensureAtLeastOneVersion = async () => {
// Initialize Payload
// IMPORTANT: make sure your ENV variables are filled properly here
// as the below variable names are just for reference.
await payload.init({
secret: PAYLOAD_SECRET,
mongoURL: MONGODB_URI,
local: true,
})
// For each collection
await Promise.all(
payload.config.collections.map(async ({ slug, versions }) => {
// If drafts are enabled
if (versions?.drafts) {
const { docs } = await payload.find({
collection: slug,
limit: 0,
depth: 0,
locale: 'all',
})
const VersionsModel = payload.versions[slug]
const existingCollectionDocIds: Array<string> = []
await Promise.all(
docs.map(async (doc) => {
existingCollectionDocIds.push(doc.id)
// Find at least one version for the doc
const versionDocs = await VersionsModel.find(
{
parent: doc.id,
updatedAt: { $gte: doc.updatedAt },
},
null,
{ limit: 1 },
).lean()
// If there are no corresponding versions,
// we need to create one
if (versionDocs.length === 0) {
try {
await VersionsModel.create({
parent: doc.id,
version: doc,
autosave: Boolean(versions?.drafts?.autosave),
updatedAt: doc.updatedAt,
createdAt: doc.createdAt,
})
} catch (e) {
console.error(
`Unable to create version corresponding with collection ${slug} document ID ${doc.id}`,
e?.errors || e,
)
}
console.log(`Created version corresponding with ${slug} document ID ${doc.id}`)
}
}),
)
const versionsWithoutParentDocs = await VersionsModel.deleteMany({
parent: { $nin: existingCollectionDocIds },
})
if (versionsWithoutParentDocs.deletedCount > 0) {
console.log(
`Removing ${versionsWithoutParentDocs.deletedCount} versions for ${slug} collection - parent documents no longer exist`,
)
}
}
}),
)
console.log('Done!')
process.exit(0)
}
ensureAtLeastOneVersion()
Make sure your environment variables match the script's values above and then run PAYLOAD_CONFIG_PATH=src/payload.config.ts npx ts-node -T migrateVersions.ts in your terminal. Make sure that you point the command to your Payload config.
This migration script will ensure that there is at least one corresponding version for each of your draft-enabled documents. It will also delete any versions that no longer have parent documents.
👀 Example of a properly migrated project
For an example of how everything works with this update, go ahead and run npx create-payload-app. We've updated create-payload-app to reflect all the necessary changes here and you can use a new project to compare / contrast what you have in your current project with what Payload needs now in this release.
1.5.9 (2023-01-15)
Bug Fixes
1.5.8 (2023-01-12)
Features
- throws descriptive error when collection or global slug not found (b847d85)
1.5.7 (2023-01-12)
Bug Fixes
- ensures find with draft=true does not improperly exclude draft ids (69026c5)
- ensures querying with drafts works on both published and non-published posts (f018fc0)
1.5.6 (2023-01-11)
Bug Fixes
- ensures that find with draft=true returns ids with drafts (3f30b2f)
1.5.5 (2023-01-11)
Bug Fixes
- #1808, arrays and blocks now save localized nested field data upon reordering rows (ee54c14)
- bug when clearing relationship field without hasMany: true (#1829) (ed7cfff)
- ensures upload file data is available for conditions (d40e136)
- fix miss typo in Thai translation (25e5ab7)
- formats date when useAsTitle (086117d)
- prevents uploads drawer from crashing when no uploads are enabled (84e1417)
- rte link element initial state #1848 (1cde647)
- updatesmargin for group field within a row (1c3a257)
- upload field filterOptions (9483ccb)
- wrong translation and punctuation spacing (bf1242a)
Features
- adds translations for fallbackToDefaultLocale (c247f31)
- ensures compatibility with azure cosmos and aws documentdb (73af283)
1.5.4 (2023-01-06)
Features
- allows init to accept a pre-built config (84e00bf)
1.5.3 (2023-01-05)
Bug Fixes
- theme flicker on code editor (6567454)
1.5.2 (2023-01-04)
Bug Fixes
- ignores admin and components from swc (7d27431)
1.5.1 (2023-01-04)
Bug Fixes
- reverts components directory back to ts (1bbf099)
1.5.0 (2023-01-04)
Bug Fixes
- json field type (73b8ba3)
Features
- adds initial json field (28d9f90)
- fixes json editor errors and misc styling (efe4f6d)
- swc register (#1779) (c11bcd1)
- updates code field editor (4d6eba8)
- wires up i18n with monaco editor (07b2cca)
1.4.2 (2023-01-03)
Bug Fixes
- #1775 - siblingData for unnamed fields within array rows improperly formatted (d6fcd19)
- #1786, relationship with hasMany no longer sets empty array as default value (ecfb363)
- error clearing date field (883daf7)
- select field crash on missing value option (ec9196e)
Features
1.4.1 (2022-12-24)
Bug Fixes
1.4.0 (2022-12-23)
Bug Fixes
- #1611, unable to query draft versions with draft=true (44b31a9)
- #1656 remove size data (389ee26)
- #1698 - globals and autosave not working (915f1e2)
- #1738 save image dimensions to svg uploads (2de435f)
- #1747, rich text in arrays improperly updating initialValue when moving rows (d417e50)
- #1748, bails out of autosave if doc is published while autosaving (95e9300)
- #1752, removes label from row field type (ff3ab18)
- #551 - rich text nested list structure (542ea8e)
- allows cleared file to be reselected (35abe81)
- get relationships in locale of i18n language setting (#1648) (60bb265)
- missing file after reselect in upload component (6bc1758)
- prevents special characters breaking relationship field search (#1710) (9af4c1d)
- refreshes document drawer on save (9567328)
- removes update and created at fields when duplicating, ensures updatedAt data is reactive (bd4ed5b)
- safely clears sort #1736 (341c163)
- simplifies radio validation (0dfed3b)
- translated tab classnames (238bada)
- updates relationship label on drawer save and prevents stepnav update (59de4f7)
- updates richtext toolbar position if inside a drawer (468b0d2)
- use the slug for authentication header API Key (5b70ebd)
Features
- add Czech translation (#1705) (0be4285)
- adds doc permissions to account view (8d643fb)
- graphql: upgrade to graphql 16 (57f5f5e)
BREAKING CHANGES
- replaced the useAPIKey authentication header format to use the collection slug instead of the collection label. Previous:
${collection.labels.singular} API-Key ${apiKey}, updated:${collection.slug} API-Key ${apiKey}
1.3.4 (2022-12-16)
Bug Fixes
- async validate out of order (e913fbe)
- autosave with nested localized fields (4202fc2)
- doc access should not run where query on collections without id (016beb6)
- run docAccess also when checking global (b8c0482)
1.3.3 (2022-12-16)
Bug Fixes
- allow translation in group admin.description (#1680) (91e33ad)
- ensures select field avoids circular dependencies (f715146)
1.3.2 (2022-12-15)
Bug Fixes
- safely handles rich text deselection (420eef4)
1.3.1 (2022-12-15)
Bug Fixes
- add i18n type to collection and globals admin.description (#1675) (049d560)
- adds draftsEnabled to baseSchema for tabs / arrays / groups & allows for null enum (80da898)
- adds draftsEnabled to versionSchema in collections / globals (f0db5e0)
- collapsible margin bottom adjustment (#1673) (64086e8)
- escapes react-select events when drawer is open (f290cda)
- label translation in about to delete dialog (#1667) (d9c45f6)
- list view date field display format (#1661) (934b443)
- removes case for select field that sets data to undefined if set to null (b4f39d5)
- Set 'Dashboard's link to config route (#1652) (940c1e8)
- stringifies date in DateTime field for useAsTitle (#1674) (a1813ca)
Features
- inline relationships (8d744c8)
- custom button html element (5592fb1)
- further Tooltip improvements (e101f92)
1.3.0 (2022-12-09)
Bug Fixes
-
#1547, global afterChange hook not falling back to original global if nothing returned (a72123d)
-
#1632 graphQL non-nullable relationship and upload fields (#1633) (eff3f18)
-
change edit key to prevent richtext editor from crashing (#1616) (471d214)
-
filterOptions function argument relationTo is an array (#1627) (11b1c0e)
-
resets slate state when initialValue changes, fixes #1600, #1546 (9558a22)
-
sanitizes global find query params (512bc1e)
-
unflattens fields in filterOptions callback (acff46b)
-
feat!: no longer sanitize collection slugs to kebab case (#1607) (ba2f2d6), closes #1607
Features
- add Norwegian bokmål (nb) translation (#1614) (759f001)
- add Thai translation (#1630) (7777d11)
- upload support pasting file (eb69b82)
BREAKING CHANGES
- collection slugs are no longer automatically sanitized to be kebab case. This will only be an issue if your current slugs were in camel case. The upgrade path will be to change those slugs to the kebab case version that the slug was automatically being sanitized to on the backend.
If you only use kebab case or single word slugs: no action needed.
If you have existing slugs with camel case and populated data: you'll need to convert these to the kebab case version to match the previously sanitized value.
ie. myOldSlug is your slug, you should convert it to my-old-slug.
Any future slugs after updating will be used as-is.
1.2.5 (2022-12-06)
Bug Fixes
- exits findOptionsByValue when matchedOption is found (881c067)
- mismatch language condition when rendering unpublish (3ddd0ea)
- safely coerces limit and depth to number or undefined (dd04d78)
- uses pathOrName to pass to internal Relationship field components (8874e87)
Features
1.2.4 (2022-12-03)
Bug Fixes
1.2.3 (2022-12-02)
Bug Fixes
1.2.2 (2022-12-02)
Bug Fixes
- adds contain operators for text/email/radio fields (4c37af6)
- adjusts how limit is set, both in options and paginates limit (a718010)
- aligns mongoose PaginatedDocs type with actual lib type (dce2081)
- allows for form controlled relationship fields to be populated (e4435bb)
- allows for limit bypass on version find operations (891f00d)
- blockName grows in all browsers (03c2ab5)
- corrects skipValidation (e6f1c6f)
- dynamic relationship filterOptions (99c1f41)
- ensures enums cannot query on partial matches (ec51929)
- german translation optimizations (#1485) (e9d2163)
- handle multiple locales in relationship population (#1452) (04c689c)
- i18n: requiresAtLeast variable in de.json (#1556) (47fd0d9)
- ignore validation when unpublishing, do not allow restore with invalid form state (77ab542)
- indexSortableFields timestamp fields #1506 (#1537) (7aada3c)
- infinite rerenders, accounts for hasMany false (16d00e8)
- moves relationship field useEffect into async reducer action (54ef40a)
- moves sharp types from devDeps to deps (b3d526b)
- reverts async reducer and resolves infinite effect (a9da81f)
- sanitize number query params before passing to find operation (c8d1b9f)
- translate select field option labels (#1476) (3a9dc9e)
- update drafts includes latest version changes (48989d0)
- updates code field css (3eebd66)
- updates syntax colors for light theme (dbfe7ca)
- uses baseClass in code field (d03f0ae)
Features
- decouples limit from pagination, allows for no limit query (f7ce0c6)
- improve typescript comments (#1467) (5bd8657)
- log email transport error messages (#1469) (a90a1a9)
- removes theme provider and updates background for code fields (1a6c9a3)
1.2.1 (2022-11-22)
Bug Fixes
- adjusts styles to allow error bg to fill textarea (2e57b76)
- allows patching global drafts #1415 (25822a9)
- dynamically sets stepnav from default edit view (40c8778)
- ensures drafts operations saves as draft #1415 (fc16ffe)
- flattens locales before versioning published docs #1415 (f700f51)
- i18n: version count (#1465) (075b7e9)
- Increase textarea click area (c303913)
- invalid query string user account request (#1478) (400cb9b)
- removes incorrectly import/export option type - #1441 (ed01a17)
- rendering of localized select value (1d1d249)
- sanitizes select values on the server, allowing isClearable selects to be cleared without error (699ca14)
- translate version comparison view field labels (#1470) (8123585)
- versionCount was broken & other i18n improvements (#1450) (078c28b)
- versions tests (af6a7aa)
Features
- add i18n to option labels in version comparison (#1477) (7b6a9ed)
- exports field types properly (7c6d6fd)
1.2.0 (2022-11-18)
🐛 Bug Fixes
- build errors (65f0e1c)
- components optional chaining (d5e725c)
- corrects exported custom component type (2878b4b)
- corrects type for CollapsibleLabel example type, adjusts custom component filenames (ccb4231)
- sets pointer-events to none so the entire label bar is clickable (e458087)
✨ Features
- add i18n to admin panel (#1326) (bab34d8)
- adds docs example (2bf0fff)
- adds playwright tests for array fields (57a8c35)
- converts rowHeader to collapsibleLabel, extends data passed to functions/components (13ec1e0)
- customizable header-labels (d45de99)
- simplifies collapsible label API, adds e2e tests (d9df98f)
- specifies component names for arrays/collapsibles, simplifies threaded data (b74ea21)
🚨 BREAKING CHANGES
-
You might need to update your config. This change affects
collections,globalsandblock fieldswith custom labeling.-
Collections: are affected if you have a custom
labels.singulardefined that differs from your collection slug.// ExampleCollection.ts // Before const ExampleCollection: CollectionConfig = { slug: 'case-studies', labels: { // Before Payload used `labels.singular` to generate types/graphQL schema singular: 'Project', plural: 'Projects', }, } // After const ExampleCollection: CollectionConfig = { // Now Payload uses `slug` to generate types/graphQL schema slug: 'case-studies', labels: { singular: 'Project', plural: 'Projects', }, // To override the usage of slug in graphQL schema generation graphQL: { singularName: 'Project', pluralName: 'Projects', }, // To override the usage of slug in type file generation typescript: { interface: 'Project', }, } -
Globals: are affected if you have a
labeldefined that differs from your global slug.// ExampleGlobal.ts // Before const ExampleGlobal: GlobalConfig = { slug: 'footer', // Before Payload used `label` to generate types/graphQL schema label: 'Page Footer', } // After const ExampleGlobal: GlobalConfig = { // Now Payload uses `slug` to generate types/graphQL schema slug: 'footer', label: 'Page Footer', // To override the usage of slug in graphQL schema generation graphQL: { name: 'PageFooter', }, // To override the usage of slug in type file generation typescript: { interface: 'PageFooter', }, } -
Block Fields: are affected if you have a
labeldefined that differs from your block slug.// ExampleBlock.ts // Before const ExampleBlock: Block = { slug: 'content', // Before Payload used `label` to generate graphQL schema label: 'Content Block', } // After const ExampleBlock: Block = { // Now Payload uses `slug` to generate graphQL schema slug: 'content', label: 'Content Block', // To override the usage of slug in graphQL schema generation graphQL: { singularName: 'ContentBlock', }, } ``` **Breaking changes recap**:
-
-
On Collections
- Use
graphQL.singularName,graphQL.pluralNamefor GraphQL schema names. - Use
typescript.interfacefor typescript generation name.
- Use
-
On Globals
- Use
graphQL.namefor GraphQL Schema name. - Use
typescript.interfacefor typescript generation name.
- Use
-
On Blocks (within Block fields)
- Use
graphQL.singularNamefor graphQL schema names.
- Use
1.1.26 (2022-11-15)
Bug Fixes
1.1.25 (2022-11-15)
Bug Fixes
- add slug to DocumentInfo context (#1389) (4d8cc97)
- adds unique key to upload cards to prevent old images being shown while navigating to new page (5e8a8b2)
- ensures admin components is defaulted (d103f6c)
- global afterRead and afterChange execution (#1405) (cdaa8cc)
Features
- admin UI logout extensibility (#1274) (a345ef0)
- let textarea grow based on value (#1398) (0f27b10)
- saves tab index to user preferences (5eb8e4a)
1.1.24 (2022-11-14)
Bug Fixes
1.1.23 (2022-11-12)
Bug Fixes
Features
- optimizes field performance by storing internal values in useField hook (66210b8)
1.1.22 (2022-11-12)
Bug Fixes
- #1353, ensures errors returned from server make their way to UI (3f28a69)
- #1357, nested arrays and blocks sometimes not allowing save (86855d6)
- #1358, allows listSearchableFields to work when indicated fields are nested (eb0023e)
- #1360, relationship field onMenuScrollToBottom not working in some browsers (7136db4)
- #1367, allows custom global components within schema validation (1d76e97)
- 1309, duplicative logout in admin UI (35f91b0)
- fixed GraphQL Access query resolver to return the correct data (#1339) (cfef68f)
1.1.21 (2022-11-05)
1.1.20 (2022-11-05)
Features
- optimizes blocks and arrays by removing some additional rerenders (483adf0)
1.1.19 (2022-10-31)
Bug Fixes
- #1307, #1321 - bug with disableFormData and blocks field (2a09f15)
- #1311, select existing upload modal always updates state (e2ec2f7)
- #1318, improves popup positioning and logic (c651835)
- custom pino logger options (#1299) (2500026)
1.1.18 (2022-10-25)
1.1.17 (2022-10-25)
Bug Fixes
- #1286, uses defaultDepth in graphql rich text depth (66bf8c3)
- #1290, renders more than one rich text leaf where applicable (a9f2f0e)
- #1291, add inline relationship drafts (3967c12)
- enforces depth: 0 in graphql resolvers (3301f59)
- ensures field updates when disableFormData changes (c929725)
- group + group styles within collapsible (17dbbc7)
Features
- added beforeLogin hook (#1289) (09d7939)
- adds default max length for text-based fields (6a1b25a)
- specify node 14+ and yarn classic LTS (#1240) (9181477)
1.1.16 (2022-10-21)
Bug Fixes
- indexSortableFields not respected (785b992)
- obscure bug where upload collection has upload field relating to itself (36ef378)
1.1.15 (2022-10-14)
Bug Fixes
- ensures svg mime type is always image/svg+xml (0b0d971)
1.1.14 (2022-10-14)
1.1.11 (2022-10-12)
Bug Fixes
Features
1.1.10 (2022-10-11)
1.1.9 (2022-10-11)
Features
- improves access control typing (5322ada)
1.1.8 (2022-10-11)
Features
- adds ability to create related docs while editing another (1e048fe)
- implements use-context-selector for form field access (5c1a3fa)
1.1.7 (2022-10-06)
1.1.6 (2022-10-06)
Bug Fixes
- #1184 (c2ec54a)
- #1189 (3641dfd)
- #1204 (b4becd1)
- #940 (7926083)
- ajusts how disabled states are being set on anchors and buttons (00ef170)
- remove min-width from fileupload (73848b6)
- resize textarea only vertically (6e1dfff)
- richText e2e test, specific selectors (09a8144)
- styles readOnly RichTextEditor, removes interactivity within when readOnly (9181304)
- style: system dark scrollbars (a30d9dc)
- threads readOnly to ReactSelect (b454811)
- upload xls renaming ext (7fd8124)
Features
1.1.5 (2022-09-29)
Bug Fixes
- bug in useThrottledEffect (3ce8ee4)
1.1.4 (2022-09-24)
Bug Fixes
Features
- supports root endpoints (52cd3b4)
1.1.3 (2022-09-16)
Bug Fixes
- adjust prevPage and nextPage graphql typing (#1140) (b3bb421)
- duplicate with relationships (eabb981)
1.1.2 (2022-09-14)
Bug Fixes
1.1.1 (2022-09-13)
Bug Fixes
1.1.0 (2022-09-13)
Bug Fixes
Features
- #1001 - builds a way to allow list view to search multiple fields (a108372)
- collection groups (dffeaf6)
- globals groups (59af872)
- hide nav labels with no un-grouped collections (c40e232)
- implement gravatar (#1107) (ca434b8)
- support localized tab fields (a83921a)
- tabs support localization at the tab level (6a6a691)
- WIP tab compatible with traverseFields (2ae33b6)
1.0.36 (2022-09-10)
Bug Fixes
- bug with account view (ada1871)
1.0.35 (2022-09-10)
Bug Fixes
- #1059 (13dc39d)
- add height/width if imageSizes not specified (8bd2a0e)
- incorrect auth strategy type (c8b37f4)
- rich text link with no selection (5a19f69)
Features
1.0.34 (2022-09-07)
Bug Fixes
- pins faceless ui modal (b38b642)
1.0.33 (2022-09-07)
Bug Fixes
- #1062 (05d1b14)
- #948 (8df9ee7)
- #981 (d588843)
- accented label char sanitization for GraphQL (#1080) (888734d)
- children of conditional fields required in graphql schema (#1055) (29e82ec)
- ensures adding new media to upload works when existing doc does not exist (5ae666b)
- implement the same word boundary search as the like query (#1038) (c3a0bd8)
- reorder plugin wrapping (#1051) (cd8edba)
- require min 1 option in field schema validation (#1082) (d56882c)
- update removing a relationship with null (#1056) (44b0073)
- update removing an upload with null (#1076) (2ee4c7a)
Features
- cyrillic like query support (#1078) (b7e5828)
- duplicate copies all locales (51c7770)
- update operator type with contains (#1045) (482cbe7)
1.0.30 (2022-08-30)
Bug Fixes
1.0.29 (2022-08-29)
Bug Fixes
1.0.28 (2022-08-29)
Bug Fixes
- incorrect field paths when nesting unnamed fields (#1011) (50b0303), closes #976
- relationship cell loading (#1021) (6a3cfce)
- remove lazy loading of array and blocks (4900fa7)
- require properties in blocks and arrays fields (#1020) (6bc6e7b)
- unpublish item will not crash the UI anymore (#1016) (0586d7a)
Features
- export more fields config types and validation type (#989) (25f5d68)
- types custom components to allow any props (#1013) (3736755)
- validate relationship and upload ids (#1004) (d727fc8)
1.0.27 (2022-08-18)
Bug Fixes
- react-sortable-hoc dependency instead of dev dependency (4ef6801)
1.0.26 (2022-08-18)
Bug Fixes
Features
- adds more prismjs syntax highlighting options for code blocks (#961) (f45d5a0)
- enable reordering of hasMany relationship and select fields (#952) (38a1a38)
1.0.25 (2022-08-17)
Bug Fixes
Features
1.0.24 (2022-08-16)
Bug Fixes
- #939 (b1a1575)
- create indexes in nested fields (f615abc)
- format graphql localization input type (#932) (1c7445d)
Features
- ensures you can query on blocks via specifying locale or not specifying locale (078e8dc)
1.0.23 (2022-08-15)
Bug Fixes
1.0.22 (2022-08-12)
Bug Fixes
1.0.21 (2022-08-11)
Bug Fixes
1.0.20 (2022-08-11)
Bug Fixes
- E11000 duplicate key error has no keyValue (#916) (50972b9)
- number validation works with 0 min and max (#906) (874c001)
Features
1.0.19 (2022-08-07)
Features
- exposes static upload handlers (a8d2e09)
1.0.18 (2022-08-06)
1.0.17 (2022-08-06)
Bug Fixes
1.0.16 (2022-08-05)
Bug Fixes
1.0.15 (2022-08-04)
1.0.14 (2022-08-04)
Bug Fixes
Features
- allows querying on rich text content (3343adb)
1.0.13 (2022-08-03)
Bug Fixes
Features
- improves adjacent group styling (0294c02)
1.0.12 (2022-08-02)
Bug Fixes
- ensures tabs can overflow on mobile when there are many (663cae4)
- unique index creation (#867) (c175476)
1.0.11 (2022-07-28)
Bug Fixes
- ensures when initial values changes, field value is updated (858b1af)
1.0.10 (2022-07-27)
Bug Fixes
- #806, allow partial word matches using 'like' operator (c96985b)
- #836 (84611af)
- accesses payload config correctly in gql refresh resolver (d5e88cc)
- email not always loading while viewing auth collections (36e9acc)
- ensures collapsible preferences are retained through doc save (61f0e8e)
- id now properly required in graphql findByID operation (5dc7caf)
- set overflow payload modal container to auto (cfb5540)
- trim trailing whitespaces of email in login (8feed39)
Features
- greatly enhances performance by using dataloader pattern to batch populations (c5bcd1e)
- significantly improves complex GraphQL query performance (5d57bfa)
1.0.9 (2022-07-21)
Bug Fixes
- avoid assuming Email will be present on JWT token. Using ID instead as email might not be in if using disableLocalStrategy (#789) (3b4d5af)
- enable index creation from schema (#791) (2a1f387)
- graphql gen logging output (#795) (8a81d0b)
- sharpens radio input edges by replacing box-shadow trick with border property (#768) (e2c366f)
Features
- pass payload and names to custom auth strategies (#781) (3a3026c)
- use provided auth strategy name or strategy.name (#797) (f22f56e)
1.0.8 (2022-07-20)
Bug Fixes
Features
- export PayloadRequest (66c820c)
- improves generated types by removing unnecessary optional properties (#784) (6f748f1)
1.0.7 (2022-07-19)
1.0.6 (2022-07-19)
Features
- improves initAsync pattern (428edb0)
1.0.5 (2022-07-19)
Features
- adds initAsync (b4ffa22)
1.0.4 (2022-07-19)
Features
- Updated UI: Dark Mode
- Updated UI: Collapsibles (60bfb1c)
- Updated UI: Tabs field (68e7c41)
- Updated UI: Styling Revamp and responsive improvements
- More maintainable colors via CSS vars
- Improved test coverage through granular Payload configs
- Introduction of E2E tests through Playwright
- allow clear select value (#735) (3132d35)
BREAKING CHANGES
We have removed our reliance on SCSS variables like color and font, replacing them instead with CSS variables wherever possible.
Due to this change, the admin.scss functionality has become obsolete, and overriding SCSS variables is not longer needed or supported. If you want to customize CSS, you can still do so, but via the admin.css property instead.
0.19.2 (2022-07-11)
Bug Fixes
- ensures only plain objects are merged within incoming configs (2c66ad8)
Features
- 🎉 Extensible Authentication Strategies!
- add afterMe afterLogout and afterRefresh (4055908)
- add preMiddleware and postMiddleware, deprecate middleware (e806437)
- better types useAuth and custom provider components (38b52bf)
0.19.1 (2022-07-09)
Bug Fixes
0.19.0 (2022-07-08)
BREAKING CHANGES
- relationship fields with access control preventing read of relation will return id instead of null (#644)
Bug Fixes
- allow passing of autoIndex mongoose connectionOptions (#722) (567d8c1)
- copyfiles cross platform (#712) (67331eb)
- ensures auth/me relations in gql can be queried (01bc1fe)
- ensures old data from arrays is not persisted (d9ef803)
- relationship field disabled from access control in related collections (#644) (91e33d1)
Features
- allow clearing DatePicker value (#641) (9fd171b)
- File argument in create/update operation (#708) (f3b7dcf)
- graphql schema output (#730) (ad43cbc)
0.18.5 (2022-06-29)
Bug Fixes
- empty cell data renders in list (#699) (b6b0ffb)
- icon appears above select field's option list (#685) (c78d774)
0.18.4 (2022-06-24)
0.18.3 (2022-06-24)
Bug Fixes
0.18.2 (2022-06-24)
Features
- telemetry (1c37ec3)
0.18.1 (2022-06-21)
Bug Fixes
0.18.0 (2022-06-14)
Bug Fixes
- custom fields values resetting in ui (#626) (f2bf239)
- me auth route breaks with query params (#648) (a1fe17d)
Features
- adds timestamps to generated collection types if enabled (#604) (af6479b)
- enable webpack filesystem cache in dev (#621) (44c1232)
0.17.3 (2022-06-08)
Bug Fixes
- duplicate objects in array fields in validate data and siblingData (#599) (20bbda9)
- ensures unflattening locales only happens if config specifies locales (c18cc23)
0.17.2 (2022-05-24)
Bug Fixes
- #576, graphql where on hasMany relationship not working (#582) (20d251f)
- adds optional chaining to safely read drafts setting on versions (#577) (982b3f0)
- passes required prop for select field (#579) (734e905)
0.17.1 (2022-05-17)
Bug Fixes
- only localizes schema if both field and top-level config are enabled (e1a5547)
0.17.0 (2022-05-16)
Bug Fixes
- apply field condition to custom components (#560) (1dfe2b8)
- prevent changing order of readOnly arrays (#563) (16b7edb)
0.16.4 (2022-05-06)
Bug Fixes
- fields in groups causing console error in browser (#553) (78edac6)
- save resized image file when equal to upload size (#555) (46f4bc2)
0.16.3 (2022-05-04)
Bug Fixes
- rare bug while merging locale data (47c37e0)
0.16.2 (2022-05-02)
Bug Fixes
Features
- exposes findMany argument to afterRead hooks to discern between find and findByID (b3832e2)
- optimizes field operations (18489fa)
0.16.1 (2022-04-29)
Features
- exposes payload within server-side validation args (e46b942)
0.16.0 (2022-04-29)
Bug Fixes
Features
- allow subfield readOnly to override parent readOnly (#546) (834f4c2)
- allows defaultValue to accept async function to calculate defaultValue (#547) (e297eb9)
0.15.13 (2022-04-26)
0.15.12 (2022-04-26)
Bug Fixes
- ensures adding array / block rows modifies form state (8bdbd0d)
0.15.11 (2022-04-24)
Bug Fixes
- improperly typed access control (b99ec06)
0.15.10 (2022-04-24)
Bug Fixes
- block form-data bug (3b70560)
0.15.9 (2022-04-20)
Bug Fixes
- intermittent blocks UI issue (3c1dfb8)
0.15.8 (2022-04-20)
Bug Fixes
- ensure relationTo is valid in upload fields (#533) (9e324be)
- richtext editor input height (#529) (3dcd8a2)
0.15.7 (2022-04-12)
Bug Fixes
- checkbox validation error positioning (9af89b6)
Features
- sanitize defaultValue to false when field is required (6f84c0a)
0.15.6 (2022-04-06)
Bug Fixes
- new up separate logger for generateTypes script (cf54b33)
0.15.5 (2022-04-06)
Bug Fixes
0.15.4 (2022-04-05)
Bug Fixes
- #495, avoids appending version to id queries (ab432a4)
- default point validation allows not required and some edge cases (29405bb)
Features
- allows like to search by many words, adds contain to match exact strings (ec91757)
- extended validation function arguments (#494) (1b4b570), closes #495
- filter relationship options using filterOptions (485991b)
- logging: allow pino logger options to be passed into init (6620a4f)
- support className config for row, block and array fields (#504) (0461c21)
0.15.3 (2022-04-04)
Bug Fixes
0.15.2 (2022-04-04)
Bug Fixes
0.15.1 (2022-03-28)
Features
- builds a way to inject custom React providers into admin UI (5a7e8a9)
- export Plugin type from config types (#491) (45f7011)
0.15.0 (2022-03-16)
BREAKING CHANGES
The GraphQL error response data object has moved from the top level to the extensions object.
Here is a previous example:
{
"message": "The following fields are invalid: location,",
"data": [
{
"message": "This field requires two numbers",
"field": "location"
},
]
},
The new shape of GraphQL errors is as follows:
"extensions": {
"name": "ValidationError",
"data": [
{
"message": "This field requires two numbers",
"field": "location"
},
]
}
Bug Fixes
- #422, prevents loading duplicative relationship options (414679d)
- #423, #391 - prevents loading edit views until data initializes (2884654)
- #424, unable to clear localized property vals (1a05fe4)
- #431 - relationship field not properly fetching option results (6fab8bf)
- #454, withCondition type usability (56c16d5)
- #459 - in Relationship field to multiple collections, when the value is null, options are not populated (#460) (a9b83c8)
- #461 (08924a1)
- #464, graphql upload access control (fd0629e)
- adds key to RichText based on initialValue (f710b8c)
- adjusts lte and gte types to match docs and codebase (#480) (8fc4f7f)
- allow jwt to work without csrf in config (4048734)
- awaits beforeDelete hooks (609b871)
- config empty and sparse csrf is now allowed (7e7b058)
- ensures empty hasMany relationships save as empty arrays (08b3e8f)
- ensures nested lists always render properly (20e5dfb)
- ensures overrideAccess is false if undefined while populating (97f3178)
- ensures rte upload is populated when only upload is enabled (39438b8)
- import path for createRichTextRelationshipPromise (586cd4d)
- improperly typed local create method (48aa27c)
- mobile styling to not found page (d3f88a1)
- new slate version types (c5de01b)
- optimizes relationship input search querying (7e69fcb)
- prevents None from appearing in hasMany relationship select options (cbf43fa)
- rare crash with link rte element (f5535f6)
- rte upload field population (8327b5a)
- type error in useField (ef4e6d3)
Features
- 🎉 versions, drafts, & autosave!
- #458, provides field hooks with sibling data (8e23a24)
- add before and after login components (#427) (5591eea)
- add logMockCredentials email option (ff33453)
- add pagination argument to optimize graphql relationships and use in local api (#482) (647db51)
- adds a way to customize express.static options (dbb3c50)
- adds admin.upload.collections[collection-name].fields to the RTE to save specific data on upload elements (3adf44a)
- adds indentation controls to rich text (7df50f9)
- adds originalDoc to field access control (c979513)
- adds path to GraphQL errors (#457) (ad98b29)
- adds recursion to richText field to populate relationship and upload nested fields (42af22c)
- allow empty string radio and select option values (#479) (f14e187)
- allows access control to prevent reading of drafts (c38470c)
- allows global access control to return query constraints (c0150ae)
- allows select input to receive new options (#435) (500fb1c)
- builds a way for multipart/form-data reqs to retain non-string values (4efc2cf)
- enhances rich text upload with custom field API (0e4eb90)
- ensures field hooks run on all locales when locale=all (c3f743a)
- exposes data arg within create and update access control (73f418b)
- exposes FieldWithPath type for reuse (df3a836)
- exposes useLocale for reuse (bef0206)
- improves adding rich text voids to RTE (966c3c6)
- improves relationship field performance (13318ff)
- improves rich text link (2e9a4c7)
- indexes filenames (07c8ac0) a79570c))
- rich text indentation (2deed8b)
- serverURL is no longer required (#437) (dca90c4)
- updates dependencies (3ca3f53)
0.14.31-beta.0 (2022-03-10)
Bug Fixes
- improves rich text link (2e9a4c7)
- improves adding rich text voids to RTE (966c3c6)
- rare crash with link rte element (f5535f6)
- ensures empty hasMany relationships save as empty arrays (08b3e8f)
- #422, prevents loading duplicative relationship options (414679d)
- #423, #391 - prevents loading edit views until data initializes (2884654)
- #424, unable to clear localized property vals (1a05fe4)
- #431 - relationship field not properly fetching option results (6fab8bf)
- adds key to RichText based on initialValue (f710b8c)
- awaits beforeDelete hooks (609b871)
- ensures multipart/form-data using _payload flattens field data before sending (ae44727)
- ensures nested lists always render properly (20e5dfb)
- ensures rte upload is populated when only upload is enabled (39438b8)
- import path for createRichTextRelationshipPromise (586cd4d)
- improperly typed local create method (48aa27c)
- mobile styling to not found page (d3f88a1)
- new slate version types (c5de01b)
- rte upload field population (8327b5a)
- type error in useField (ef4e6d3)
- #464, graphql upload access control (fd0629e)
- ensures overrideAccess is false if undefined while populating (97f3178)
Features
- 🎉 versions, drafts, & autosave!
- adds originalDoc to field access control (c979513)
- #458, provides field hooks with sibling data (8e23a24)
- add before and after login components (#427) (5591eea)
- add logMockCredentials email option (ff33453)
- adds a way to customize express.static options (dbb3c50)
- adds admin.upload.collections[collection-name].fields to the RTE to save specific data on upload elements (3adf44a)
- adds indentation controls to rich text (7df50f9)
- adds recursion to richText field to populate relationship and upload nested fields (42af22c)
- allows access control to prevent reading of drafts (c38470c)
- allows global access control to return query constraints (c0150ae)
- allows select input to receive new options (#435) (500fb1c)
- builds a way for multipart/form-data reqs to retain non-string values (4efc2cf)
- enhances rich text upload with custom field API (0e4eb90)
- ensures field hooks run on all locales when locale=all (c3f743a)
- exposes FieldWithPath type for reuse (df3a836)
- exposes useLocale for reuse (bef0206)
- improves relationship field performance (13318ff)
- indexes filenames (07c8ac0)
- serverURL is no longer required (#437) (dca90c4)
- updates dependencies (3ca3f53)
- uses DocumentInfo to fetch and maintain doc versions (8f30c3b)
- exposes data arg within create and update access control (73f418b)
0.14.0 (2022-01-03)
Bug Fixes
- #370, only performs password functions when auth enabled (9738873)
- #390, safari rich text link bug (a16b99b)
- #393, ensures preview button gets up to date data (2f47e39)
- #408 (5c3cfa4)
- #408 (e2c5d93)
- 407 (a09570c)
- allows null in ImageSize width and height types (ba79fd4)
- cross-browser upload drag and drop (4119eec)
- ensures getDataByPath works (140a3aa)
- ensures local findByID retains user (05288ee)
- ensures row count is set properly in block fields (9e091af)
- ensures searching relationships works with many pages of results (961787d)
- globals model typing (da7c0c9)
Features
- builds custom routes API, Before/After Dashboard and Nav custom components (e337c62)
- exports custom text and select inputs (52edb5b)
- exposes default Dashboard and Nav components for re-import (ffe8e17)
0.13.21-beta.0 (2021-12-29)
Bug Fixes
- #370, only performs password functions when auth enabled (9738873)
- #390, safari rich text link bug (a16b99b)
- #393, ensures preview button gets up to date data (2f47e39)
- #408 (5c3cfa4)
- #408 (e2c5d93)
- 407 (a09570c)
- allows null in ImageSize width and height types (ba79fd4)
- cross-browser upload drag and drop (4119eec)
- ensures getDataByPath works (140a3aa)
- ensures local findByID retains user (05288ee)
- ensures row count is set properly in block fields (9e091af)
- ensures searching relationships works with many pages of results (961787d)
- globals model typing (da7c0c9)
Features
- builds custom routes API, Before/After Dashboard and Nav custom components (e337c62)
- exports custom text and select inputs (52edb5b)
- exposes default Dashboard and Nav components for re-import (ffe8e17)
0.13.6 (2021-11-30)
Bug Fixes
- requires path in select, text, textarea, and upload components (925a33e)
0.13.5 (2021-11-30)
Bug Fixes
- select component rendered value (ecabf13)
0.13.4 (2021-11-30)
Bug Fixes
- passes hasMany through select component (c77bf3a)
- prevents uncontrolled text field component (f0fd859)
- select component types (7e2b259)
- threads props through textarea component (0b13eda)
Features
- abstracts input from text component (615e369)
- abstracts select component (fa67137)
- abstracts textarea component and improves event typing (86480b7)
- abstracts upload component (f234f68)
0.13.3 (2021-11-29)
Bug Fixes
- upgrade sharp for prebuilt M1 binaries (34f416a)
0.13.2 (2021-11-29)
Bug Fixes
0.13.1 (2021-11-29)
Bug Fixes
- ensures sorting by _id instead of improper id (ded891e)
Features
- only adds list search query param if value is present (d6d76d4)
0.13.0 (2021-11-26)
Bug Fixes
- #351 (94c2b8d)
- #358 - reuploading with existing filenames (a0fb48c)
- allows sync or async preview urls (da6e1df)
- bug with relationship cell when no doc is available (40b33d9) 3839ef75151f))
- ensures richtext links retain proper formatting (abf61d0)
- ensures that querying by relationship subpaths works (37b21b0)
- ensures uploads can be fetched with CORS (96421b3)
- typing for collection description (bb18e82)
- updates field description type to include react nodes (291c193)
Features
- 🎉 🎉 builds a way to automatically generate types for collections and globals!.
- 🎉 dramatically improves Payload types like local API methods and hooks to function as
generics - adds relationship filter field (463c4e6)
- applies upload access control to all auto-generated image sizes (051b7d4)
- azure cosmos compatibility (6fd5ac2)
- ensures update hooks have access to full original docs even in spite of access control (b2c5b7e)
- improves querying logic (4c85747)
- indexes filenames (5d43262)
- renames useFieldType to useField (0245747)
- supports custom onChange handling in text, select, and upload fields (4affdc3)
0.12.3 (2021-10-23)
Bug Fixes
- #348, relationship options appearing twice in admin ui (b4c15ed)
- ensures tooltips in email fields are positioned properly (a0b38f6)
0.12.2 (2021-10-21)
Bug Fixes
- improves paste html formatting (d443ea5)
0.12.1 (2021-10-21)
Bug Fixes
- rich text copy and paste now saves formatting properly (9d7feb9)
0.12.0 (2021-10-21)
Bug Fixes
- bug where field hooks and access control couuld potentially compete (c35009f)
Features
0.11.2-beta.0 (2021-10-21)
Features
- exposes withCondition for re-use (c02e8f1)
0.11.1-beta.0 (2021-10-20)
Features
- builds UI field (edb723a)
0.11.0 (2021-10-20)
Bug Fixes
- #338, array / block fields with only nested array block fields break admin UI (86e88d9)
- #341 - searching on multiple relationship collections (3b99ded)
- #343 - upload rte element crashes admin when no upload collection present (914cca6)
- make name required on field types (#337) (b257e01)
- more strict field typing (84f6a9d)
- per page now properly modifies search query (fcd9c28)
- properly types row field (7d49302)
- removes node 15 from CI (a2df67e)
- use proper error code on webpack build failure (2eb8154)
Features
- adds dynamic url field to upload-enabled collections (cc4d1fd)
- adds safety checks while querying on id with bad values (900f05e)
- admin: initial per page component (3715e01)
- allows richText enter key break out functionality to be extended in custom elements (ca91f47)
- improves richtext link (423ca01)
- per-page: add pagination to admin config (c132f2f)
- per-page: set and load from preferences (d88ce2d)
- saves active list filters in URL, implements per-page control (a6fc1fd)
0.10.11 (2021-10-08)
Bug Fixes
- bug with local API and not passing array / block data (fd4fbe8)
0.10.10 (2021-10-07)
Bug Fixes
- deepObjectCopy returns Date object instead of empty object (2711729)
0.10.9 (2021-10-05)
Bug Fixes
- ensures field read access within login operation has id (e3229c5)
0.10.8 (2021-10-04)
Bug Fixes
- ensures update field access control receives id (ffab6c4)
0.10.7 (2021-10-04)
Bug Fixes
- ensures non populated relationships still retain IDs (a201109)
- ensures relationship field access control receives id (470d434)
Features
- add indexSortableField option to create indexes for sortable fields on all collections (ad09782)
0.10.6 (2021-09-30)
Bug Fixes
0.10.5 (2021-09-28)
Bug Fixes
- ensures that fields within non-required groups are correctly not required (1597055)
- index creation on localized field parent (23e8197)
- pagination estimatedCount limited to near query (73bd698)
Features
0.10.4 (2021-09-22)
Bug Fixes
- allows image resizing if either width or height is larger (8661115)
- array objects now properly save IDs (2b8f925)
- date field error message position (03c0435)
- properly types optional req in local findByID (02e7fe3)
Features
- defaults empty group fields to empty object (8a890fd)
- allows local update api to replace existing files with newly uploaded ones (dbbff4c)
- exposes Pill component for re-use (7e8df10)
- performance improvement while saving large docs (901ad49)
0.10.0 (2021-09-09)
Bug Fixes
- admin UI collection id is required (dc96b90)
- allow save of collection with an undefined point (f80646c)
- config validation correctly prevents empty strings for option values (41e7feb)
- ensures hooks run before access (96629f1)
- ensures proper order while transforming incoming and outgoing data (c187da0)
- improve id type semantic and restrict possible types to text and number (29529b2)
- remove media directory to improve test run consistency (d42d8f7)
- sanitize custom id number types (c7558d8)
- sort id columns (114dc1b)
Features
- add config validation for collections with custom id (fe1dc0b)
- add config validation for collections with custom id (d0aaf4a)
- add point field type (7504155)
- allows user to pass req through local findByID (8675481)
- frontend polish to point field (64ad6a3)
- graphql support for custom id types (bc2a6e1)
- point field localization and graphql (30f1750)
- replace the collection idType option with an explicit id field (4b70a12)
- support custom ids (3cc921a)
0.9.5 (2021-08-23)
Bug Fixes
0.9.4 (2021-08-06)
0.9.3 (2021-08-06)
Bug Fixes
- args no longer optional in collection and global hooks (a5ea0ff)
0.9.2 (2021-08-06)
Bug Fixes
- row admin type (deef520)
Features
- allow completely disabling local file storage (9661c6d)
- allows upload resizing to maintain aspect ratio (dea54a4)
- exposes auto-sized uploads on payload req (9c8935f)
- reduces group heading from h2 to h3 (907f8fd)
0.9.1 (2021-08-03)
Bug Fixes
- groups with failing conditions being incorrectly required on backend (4cc0ea1)
- relationship field access control in admin UI (65db8d9)
Features
- exposes collection after read hook type (01a191a)
0.9.0 (2021-08-02)
BREAKING CHANGES
- Due to greater plugin possibilities and performance enhancements, plugins themselves no longer accept a completely sanitized config. Instead, they accept a validated config as-provided, but sanitization is now only performed after all plugins have been initialized. By config santitization, we refer to merging in default values and ensuring that the config has its full, required shape. What this now means for plugins is that within plugin code, deeply nested properties like
config.graphQL.mutationswill need to be accessed safely (optional chaining is great for this), because a user's config may not have definedconfig.graphQL. So, the only real breaking change here is are that plugins now need to safely access properties from an incoming config.
Features
- removes sanitization of configs before plugins are instantiated (8af3947)
0.8.2 (2021-08-02)
Bug Fixes
- more advanced conditional logic edge cases (33983de)
Features
- export error types (12cba62)
0.8.1 (2021-07-29)
BREAKING CHANGES
- If you have any plugins that are written in TypeScript, we have changed plugin types to make them more flexible. Whereas before you needed to take in a fully sanitized config, and return a fully sanitized config, we now have simplified that requirement so that you can write configs in your own plugins just as an end user of Payload can write their own configs.
Now, configs will be sanitized before plugins are executed as well as after plugins are executed.
So, where your plugin may have been typed like this before:
import { SanitizedConfig } from 'payload/config'
const plugin = (config: SanitizedConfig): SanitizedConfig => {
return {
...config,
}
}
It can now be written like this:
import { Config } from 'payload/config'
const plugin = (config: Config): Config => {
return {
...config,
}
}
Features
- improves plugin writability (a002b71)
0.8.0 (2021-07-28)
BREAKING CHANGES
-
There have been a few very minor, yet breaking TypeScript changes in this release. If you are accessing Payload config types from directly within the
distfolder, like any of the following: -
import { PayloadCollectionConfig, CollectionConfig } from 'payload/dist/collections/config/types'; -
import { PayloadGlobalConfig, GlobalConfig } from 'payload/dist/globals/config/types'; -
import { Config, PayloadConfig } from 'payload/config';
You may need to modify your code to work with this release. The TL;DR of the change is that we have improved our naming conventions of internally used types, which will become more important over time. Now, we have landed on a naming convention as follows:
- Incoming configs, typed correctly for optional / required config properties, are named
Config,CollectionConfig, andGlobalConfig. - Fully defaulted, sanitized, and validated configs are now named
SanitizedConfig,SanitizedCollectionConfig, andSanitizedGlobalConfig.
They can be imported safely outside of the dist folder now as well. For more information on how to properly import which types you need, see the following Docs pages which have now been updated with examples on how to properly access the new types:
Bug Fixes
- ensures text component is always controlled (c649362)
Features
- revises naming conventions of config types (5a7e5b9)
0.7.10 (2021-07-27)
Bug Fixes
Features
- improves conditional logic performance and edge cases (d43390f)
0.7.9 (2021-07-27)
Bug Fixes
- missing richtext gutter (4d1249d)
Features
- add admin description to collections and globals (4544711)
- add collection slug to schema validation errors (ebfb72c)
- add component support to collection and global description (fe0098c)
- add component support to field description (e0933f6)
- add customizable admin field descriptions (dac60a0)
- add descriptions to every allowed field type, globals and collections (29a1108)
- add global slug and field names to schema validation errors (bb63b4a)
- improves group styling when there is no label (ea358a6)
0.7.8 (2021-07-23)
Features
- fixes group label schema validation (cbac888)
0.7.7 (2021-07-23)
Bug Fixes
- accurately documents the props for the datepicker field (dcd8052)
Features
- only attempts to find config when payload is initialized (266ccb3)
0.7.6 (2021-07-07)
0.7.5 (2021-07-07)
Bug Fixes
- crash on bullet list de-selection (5388513)
- updates demo richtext elements with proper SCSS (0075912)
Features
- adds plugins infrastructure (6b25531)
- enables backspace to deactivate richtext list elements (91141ad)
0.7.4 (2021-07-01)
Bug Fixes
- adds proper scss stylesheets to payload/scss (84e31ae)
0.7.3 (2021-07-01)
Bug Fixes
- changes scss imports to allow vars imports to payload projects (ea80fd6)
Features
- export all field prop types for custom components (5bea9ae)
0.7.2 (2021-06-22)
Bug Fixes
- parses incoming numbers through query string for use in where clauses (4933b34)
- respect maxDepth 0 (95c1650)
- safely stringifies ObjectIDs while populating relationships (d6bc6f9)
Features
- adds maxDepth to relationships and upload fields (880dabd)
0.7.1 (2021-06-21)
Bug Fixes
- babel config file error (3af2554)
0.7.0 (2021-06-21)
Bug Fixes
- handle all scenarios in select cell (dd40ab0)
Features
0.6.10 (2021-05-23)
0.6.9 (2021-05-16)
Bug Fixes
- misc responsive improvements
- date clipping in sidebar (#165)
- misc polish to popup component
- admin _verified field not displaying proper field value
- properly typed express-fileupload config options (#180)
0.6.8 (2021-05-12)
Features
- add mimeTypes validation for uploads (a5fcdf0)
- disables user scalable in mobile (#177) (46c1a36)
- exposes locale within preview function (2d67448)
- restrict upload mime types in file picker (1c6f32f)
0.6.7 (2021-05-07)
Features
- add ability to hide gutter for RichText fields (e791c5b)
- allows group field gutter to be disabled (9aebeaf)
- exposes component types (99466fa)
- shrink image thumbnails on larger screens (e565fa6)
- support global date format (670ccf2)
0.6.6 (2021-04-27)
Bug Fixes
- graphql returns compatible error format (6f188b1)
- handle rich text saving as empty string (382089b)
- removes incoming.data.length check, since data is typed as a keyed array when it is an instance of APIError (2643e1a)
- support image resizing on M1 chip (8cfc039)
- update operation can save password changes (a85bf9e)
0.6.5 (2021-04-22)
Features
0.6.4 (2021-04-21)
Bug Fixes
- allows _verificationToken to come back via showHiddenFields (74430ea)
0.6.3 (2021-04-21)
Bug Fixes
- make admin field properties in joi schema match TS types (519c021)
- properly label arrays/blocks with plural and singular (fa49811)
- safely parses incoming stringified richtext json (9c95c75)
0.6.2 (2021-04-19)
Features
- modifies relationship field to react to changing relationTo (ddf25fb)
0.6.1 (2021-04-19)
Bug Fixes
- cleans up duplicative columns (5f2073a)
- graphql localized relationship bugs (280f809)
- moves enableRichTextRelationship to proper spot (16ca22b)
Features
- sets enableRichTextRelationship to true by default (9970470)
0.6.0 (2021-04-19)
BREAKING CHANGES
- By default, all Collection and Global access control functions are now set to require a user to be logged in to interact through GraphQL or REST APIs. This default access control is set to ensure that your API data is secure out of the box. From there, you can opt to publicly expose API actions as you need.
Migration Instructions to 0.6.x
If you have any Collections or Globals that should be publicly available without being logged in, you need to define an access control function for each operation that needs to be publicly available.
For example, if you have a pages collection with no existing access control, and it should be publicly readable, you should change its config from this:
const Page = {
slug: 'pages',
access: {
// No `read` access control was set
},
}
To:
const Page = {
slug: 'pages',
access: {
// Now we explicitly allow public read access
// to this collection's documents
read: () => true,
},
}
If none of your collections or globals should be publicly exposed, you don't need to do anything to upgrade.
Bug Fixes
- clears richtext element on enter, refocuses on toolbar button click (4b19795)
- ensures api keys are properly populated in admin (4359a70)
- ensures first relationship options are loaded only once (75a5b04)
- searching on relationship fields properly fetches results (b86c3da)
- upload useAsTitle set to filename by default (7db23f8)
Features
- autolabel fields when label is omitted (#42) (b383eb6)
- dynamically populates richtext relationships (3530424)
- improve unique field value error handling (21b2bd4)
- improves margins in rich text elements (20d7a01)
0.5.10 (2021-04-14)
Bug Fixes
- feeds collectionSlug through me auth for graphql resolver (9ee2f9c)
0.5.9 (2021-04-14)
0.5.8 (2021-04-13)
Bug Fixes
- revises graphql import syntax (20f1e6c)
0.5.7 (2021-04-13)
Bug Fixes
- clears verificationToken when _verified is true (e58b152)
- custom query / mutation types (a78fc97)
- ensures email is still prefilled in auth configs (31c41c2)
- ensures failed conditions send path to form (dff72fb)
- handle add/remove labels for all usage of Array field type (ddf5df2)
- make upload cell mimetype inline (414bc01)
- pagination calculation for current range (000dee8)
- updates config schema for graphQL mutations and queries (afc9454)
Features
- auto verifies first user registration (8f720c0)
- optimize save within Edit (91d37fb)
- prevents DraggableSections from re-mounting on doc save (0094837)
- remembers conditional field values after removing / readding (988d0a4)
- remove mimetype from upload cell type (776b9c9)
0.5.5 (2021-04-02)
Features
- allows soft breaks in rich text (ecd277d)
0.5.4 (2021-04-02)
Bug Fixes
0.5.2 (2021-03-31)
Bug Fixes
- modal issues with richtext relationship (8ea4407)
0.5.1 (2021-03-29)
Bug Fixes
- base auth / upload fields no longer cause validation issues (23e1fc3)
0.5.0 (2021-03-29)
BREAKING CHANGES
- changes global find and update payload api from global to slug as the key to find/update with (c71ba2b)
Bug Fixes
- allows absolute urls within adminThumbnail (51b46d4)
- handles empty indices within array field data (d47e2c5)
- moving nested arrays now properly persists row count (5f9a5c8)
- validation consistency within admin (50b9937)
Features
- saves cursor position when relationship element is added to richText (d24b3f7)
0.4.7 (2021-03-15)
0.4.6 (2021-03-14)
Features
- allows admin thumbnail to be set programmatically (b6a9fe4)
- exports collection field hook types from payload/types (36aae5c)
- only runs adminThumbnail func if image type (5e1ddb5)
- provides field access control with document data (339f750)
- reorders uploads to provide beforeChange hooks with upload data (3c42e6e)
0.4.5 (2021-03-04)
Bug Fixes
- config validation allow admin dashboard (2d1d1b4)
0.4.4 (2021-03-04)
Bug Fixes
- email verification template missing token (93ed664)
0.4.1 (2021-03-04)
Documentation
- fixed broken links throughout docs (3afefbe)
0.4.0 (2021-02-28)
Breaking Changes
- reverts preview function to only requiring the return of a preview URL (ca14e66)
Features
- implements new billing model, including new Personal license which is free forever (c97ddeb)
- simplifies logic in update operations (e268e25)
- removes the requirement of returning a value from field hooks (4de5605)
Bug Fixes
- properly exposes scss variables for re-use (c1b2301)
- explicitly sets modal z-index and css breakpoints (c1b2301)
- removes
overwritefrom update operation to ensure hidden fields don't get lost on document update (a8e2cc1)
0.3.0 (2021-02-23)
Bug Fixes
- properly exposes scss variables for re-use (c1b2301)
- explicitly sets modal z-index and css breakpoints (c1b2301)
- removes
overwritefrom update operation to ensure hidden fields don't get lost on document update (a8e2cc1)
0.2.13 (2021-02-20)
Breaking Changes
- Preview function now no longer takes form field state as an arg and instead takes a copy of the document itself
Features
- supports newTab in Button, updates generatePreviewURL api to forward through PreviewButton (6b6297f)
- detaches localization from mongoose entirely (162ec74)
Bug Fixes
- infinite loop caused within block component (9e42d11)
- sets sparse true if field localized and unique (2bc5c59)
- returns entire doc to generatePreviewURL callback of PreviewButton (9b9d0f2)
- log mongoose connect error message (e36c7d2)
Documentation
- removes incorrect hasMany from upload field type (e549298)
0.2.12 (2021-02-1-0)
Bug Fixes
- middleware for cors set up on static files
- windows compatible upload filename paths
0.2.11 (2021-02-05)
Bug Fixes
0.2.11 (2021-02-05)
Features
- allows upload through Local API (1a59028)
Bug Fixes
0.2.10 (2021-02-04)
Features
- add support for setting mongoose connection options (82c4898)
- admin ui create first user add confirm password field (https://github.com/payloadcms/payload/commit/60453fec9ee17e8f83f7e98c5e2b2e39bc6d0365)
Bug Fixes
- flag scss variables with default (8916e8a)
- relationship component hasMany bug (d540706)
- hide force unlock in admin ui when creating auth collection item (3bd0de0)
0.2.9 (2021-01-27)
Bug Fixes
- field validation type can return promise (06ddab1)
0.2.8 (2021-01-25)
Chore
- add bugs and keywords to package.json (37f5b32)
0.2.6 (2021-01-25)
0.2.5 (2021-01-25)
Bug Fixes
0.2.4 (2021-01-24)
Bug Fixes
- block field styles (36f0bd8)
0.2.3 (2021-01-24)
Bug Fixes
- ensures modal heights are 100% of viewport (7edab5d)
0.2.2 (2021-01-24)
Bug Fixes
- revert serverURL config change (f558bd2)
Features
- adds better serverURL validation (75056e2)
Reverts
- Revert "docs: configuration overview describe serverURL and removed from code examples where not needed" (bd446b6)
0.2.1 (2021-01-24)
Features
- exposes further types (e056348)
0.2.0 (2021-01-23)
Bug Fixes
- better error handler when sendMail fails (ea47736)
- button css specificity (d8b5233)
- migrates Condition UI value/operator pattern (d23cc20)
- target es2019, optional chaining not supported for Node < 14 (52a0096)
Features
- adds contributing guidelines (de5bf6e)
- allows admins to autoverify via admin (a6a23e3)
- auto-removes verificationToken upon manual user verify (2139eb4)
- serverURL no longer required in config (4770f24)
0.1.146 (2021-01-18)
Bug Fixes
0.1.145 (2021-01-17)
Bug Fixes
- add minLength and maxLength to textarea field validations (2c98087)
- minLength field validation error messages (5e60b86)
0.1.144 (2021-01-16)
Bug Fixes
- add default user to collections before checking for valid relationships (b2d05c7)
- handle user collection 'auth: true' (c303711)
0.1.143 (2021-01-14)
Bug Fixes
- payload schema validation allow '*' (bd92b0a)
Features
- allows undefined collections (6bb58ce)
0.1.142 (2021-01-09)
Bug Fixes
- adds disableDuplicate to schema validation of collections config (e9ed7ee)
Features
- add getAdminURL and getAPIURL functions (8db73bb)
- adds build to CI (87a1717)
- disable graphQL flag that will bypass gql on payload init (d78c76e)
0.1.141 (2021-01-07)
Bug Fixes
- properly exports ES6 components (f493263)
0.1.140 (2021-01-07)
Bug Fixes
- admin field error messages (423df3f)
0.1.139 (2021-01-06)
Bug Fixes
0.1.138 (2021-01-06)
Bug Fixes
- removes old css (6066f28)
0.1.137 (2021-01-05)
Bug Fixes
- removes prod devtool (6808637)
0.1.136 (2021-01-05)
0.1.135 (2021-01-05)
0.1.134 (2021-01-05)
Bug Fixes
- updates payload-config path within webpack (6bf141c)
0.1.133 (2021-01-05)
0.1.132 (2021-01-05)
Bug Fixes
- renames webpack config alias (c0636df)
0.1.131 (2021-01-05)
0.1.130 (2021-01-05)
0.1.129 (2021-01-05)
0.1.128 (2021-01-05)
Bug Fixes
- adds default thumbnail size (f582a25)
- config validation of block imageURL (c572057)
- default config value for email removed as the property was moved out of config (cf89d4c)
- demo email start on payload init (57d2c86)
- Edit view main / sidebar widths (e067fa1)
- graphQL access (4d871c2)
- graphQL logout (709cc9c)
- improves edit view layout constraints (0f7046b)
- issues with select hasMany (a0bf503)
- lowecases joi like everywhere else in payload (5823a86)
- payload config remove types for email (faec969)
- reinstate explicit labels for AllFields collection (885c73c)
- removes delete and unlock from baseField type and schema (4fa942f)
- removes old reliance on config.email (e093e06)
Features
- allows for refresh operation to accept a deliberately specified token (7d05069)
- types this within crreate op (d43ff8b)
0.1.127 (2020-12-31)
Bug Fixes
- converts class methods to arrow functions (662839f)
0.1.126 (2020-12-30)
Bug Fixes
- adds delete and unlock to joi baseField schema (36d51de)
0.1.125 (2020-12-30)
Bug Fixes
- removes prod source maps (eeea06d)
0.1.124 (2020-12-30)
Bug Fixes
- disable requiring default props in eslint (64cf321)
- disables inline sourcemaps for admin dist (8090b2a)
- type issues that arose from reorganizing certain config props (0c03c2e)
- updates typing on DatePicker component and joi schema (5100fd3)
- webpack config override (8401400)
Features
- allows for adding custom CSS in addition to SCSS overrides (544a4db)
0.1.123 (2020-12-28)
Bug Fixes
- allows config validation to accept esmodules as components (b8ad84c)
- prod webpack publicPath (8bda6ea)
0.1.122 (2020-12-28)
Bug Fixes
Features
0.1.121 (2020-12-27)
0.1.20 (2020-12-27)
Bug Fixes
Features
- improves edit scroll UX in Account and Globals (604922a)
- improves scrolling UX in Edit views (a715a42)
0.1.19 (2020-12-27)
Bug Fixes
- copyfiles, autocomplete transition (5b8c721)
Features
- flattens build into one command (8571dc3)
0.1.18 (2020-12-27)
0.1.17 (2020-12-27)
0.1.16 (2020-12-27)
Bug Fixes
0.1.15 (2020-12-02)
0.1.14 (2020-12-02)
0.1.13 (2020-12-02)
0.1.12 (2020-12-02)
0.1.11 (2020-12-01)
0.1.10 (2020-12-01)
0.1.9 (2020-11-25)
0.1.8 (2020-11-25)
0.1.7 (2020-11-25)
0.1.6 (2020-11-25)
0.1.5 (2020-11-25)
0.1.4 (2020-11-25)
0.1.3 (2020-11-24)
0.1.2 (2020-11-24)
0.1.1 (2020-11-24)
0.1.0 (2020-11-24)
Bug Fixes
- webpack: more require.resolves needed (924eb1d)
- webpack: use require.resolve for modules (badd59a)
- add missing webpack dep path-browserify (8789dae)
Features
- add initial types (983bf71)
0.0.141 (2020-11-20)
0.0.140 (2020-11-20)
Features
- show email creds when explicitly set to 'mock' (dbd305a)
- use react-toastify for notifications (131dd51)
- validate admin user (83d32e4)
0.0.139 (2020-11-17)
Bug Fixes
- missed a file (f52836a)
0.0.138 (2020-11-17)
Bug Fixes
- allow e-mail to be unconfigured, remove default fromName and fromAddress (dceeeaa)
- auth json schema didn't allow auth as boolean (0694a09)
- properly concat verification and locking fields (2624ad5)