Releases: keystonejs/keystone
Release list
19 October 2022 (afternoon)
The following packages have been updated
@keystone-6/core@3.0.1
Bug Fixes
[core]Fixes the inputData field type for FieldCreateItemAccessArgs (#8017) @acburdine
💙 Acknowledgements
Lastly, thanks to @dcousens (#8016) for changes not shown above, but none-the-less appreciated.
19 October 2022
The following packages have been updated
@keystone-6/auth@5.0.0
@keystone-6/cloudinary@5.0.0
@keystone-6/core@3.0.0
@keystone-6/fields-document@5.0.0
Breaking Changes
[core]Changes access-control error messages to only show the list key and operation (#7914) @dcousens[core]Replaces@keystone-6/core/testingexports with{ resetDatabase }, for acontextusegetContextinstead (#7968) @mitchellhamilton[core]Removes@keystone-6/core/artifactsfrom our exports (#7972) @mitchellhamilton[core]RemovesdisconnectfromSessionStrategy(#7971) @mitchellhamilton[core]RemovesisLiveReloadflag fromcreateSystem(#7969) @mitchellhamilton[core]Removes the@graphql-tools/schemawrapping functionsgraphQLSchemaExtensionandgql. Developers should import@graphql-tools/schemathemselves, or usegraphql(as exported by@keystone-6/core). (#7943) @borisno2[core]Removesfiltersexport from@keystone-6/core/types(#7919) @mitchellhamilton[core]Removesexperimental.generateNodeAPI, usegetContextinstead (#7957) @dcousens[core]db.onConnectis now called with an unprivileged context, not sudo. Usecontext.sudo()if you need to bypass access control (#7955) @dcousens[core]Removes the parameters forgetAdminMetawhen writing field types, and the respective typesAdminMetaRootVal,ListMetaRootValandFieldMetaRootValtherein. (#7913) @mitchellhamilton[core]RemovescreateSessionContextexport from@keystone-6/core/session(#7912) @mitchellhamilton[core]Changes default Apollo Server configuration to usecache: "bounded"andpersistedQueries: false(#7888) @mitchellhamilton[core]Changes.accesscontrol onlistto required, with newallowAllanddenyAllfunctions for easy shorthand. (#7848) @Noviny[core]Upgrade tographql@16(#7817) @mitchellhamilton[core]Changes field.viewsmodule resolution, from a path, to a module path that is resolved from wherekeystone startis run (#7805) @mitchellhamilton[core]Changes the return type for theresolveInputhook withjsonfields. Previously you may have used'DbNull'or'JsonNull'as respective null magic values - you can now always use a Javascriptnullvalue.
Unlike previous behaviour, a null value will now consistently map to aPrisma.DbNull. (#7671) @renovate
New Features
[core]Adds[list].graphql.maxTake, a list configuration option to enforce the maximumtakevalue in findMany queries for that list (#7963) @dcousens[core]Adds newgetContextfunction (from@keystone-6/core/context) for working with a Keystone configuration directly (#7954) @dcousens[core]Adds a search input field to the list view, resulting in acontainsquery acrossui.searchFieldsjoined with the list view filters (#7841) @Noviny[core]Adds a newisSingletonproperty for configuring Singleton lists (#7863) @mitchellhamilton
Bug Fixes
[core]Fixes JSON field type view assuming the empty string is equivalent tonull(#7982) @dcousens[auth]Adds type refinement forwithAuthusing a TypeInfo type parameter (#7831) @dcousens[core]Removesexperimental.enableNextJsGraphqlApiEndpoint(#7910) @mitchellhamilton[core]Changed platform compilation to use esbuild, previously used next.js (#7809) @mitchellhamilton[core]Removesprettierfrom formatting the generatedschema.graphql(#7874) @mitchellhamilton
🌱 New Contributors
Thanks to the following developers for making their first contributions to the project!
💙 Acknowledgements
Lastly, thanks to @dcousens (#8012,#7998,#7997,#7995,#7981,#7979,#7973,#7897,#7895,#7894,#7864), @renovate (#8008,#7988,#7976,#7938,#7854,#7892,#7886,#7885,#7868), @flexdinesh (#8004,#8002,#7987,#7994,#7983,#7937,#7813), @mitchellhamilton (#7999,#7990,#7991,#7960,#7951,#7953,#7928,#7921,#7911,#7903,#7882,#7887,#7871,#7872,#7845,#7844), @Tekipeps (#7989), @Noviny (#7941) for changes not shown above, but none-the-less appreciated.
18 October, 2022
The following packages have been updated
@keystone-6/core@2.3.1
Security Updates
We have identified and fixed 1 security vulnerabilities
GHSA-6mhr-52mv-6v6f- The multiselect field is vulnerable to a field-level access-control bypass. We have patched the vulnerability in this release.
Bug Fixes
[core]Fixes the multiselect field type not using the providedlabel,access,graphql,isFilterableorisOrderableconfiguration options (#8007) @marekryb[core]Fixes BigInt values throwing on deserialisation in the item view (#8005) @dcousens
🌱 New Contributors
Thanks to the following developers for making their first contributions to the project!
20 September 2022
The following packages have been updated
@keystone-6/fields-document@4.1.2
Bug Fixes
[fields-document]Fixes a broken code path for conditional component-blocks when fields are missing - this previously resulted in invalid data structures within the document editor (#7922) @mitchellhamilton
15 September 2022
The following packages have been updated
@keystone-6/core@2.3.0
@keystone-6/fields-document@4.1.1
New Features
[core]Fixes return types forcontext.graphqlso that correct types are returned when using aTypedDocumentNode(#7878) @borisno2
Bug Fixes
[fields-document]Fixes expand/collapse button in the editor (#7926) @mitchellhamilton[core]Adds contextualised types when using thegraphqlexport for GraphQL schema extensions (#7877) @dcousens[core]Fixes nullable and non-nullable calendarDay fields existing in the same schema creating a GraphQL schema with two different types with the same name (#7866) @acburdine[core]Fixes types forresolvedData, and the return types forresolveInputhooks. (#7833) @Noviny
🌱 New Contributors
Thanks to the following developers for making their first contributions to the project!
💙 Acknowledgements
Lastly, thanks to @dcousens (#7876,#7839,#7832,#7819), @mitchellhamilton (#7875,#7873,#7847,#7830,#7828,#7818,#7928), @dependabot[bot] (#7869), @renovate[bot] (#7862,#7860,#7826,#7825,#7823,#7824), @renovate (#7721,#7812) and @moselhy (#7843) for changes not shown above, but none-the-less appreciated.
19 August 2022
The following packages have been updated
@keystone-6/auth@4.0.1
@keystone-6/cloudinary@4.0.1
@keystone-6/core@2.2.0
@keystone-6/document-renderer@1.1.1
@keystone-6/fields-document@4.1.0
@keystone-6/session-store-redis@4.0.1
New Features
[core]Addsclifunctions as exports to@keystone-6/core/scripts/cli, assume to be an experimental unstable export and may change in a patch release. (#5645) @gautamsi[core]Adds 'graphql' schema toextendHttpServer. (#7722) @borisno2[core]Adds the ability to set additional Prisma datasource fields in theschema.prismafile, for example,referentialIntegrityby adding options todb.additionalPrismaDatasourceProperties(#7747) @willemmulder[core]Adds http.Server options as configurationserver.options(#7324) @dcousens[core]Adds a newmultiselectfield type (#7683) @Achisingh[core]AddscalendarDayfield to store a date without a time or timezone attached (#7658) @Achisingh[core]Addsui.displayMode: 'radio'as an option for the select field. (#7752) @Achisingh[fields-document]Changes the editors default overflow behaviour to align with other multi-line text inputs, supporting scrolling instead of an unbounded height for the field. (#7729) @Achisingh[core]Adds a newbigIntfield type, an integer of width 8 bytes (64 bits), analogous with Prisma'sBigInt. (#5175) @MurzNN
Bug Fixes
[core]Removes wrong types forresolveInputhooks until actual types are provided (#7801) @dcousens[auth, cloudinary, core, document-renderer, fields-document, session-store-redis]Removes node.enginesrestrictions (#7804) @dcousens[cloudinary, core]Updatesgraphql-uploadto15.0.2(#7803) @mitchellhamilton[core]Fixes environment variablePORT=precedence;PORT=now takes priority over the configuredserver.port(#7787) @dcousens[fields-document]Fixes the document editor erroring when handling HTML in certain cases (#7764) @mitchellhamilton[fields-document]Fixes long lines in code blocks in the document editor overflowing the editor (#7783) @mitchellhamilton[fields-document]Fixes pasting plain text in the document editor removing markdown link definition and usages (#null) @mitchellhamilton[session-store-redis]Fixes errors not being thrown by your@redis/clientonconnect(#7771) @Noviny[fields-document]Adds support for pasting a url onto text to create a link (#7766) @mitchellhamilton[core]Updates@apollo/clientto3.6.9(#7744) @mitchellhamilton[core]Updates@graphql-ts/schemato0.5.3(#7742) @mitchellhamilton[core]Fixes return type offindOneto supportnull, which is returned if no item is found (#7731) @nderkim
🚨 Security Updates
We have identified and fixed 1 upstream security vulnerability
CVE-2022-24434- An upstream transitive dependencydiceris vulnerable to a complete denial-of-service attack. We have upgraded to a version ofgraphql-uploadpackage to a version that doesn't usedicer.
🌱 New Contributors
Thanks to the following developers for making their first contributions to the project!
💙 Acknowledgements
Lastly, thanks to @mitchellhamilton (#7786,#7785,#7784,#7769,#7745), @renovate (#7797,#7798,#7670,#7780,#7781,#7779,#7755,#7487,#7725), @dcousens (#7713,#7743,#7739,#7730), @Noviny (#7770), @Achisingh (#7757), @dependabot (#7728) for changes not shown above, but none-the-less appreciated.
14 July 2022
The following packages have been updated
@keystone-6/fields-document@4.0.1
Bug Fixes
[fields-document]Updates slate and slate-react to ^0.81.1 (#7701) @mitchellhamilton[fields-document]Fixes inline relationships being removed when loading/saving an item in the Admin UI (#7685, #7700) @mitchellhamilton
Acknowledgements 💙
Thanks to @Skulek (#7695) for their first contribution to the project.
30 June 2022
30 June 2022
Feature release.
@keystone-6/core@2.1.0
@keystone-6/auth@4.0.0
@keystone-6/cloudinary@4.0.0
@keystone-6/fields-document@4.0.0
@keystone-6/session-store-redis@4.0.0
Adds MySQL Support
Keystone now supports MySQL by setting mysql in your db.provider see pull request #7538 for further information.
Admin UI Improvements
- ➕ Adds
ui.descriptionfor fields to show a description below the label in the Admin UI - #7578 - ➕ Adds the ability to set ambiguous plurals - like
FirmwareorShrimp- as list names without receiving an error. This builds on the existinggraphql.pluralconfiguration by adding the configuration options ofui.label,ui.singular,ui.pluralandui.pathto change the auto-generated names of lists used in the Admin UI #7657 - Fixes the inconsistent spacing in the Admin UI on relationships fields using the cards display mode - #7616
- Fixes the semantic-based browser input behaviour for inline create and edit forms on relationship fields when using the cards display mode - #7629
- Fixes the layout and component block floating toolbars from being shown behind other elements - #7604
- Moves the remove button in component block array fields from inside a menu on the drag handle to the right of the drag handle - #7626
- Fixes the document editor from breaking when the underlying schema for a component has a new field added. Please note that new fields will still be missing for existing data when fetched from GraphQL - #7674
- Changes segmented control to not show a clear button if
isRequiredis set - #7639 Thanks @u-ishii
Other Improvements ✨
- ➕ Changes the
cloudinaryImageGraphQL output type to be exported for developer usage, for example in virtual fields - #7607 Thanks @mmachatschek! - ➕ Adds support for Prisma's
shadowDatabaseUrloption withdb.shadowDatabaseUrl. Your Prisma schemas will now always includeshadowDatabaseUrl = env("SHADOW_DATABASE_URL"), though usingdb.shadowDatabaseUrlis optional - #7350 Thanks @chelkyl and @jlarmstrongiv! - ➕ Adds support for BigInt autoincrement id fields with
idField: { kind: 'autoincrement', type: 'BigInt' }- #7188 Thanks @MurzNN! - Fixes for
graphQLSchemaExtension, custom resolvers, if replacing default resolvers, were previously broken - #7644 - ➕ Adds
db.nativeTypeoption to thetextfield to customise the database type - #7538 - Fixes the generation of an invalid Prisma schema when
{field}.isIndexed: trueand{field}.db.mapare set - #7666 Thanks @TonnyORG!
Acknowledgements 💙
Big shoutout to the following community members for their help in improving our documentation with their contributions:
Thanks to @mmachatschek (#7607), @ratson (#7627), @chelkyl (#7350) and @u-ishii (#7639) for making their first contributions to the project!
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect with Keystone on Twitter and in Slack.
Verbose Changelog 📜
You can also view the verbose changelog or compare via GitHub since 2022-06-09
9 June 2022
🦋 @keystone-ui/button@7.0.0
🦋 @keystone-ui/core@5.0.0
🦋 @keystone-ui/fields@7.0.0
🦋 @keystone-ui/icons@6.0.0
🦋 @keystone-ui/loading@6.0.0
🦋 @keystone-ui/modals@6.0.0
🦋 @keystone-ui/notice@6.0.0
🦋 @keystone-ui/options@6.0.0
🦋 @keystone-ui/pill@7.0.0
🦋 @keystone-ui/popover@6.0.0
🦋 @keystone-ui/segmented-control@7.0.0
🦋 @keystone-ui/toast@6.0.0
🦋 @keystone-ui/tooltip@6.0.0
🦋 @keystone-6/auth@3.0.0
🦋 @keystone-6/cloudinary@3.0.0
🦋 @keystone-6/core@2.0.0
🦋 @keystone-6/document-renderer@1.1.0
🦋 @keystone-6/fields-document@3.0.0
🦋 @keystone-6/session-store-redis@3.0.0
New Features
Array Fields and Components Blocks
Warning: This new feature includes breaking changes that may affect you
Changes to the underlying document-editor component block interfaces, with the addition of array fields. The breaking changes are only for defining components, no database migration is needed.
The breaking changes for @keystone-6/fields-document/component-blocks are:
⚠️ For the arguments of thecomponentfunction, renamecomponenttopreview⚠️ For the arguments of thecomponentfunction, renamepropstoschema⚠️ For your component.schema(previously.props), renameprops.{innerFieldName}toprops.fields.{innerFieldName}.⚠️ When rendering child field React components, changeprops.{innerFieldName}toprops.{innerFieldName}.element.
For example, use props.fields.title instead of props.title.
For a nested example, use props.fields.someObject.fields.title instead of props.someObject.title.
See pull request #7428 for information on how to upgrade and solutions to common problems. If you have any other questions, please don't hesitate to open a GitHub discussion.
Images and Files
Warning: This new feature includes breaking changes that may affect you
The image and files configuration options have been removed from Keystone's configuration, and a new storage configuration object introduced.
- ➕ Amazon S3 (and other compatible providers) are now supported when uploading images and files
- ➕ New Guide coming - see #7563 will be merged soon but check it out if you are keen
- 🚨 Images and files are now - DELETED BY DEFAULT from the underlying storage provider when replaced or deleted from the database
-
Note: A
preserveflag has been added to the new storage configurations to default back to the previous behaviour
-
⚠️ If you were previously using refs in your application, you need to migrate your database
See pull request #7070 for information on how to upgrade and solutions to common problems.
If you have any other questions, please don't hesitate to open a GitHub discussion.
Other Improvements
Major Dependency Upgrades
If you can't upgrade your dependencies for any reason and you think Keystone might be able to help, please open a GitHub discussion so we can try and help you.
React 18.1.0
We have updated React to version 18 (pull request #7410).
Redis 4
Our @keystone-6/session-store-redis package has been upgraded to use @redis/client@v1.1.0/redis@4.1.0 (pull request #7051).
Configuration
Added support for body-parser options when configuring GraphQL #7591
Admin UI
The following changes include a number of accessibility and quality of life improvements for users of the admin interface.
- List descriptions now display in the Admin UI - #7537
- Fixed the viewport sometimes shifting when opening the date picker in the create drawer - #7543
- Removed all Keystone Links, i.e. API explorer, GitHub repository and Keystone documentation, from the popover and replacing the popover button with Sign out button in production - #7546
- Fixed document editor preventing tabbing out of the editor - #7547
- The label shown for a text field in the Admin UI is now associated with the input so the label can be read by screen readers - #7548
- The document editor label is now associated with the editable element so the label can be read by screen readers - #7549
- Fixed z-index issues occurring when pop-overs in document editor text-area or the toolbar overlapped other fields and buttons - #7556
- Alert dialogs are now centered in the Admin UI - #7561
- The reset changes button on the item view now presents a confirmation modal before resetting changes and it has been moved to the right of the bottom bar so it is next to the delete button. - #7562
- Fixed splitting text with marks/inlines into multiple list items when turning a paragraph into a list and splitting a single list item with marks/inlines into multiple paragraphs when turning a list into paragraphs - #7565
- Replaced create item drawer with a page when creating an item from the list view or dashboard - #7594
- Fixed the Admin UI crashing when saving an item with a relationship field using the cards display mode when another item is added to the relationship (e.g. by another user or a hook) since the item was initially loaded - #7598
Could not find prisma-fmt binaries
A number of users have reported problems with the Prisma binaries not being installed properly by their package manager.
As part of pull request #7595 the Prisma binaries are now downloaded just before they're needed.
Note this should not happen in production, they should still be downloaded before as part of your deployment step.
Acknowledgements
Big shoutout to the following community members for their help in improving our documentation with their contributions:
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect with Keystone on Twitter and in Slack.
Changelog
You can also view the verbose changelog in this pull request.
12 May 2022
Maintenance release.
"@keystone-6/core": "1.1.1"
"@keystone-6/fields-document": "2.0.1"Core changes ⚙️
- Fixed decimal
validation.minnot being respected andvalidation.maxbeing used as the min if provided.
Admin UI – quality of life improvements ✨
- The Admin UI now prompts users to confirm they want to navigate away when there are unsaved changes.
- Fixed the JSON field not showing any formatting when the field mode is read-only
- Updated the list page to show the reset to default button when any sorting, or other field value filters are provided
- Updated the styling for the relationship select to be less confusing when the field mode is read-only
- Improvements to the document editor toolbar:
- the toolbar is now hidden when the field mode is read-only
- fixed a z-index issue
- Fixed read only view for segmented control display mode in the select field. When a segmented-control select field is in read mode, the values no longer appear editable.
Dependencies ⬆️
- Upgrade react-day-picker to v8
New team members 🥳
We’re proud to announce that two new members have joined the team:
- @Achi06 is a Software Developer who focuses on Front End. Achi has worked as an Angular Developer for HCL at Coles, an on several government projects including TAC and Queensland Health.
- @borisno2 – the author behind the Keystone next auth plugin is now an official part of team Keystone. An awesome example of the power of OSS communities 💙
If you’re an AU or NZ based developer or designer looking to work on projects like Keystone, feel free to send your CV through to us at Thinkmill.
Community Contributors
- Thanks @moselhy! - Fixed React key warning when showing GraphQL errors
- Thanks @MurzNN! - Added sandbox configs for all examples, so now all our examples can be launched on the codesandbox.io service. Give it a try in our blog example 🚀
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
Changelog
You can also view the verbose changelog in this pull request.