Skip to content

Releases: keystonejs/keystone

✨ Release - 20th April 2021

12 May 03:19
1a40d72
Compare
Choose a tag to compare

What's New

Improvements to the Lists API

To make the Lists API (i.e context.lists.{List}) more intuitive to use, we deprecated the resolveFields option in favour of two new methods 🔧:

1. Specify a string of fields to return with the new query option:

Use this when you want to query for resolved field values (including querying relationships and virtual fields). This replaces the resolveFields: false use case. Now you can query a Post like so:

const [post] = await context.lists.Post.findMany({
  where: { slug },
  query: `
    title
    content
    image {
      src
      width
      height
    }`,
});

2. Return the unresolved item data with read hooks

This replaces the resolveFields: boolean use case. We now have a new set of APIs on context.db.lists.{List} which return unresolved item data from your database (but with read hooks applied). They can be referenced directly or returned from a custom mutation or query in the GraphQL API to be handled by the Field resolvers.

For example, to query for the raw data stored in the database:

const [post] = await context.db.lists.Post.findMany({
  where: { slug },
});

Enjoying Keystone?

Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.


View verbose release notes

Releases

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-ui/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Patch Changes

@keystone-next/[email protected]

Major Changes

  • #5397 a5627304b Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.

Minor Changes

Patch Changes

  • #5451 9e060fe83 Thanks @JedWatson! - With the goal of making the Lists API (i.e context.lists.{List}) more intuitive to use, the resolveFields option has been deprecated in favor of two new methods:

    (1) You can specify a string of fields to return with the new query option, when you want to query for resolved field values (including querying relationships and virtual fields). This replaces the resolveFields: false use case.

    For example, to query a Post you would now write:

    const [post] = await context.lists.Post.findMany({
      where: { slug },
      query: `
        title
        content
        image {
          src
          width
          height
        }`,
    });

    (2) Alternatively, there is a new set of APIs on context.db.lists.{List} which will return the unresolved item data from the database (but with read hooks applied), which can then be referenced directly or returned from a custom mutation or query in the GraphQL API to be handled by the Field resolvers. This replaces the resolveFields: boolean use case.

    For example, to query for the raw data stored in the database, you would write:

    const [post] = await context.db.lists.Post.findMany({
      where: { slug },
    });
  • #5366 115b06130 Thanks @renovate! - Updated Next.js dependency to ^10.1.3.

  • Updated dependencies [9e060fe83, [3d3fb860f](3d3fb860faa303cbfe7...

Read more

✨ 6th April 2021

12 May 03:18
af79d91
Compare
Choose a tag to compare

What's New

Controlled code demolition 🏗️ 👷‍♀️

We pruned a lot of code from the Keystone garden – cutting out the dead wood to make way for a more efficient and productive core in Keystone 6. Notable changes include:

  • Removed Keystone‘s DB adapters and the db.adapter config option (now that Keystone 6 uses Prisma under the hood).
  • Said goodbye to a bunch of redundant methods and arguments for the same reasons as above.
  • Exchanged deploy, reset and generate commands for keystone-next prisma e.g:
    • keystone-next deploy -> keystone-next prisma migrate deploy

Better pagination in Admin UI ⏭️ ✨

Pagination in the Admin UI has fresh styles and is easier to use.

Enjoying Keystone?

Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.


View verbose release notes

Releases

@keystone-next/[email protected]

Major Changes

  • #5266 c28e765d1 Thanks @mitchellhamilton! - Updated Next API route template to use createSystem without the dotKeystonePath argument and import from the new Prisma Client location.

Minor Changes

Patch Changes

@keystone-next/[email protected]

Major Changes

Patch Changes

@keystone-next/[email protected]

Major Changes

Patch Changes

Read more

✨ 30th March 2021

12 May 03:17
beba2a1
Compare
Choose a tag to compare

What's New

Goodbye legacy code 👋 🌇

We removed a few legacy items including:

  • Field types CalendarDay, DateTime, Slug, Url, and Uuid.
  • Arguments cookieSecret, cookie, and sessionStore from the Keystone constructor.
  • Arguments schemaName, schemaNames, keystoneOptions, and graphqlOptions were unused and have been removed from the setupServer() function (which we also removed).

Improved select field type 🔽

It now uses the correct underlying type, which lets you make use of { dataType: 'enum' } and { dataType: 'integer'}.

Squashed bugs 🐛

We fixed a bug that existed in updateMany on lists with declarative access control.

Enjoying Keystone?

Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.


View verbose release notes

Releases

@keystone-next/[email protected]

Major Changes

Patch Changes

@keystone-next/[email protected]

Major Changes

  • #5192 9e78d8818 Thanks @timleslie! - Removed views export, which was used to provide functionality to the legacy Admin UI.

Patch Changes

@keystone-next/[email protected]

Major Changes

  • #5244 0e1487385 Thanks @timleslie! - Removed the legacy arguments adminDoc and adminConfig, and the method extendAdminMeta.

  • #5193 eb39fa37d Thanks @timleslie! - Removed views export, which was used to provide functionality to the legacy Admin UI.

Patch Changes

@keystone-next/[email protected]

Major Changes

  • #5192 9e78d8818 Thanks @timleslie! - Removed views export, which was used to provide functionality to the legacy Admin UI.

Patch Changes

@keystone-next/[email protected]

Major Changes

@keystone-next/[email protected]

Major Changes

Read more

✨ 23rd March 2021

12 May 03:15
f2804d1
Compare
Choose a tag to compare

What's New

Added support for SQLite with Prisma 🎉

You can now use SQLite to store your data via Prisma. The SQLite rollout also includes support for the File and Cloudinary field types.

Noteworthy bug-squashing 🐛

Mitchell solved a bug where withItemData returned sessions that don't match an item, rather than treating them as invalid.

Enjoying Keystone?

Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.


View verbose release notes

Releases

@keystone-next/[email protected]

Major Changes

Patch Changes

@keystone-next/[email protected]

Minor Changes

Patch Changes

@keystone-next/[email protected]

Minor Changes

@keystone-next/[email protected]

Minor Changes

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

✨ 22nd March 2021

12 May 03:08
7fb3d36
Compare
Choose a tag to compare

What's New

Prisma migrations 🚚

  • We updated keystone-next dev with the Prisma adapter so that it interactively prompts for creating and applying migrations.
  • createKeystone and createSystem also accept a migration mode now instead of a script.
  • keystone-next generate now uses Prisma's programmatic APIs to generate migrations and it accepts the following options as command line arguments or as prompts:
    • --name to set the name of the migration
    • --accept-data-loss to allow resetting the database when it is out of sync with the migrations
    • --allow-empty to create an empty migration when there are no changes to the schema.

Noteworthy bug-squashing 🐛

Now you can include negative values for float, decimal and integer fields. 🎉

Enjoying Keystone?

Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.


View verbose release notes

Releases

@keystone-next/[email protected]

Major Changes

Patch Changes

@keystone-next/[email protected]

Major Changes

  • #5087 56e5fe10b Thanks @mitchellhamilton! - Updated createKeystone and createSystem to accept a migration mode rather than script

  • #5135 cdd889db1 Thanks @mitchellhamilton! - Updated keystone-next dev with the Prisma adapter so that it interactively prompts for creating and applying a migration

  • #5163 b37cbffc8 Thanks @mitchellhamilton! - Added db.useMigrations option to replace using keystone-next dev and keystone-next prototype depending on what kind of migration strategy you want to use. If you were previously using keystone-next dev, you should set db.useMigrations to true in your config and continue using keystone-next dev. If you were previously using keystone-next prototype, you should now use keystone-next dev.

  • #5155 215aed387 Thanks @mitchellhamilton! - Removed createOnly migration mode

  • #5163 b37cbffc8 Thanks @mitchellhamilton! - Replaced MigrationMode type with MigrationAction that createSystem and createKeystone now accept.

Minor Changes

  • #3946 8e9b04ecd Thanks @timleslie! - Added experimental support for Prisma + SQLite as a database adapter.

  • #5102 714bdadce Thanks @mitchellhamilton! - Added none-skip-client-generation migrationMode

  • #5148 e6b16d4e9 Thanks @mitchellhamilton! - Updated keystone-next deploy to use Prisma's programmatic APIs to apply migrations

  • #5155 215aed387 Thanks @mitchellhamilton! - Changed keystone-next generate so that it uses Prisma's programmatic APIs to generate migrations and it accepts the following options as command line arguments or as prompts:

    • --name to set the name of the migration
    • --accept-data-loss to allow resetting the database when it is out of sync with the migrations
    • --allow-empty to create an empty migration when there are no changes to the schema
  • #5084 40d4fff5d Thanks @timleslie! - Updated context.sudo() to provide access to all operations, including those excluded by { access: false } in the public schema.

  • #5152 00f980cad Thanks @mitchellhamilton! - Updated keystone-next reset to use Prisma's programmatic APIs to reset the database.

  • #4912 d31acf61b Thanks @timleslie! - Added a config.graphql.apolloConfig option to allow developers to configure the ApolloServer object provided by Keystone.

Patch Changes

  • #5099 bfeb927be Thanks @timleslie! - Updated context.graphql.raw and context.graphql.run to use the GraphQL function graphql rather than execute. This function performs more rigorous query validation before executing the query.

  • #5096 b7ce464a2 Thanks @timleslie! - Updated items API to handle static false access control.

  • #5150 3a9d20ce1 Thanks @timleslie! - Applied eslint import/order rule.

  • #5152 00f980cad Thanks @mitchellhamilton! - Fixed keystone-next reset saying that it is not a command that keystone-next accepts

  • Updated dependencies [1eeac4722, [8e9b04ecd]...

Read more