Skip to content

Releases: keystonejs/keystone

✨ 11th May 2021

13 May 00:08
984e406
Compare
Choose a tag to compare

What's New

A bunch of admin UI tweaks in this release 🖥️, among other minor fixes. We also have the initial stages of a new blog example and a sweet new admin UI logo.

Enjoying Keystone?

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


View verbose release notes

Releases

@keystone-next/[email protected]

Minor Changes

Patch Changes

@keystone-ui/[email protected]

Patch Changes

  • #5642 dbe831976 Thanks @malitov! - Added hover state to the OptionPrimitive in Admin UI and updated css colors

@keystone-ui/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

Read more

✨ Release - 5th May 2021

12 May 03:21
cf59312
Compare
Choose a tag to compare

What's New

Aside from dependency updates 😴, we added an isIndexed config option to the text, integer, float, select, and timestamp field types.

If you look closely you’ll see the core team working on example projects to share Keystone some best-practices. Keep an eye out for those in the not too distant future 🔮.

Enjoying Keystone?

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


View verbose release notes

Releases

@keystone-next/[email protected]

Minor Changes

  • #5616 3d3894679 Thanks @timleslie! - Added an isIndexed config option to the text, integer, float, select, and timestamp field types.

Patch Changes

@keystone-next/[email protected]

Minor Changes

Patch Changes

@keystone-next/[email protected]

Minor Changes

  • #5616 3d3894679 Thanks @timleslie! - Added an isIndexed config option to the text, integer, float, select, and timestamp field types.

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Patch Changes

@keystone-next/[email protected]

Major Changes

  • #5591 44c1f9494 Thanks @timleslie! - Simplified the Todo application to just the basics to allow other examples to build on it.

Patch Changes

@keystone-ui/[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

Read more

✨ 3rd May 2021

12 May 03:20
3f5ee97
Compare
Choose a tag to compare

What's New

This release involved a bunch of busywork behind the scenes in Keystone Next 🔧. Stripping away all the things we don't need now that we're using Prisma exclusively. The end of the cleanup is in sight, and we're getting closer to the point where we can start working on some great new features.

Files in Keystone Next 📁. Now you can use Admin UI to upload local files to your repo using SQLite. We also added a maxFileSize property for easier project config.

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

  • #5578 f7d4c9b9f Thanks @mitchellhamilton! - Replaced mode field on ImageFieldOutput GraphQL type with making ImageFieldOutput an interface and having a LocalImageFieldOutput type that implements ImageFieldOutput.

  • #5582 49dd46843 Thanks @gwyneplaine! - Changed image ref to now be ${mode}:image:${id}.

Minor Changes

Patch Changes

@keystone-next/[email protected]

Major Changes

Minor Changes

Patch Changes

@keystone-next/[email protected]

Major Changes

Minor Changes

Read more

✨ 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