Skip to content

Releases: keystonejs/keystone

19 October 2022 (afternoon)

Choose a tag to compare

@dcousens dcousens released this 19 Oct 03:52
1b49306

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

Choose a tag to compare

@dcousens dcousens released this 18 Oct 22:54
f2ca4d1

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/testing exports with { resetDatabase }, for a context use getContext instead (#7968) @mitchellhamilton
  • [core] Removes @keystone-6/core/artifacts from our exports (#7972) @mitchellhamilton
  • [core] Removes disconnect from SessionStrategy (#7971) @mitchellhamilton
  • [core] Removes isLiveReload flag from createSystem (#7969) @mitchellhamilton
  • [core] Removes the @graphql-tools/schema wrapping functions graphQLSchemaExtension and gql. Developers should import @graphql-tools/schema themselves, or use graphql (as exported by @keystone-6/core). (#7943) @borisno2
  • [core] Removes filters export from @keystone-6/core/types (#7919) @mitchellhamilton
  • [core] Removes experimental.generateNodeAPI, use getContext instead (#7957) @dcousens
  • [core] db.onConnect is now called with an unprivileged context, not sudo. Use context.sudo() if you need to bypass access control (#7955) @dcousens
  • [core] Removes the parameters for getAdminMeta when writing field types, and the respective types AdminMetaRootVal, ListMetaRootVal and FieldMetaRootVal therein. (#7913) @mitchellhamilton
  • [core] Removes createSessionContext export from @keystone-6/core/session (#7912) @mitchellhamilton
  • [core] Changes default Apollo Server configuration to use cache: "bounded" and persistedQueries: false (#7888) @mitchellhamilton
  • [core] Changes .access control on list to required, with new allowAll and denyAll functions for easy shorthand. (#7848) @Noviny
  • [core] Upgrade to graphql@16 (#7817) @mitchellhamilton
  • [core] Changes field .views module resolution, from a path, to a module path that is resolved from where keystone start is run (#7805) @mitchellhamilton
  • [core] Changes the return type for the resolveInput hook with json fields. Previously you may have used 'DbNull' or 'JsonNull' as respective null magic values - you can now always use a Javascript null value.
    Unlike previous behaviour, a null value will now consistently map to a Prisma.DbNull. (#7671) @renovate

New Features

  • [core] Adds [list].graphql.maxTake, a list configuration option to enforce the maximum take value in findMany queries for that list (#7963) @dcousens
  • [core] Adds new getContext function (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 a contains query across ui.searchFields joined with the list view filters (#7841) @Noviny
  • [core] Adds a new isSingleton property for configuring Singleton lists (#7863) @mitchellhamilton

Bug Fixes

🌱 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

Choose a tag to compare

@dcousens dcousens released this 17 Oct 23:09
d5d0828

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 provided label, access, graphql, isFilterable or isOrderable configuration 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

Choose a tag to compare

@dcousens dcousens released this 20 Sep 06:30
fbbc24c

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

Choose a tag to compare

@dcousens dcousens released this 15 Sep 06:36

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 for context.graphql so that correct types are returned when using a TypedDocumentNode (#7878) @borisno2

Bug Fixes

  • [fields-document] Fixes expand/collapse button in the editor (#7926) @mitchellhamilton
  • [core] Adds contextualised types when using the graphql export 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 for resolvedData, and the return types for resolveInput hooks. (#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

Choose a tag to compare

@dcousens dcousens released this 18 Aug 23:24
610fdbd

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] Adds cli functions 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 to extendHttpServer. (#7722) @borisno2
  • [core] Adds the ability to set additional Prisma datasource fields in the schema.prisma file, for example, referentialIntegrity by adding options to db.additionalPrismaDatasourceProperties (#7747) @willemmulder
  • [core] Adds http.Server options as configuration server.options (#7324) @dcousens
  • [core] Adds a new multiselect field type (#7683) @Achisingh
  • [core] Adds calendarDay field to store a date without a time or timezone attached (#7658) @Achisingh
  • [core] Adds ui.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 new bigInt field type, an integer of width 8 bytes (64 bits), analogous with Prisma's BigInt. (#5175) @MurzNN

Bug Fixes

  • [core] Removes wrong types for resolveInput hooks until actual types are provided (#7801) @dcousens
  • [auth, cloudinary, core, document-renderer, fields-document, session-store-redis] Removes node .engines restrictions (#7804) @dcousens
  • [cloudinary, core] Updates graphql-upload to 15.0.2 (#7803) @mitchellhamilton
  • [core] Fixes environment variable PORT= precedence; PORT= now takes priority over the configured server.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/client on connect (#7771) @Noviny
  • [fields-document] Adds support for pasting a url onto text to create a link (#7766) @mitchellhamilton
  • [core] Updates @apollo/client to 3.6.9 (#7744) @mitchellhamilton
  • [core] Updates @graphql-ts/schema to 0.5.3 (#7742) @mitchellhamilton
  • [core] Fixes return type of findOne to support null, 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 dependency dicer is vulnerable to a complete denial-of-service attack. We have upgraded to a version of graphql-upload package to a version that doesn't use dicer.

🌱 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

Choose a tag to compare

@dcousens dcousens released this 14 Jul 04:12
6cadee4

The following packages have been updated

@keystone-6/fields-document@4.0.1

Bug Fixes

Acknowledgements 💙

Thanks to @Skulek (#7695) for their first contribution to the project.

30 June 2022

Choose a tag to compare

@dcousens dcousens released this 30 Jun 03:41
14c59c1

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.

⚠️ There are some differences in how Postgres and MySQL operate so be sure to checkout our new choosing the right database guide.

Admin UI Improvements

  • ➕ Adds ui.description for fields to show a description below the label in the Admin UI - #7578
  • ➕ Adds the ability to set ambiguous plurals - like Firmware or Shrimp - as list names without receiving an error. This builds on the existing graphql.plural configuration by adding the configuration options of ui.label, ui.singular, ui.plural and ui.path to 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 isRequired is set - #7639 Thanks @u-ishii

Other Improvements ✨

  • ➕ Changes the cloudinaryImage GraphQL output type to be exported for developer usage, for example in virtual fields - #7607 Thanks @mmachatschek!
  • ➕ Adds support for Prisma's shadowDatabaseUrl option with db.shadowDatabaseUrl. Your Prisma schemas will now always include shadowDatabaseUrl = env("SHADOW_DATABASE_URL"), though using db.shadowDatabaseUrl is 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.nativeType option to the text field to customise the database type - #7538
  • Fixes the generation of an invalid Prisma schema when {field}.isIndexed: true and {field}.db.map are 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

Choose a tag to compare

@dcousens dcousens released this 09 Jun 00:37
51f3a22
🦋  @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 the component function, rename component to preview
  • ⚠️ For the arguments of the component function, rename props to schema
  • ⚠️ For your component .schema (previously .props), rename props.{innerFieldName} to props.fields.{innerFieldName}.
  • ⚠️ When rendering child field React components, change props.{innerFieldName} to props.{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 preserve flag 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

Choose a tag to compare

@dcousens dcousens released this 12 May 06:47
0d3337a

Maintenance release.

"@keystone-6/core": "1.1.1"
"@keystone-6/fields-document": "2.0.1"

Core changes ⚙️

  • Fixed decimal validation.min not being respected and validation.max being 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.