The most powerful headless CMS for Node.js — built with GraphQL and React

Overview


A scalable platform and CMS to build Node.js applications.

schema => ({ GraphQL, AdminUI })


Keystone Next is a preview of the next major release of KeystoneJS, the most powerful headless content management system around.

Looking for Keystone 5? Head over to keystone-5.

Contents

What's new?

Keystone Next is a preview of the next major release of KeystoneJS, the most powerful headless content management system around. We've substantially rewritten the CLI, Schema config, and Admin UI to make them more powerful and easier to use than ever before.

To learn more, check out our What's next for KeystoneJS announcement post.

You can learn more about the next version, which is now in preview.

Keystone 5

The Keystone 5 codebase is now in active maintenance mode and now lives at keystonejs/keystone-5.

For more information please read our Keystone 5 and beyond post.

Documentation

The Keystone Next website contains a documentation preview.

In the next month you'll see a new project starter and getting started guide, as well as a new set of example projects demoing how to use Keystone Next features.

Feedback

We'd love to hear your feedback, reach out on Twitter at KeystoneJS and subscribe to be notified of our progress.

Code of Conduct

KeystoneJS adheres to the Contributor Covenant Code of Conduct.

License

Copyright (c) 2021 Thinkmill Labs Pty Ltd. Licensed under the MIT License.

Issues
  • Original filename of uploaded file to image/file fields is not kept

    Original filename of uploaded file to image/file fields is not kept

    Bug report

    Describe the bug

    When file is uploaded to Keystone item, file name are regenerated: For images it becomes as uuid like this: 7bcf91af-14f2-4cca-98b1-f8c1b0c593e7.jpg For files - the unique suffix is added, like this: original-file-name-2y8Q9jrq0mGxW7DE1.pdf And there is no information in database are stored about original filename of uploaded file!

    To Reproduce

    1. Upload file or image with original file name.
    2. Lookup the file name and all other fields in database - you will not see your original file name!

    Expected behaviour

    File name should be stored at least in database as some field, even if we store the file in directory using uniqueized filename! And we should show it in Admin UI instead of generated one.

    System information

    • Keystone at commit 7a7f3f6d063a58fb7627dbec3be237b4d7e6e26f
    opened by MurzNN 0
  • Delete action in file / image filelds stays the file in filesystem directory non-deleted

    Delete action in file / image filelds stays the file in filesystem directory non-deleted

    Bug report

    Describe the bug

    When I attach new file to file field and saves, it successfully appears in files directory. But when I delete the file via Keystone Admin UI, the connection of item with file is deleted, but the file stays in filesystem.

    To Reproduce

    1. Launch the examples-staging/assets-local example.
    2. Create new Post item and attach some image to it.
    3. Check the public/images directory - file must appear.
    4. Edit this Post item and press "Remove" button, Save changes.
    5. Check the public/images directory - file is still here.
    6. Attach this file again to this item, save.
    7. Check the directory - you will see two files with same content.

    Expected behaviour

    Removed files should be deleted from filesystem too, not only the link in database.

    System information

    • Keystone at commit 7a7f3f6d063a58fb7627dbec3be237b4d7e6e26f
    opened by MurzNN 0
  • Error when typing quickly into Relationship field

    Error when typing quickly into Relationship field

    When typing too quickly in a relationship select field, the following error pops up:

    error

    From Steven Jones:

    Hi :wave: I've noticed that if I type too quickly when selecting an item, the attached error pops up. If I type slowly then it's fine.

    Adapted and paraphrased from Keystone Community Slack - https://keystonejs.slack.com/archives/C01STDMEW3S/p1631004679268600

    issue/community issue/category/admin-ui 
    opened by bladey 0
  • Update patch dependencies (patch)

    Update patch dependencies (patch)

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @next/mdx | ^11.1.0 -> ^11.1.2 | age | adoption | passing | confidence | | @types/fs-extra | ^9.0.12 -> ^9.0.13 | age | adoption | passing | confidence | | @types/jest | ^27.0.1 -> ^27.0.2 | age | adoption | passing | confidence | | @types/react | ^17.0.22 -> ^17.0.24 | age | adoption | passing | confidence | | @types/react-select | ^4.0.17 -> ^4.0.18 | age | adoption | passing | confidence | | fp-ts | ^2.11.2 -> ^2.11.3 | age | adoption | passing | confidence | | next (source) | ^11.1.0 -> ^11.1.2 | age | adoption | passing | confidence | | node-fetch | ^2.6.3 -> ^2.6.5 | age | adoption | passing | confidence | | nodemailer (source) | ^6.6.3 -> ^6.6.5 | age | adoption | passing | confidence | | strip-ansi | ^6.0.0 -> ^6.0.1 | age | adoption | passing | confidence |


    Release Notes

    gcanti/fp-ts

    v2.11.3

    Compare Source

    vercel/next.js

    v11.1.2

    Compare Source

    Core Changes
    • chore: upgrade styled-jsx to 4.0.1: #​28626
    • getServerSideProps should support props value as Promise: #​28607
    • Ensure custom app regex is correct for Windows: #​28631
    Credits

    Huge thanks to @​huozhi and @​kara for helping!

    v11.1.1

    Compare Source

    Core Changes
    • Next.js swc publish flow: #​27984
    • Ensure config file message is only shown once: #​28017
    • Add missing fields to NextConfig type: #​27974
    • use a shared worker pool for collecting page data and static page generation: #​27924
    • Use @​next scope for native packages: #​28046
    • Fix generateBuildId type that can be async function: #​28040
    • Fix image optimization encoding url: #​28045
    • Clean up Document in preparation for streaming: #​28032
    • Render as a concatenation of streams: #​28082
    • Add support for dynamic HTML: #​28085
    • Support suspense in next dynamic: #​27611
    • Handle blob urls in image component: #​27975
    • Bypass webpack compilation for precompiled @​next/polyfills-nomodule: #​27596
    • Update util to 0.12.4: #​27939
    • Remove duplicate doctypes: #​28089
    • Fix revalidate for initial notFound: true paths: #​28097
    • Add proper error when failing to load next.config.js: #​28099
    • Fix: wrong link error message: #​28127
    • Add support for Jaeger trace target: #​28129
    • Enable pure client suspense in blocking rendering: #​28165
    • Add entrypoint tracing: #​25538
    • Add module type to build-module trace: #​28128
    • Update to latest babel versions: #​28174
    • Improve jaeger traces: #​28168
    • fix development mode bug with pages with "+" and other special characters: #​28122
    • let loaders automatically infer source map setting: #​28204
    • Avoid fs write next-env.d.ts on read-only filesystems: #​28206
    • Document usage of suspense option of next/dynamic: #​28210
    • Add warning when parent styles break next/image: #​28221
    • Use zen-observable library: #​28214
    • Fix HMR when custom _app or _document is removed: #​28227
    • Add relationship between issuer and module to traces: #​28192
    • Update generating next-server dependencies: #​28223
    • Fix next/image blur placeholder when JS is disabled: #​28269
    • Ensure adding _app/_document HMRs correctly: #​28279
    • upgrade webpack to 5.51.1: #​28291
    • [ESLint] Adds process.exit to next lint success output: #​28299
    • Fix next env vars injection in dynamic: #​28309
    • Add layout to data-nimg attribute: #​28312
    • Add data attribute to script component: #​28310
    • Ensure @​babel/core is de-duped when nccing: #​28384
    • Fix forked NODE_OPTIONS except for inspect: #​28420
    • [ESLint] Enable caching by default: #​28349
    • Update test config to leverage swc: #​28400
    • Add missing typescript property to NextConfig: #​28459
    • next/script fix duplicate scripts : #​28428
    • Ensure error is shown correctly for empty headers field: #​28430
    • Add default trace format that is exported automatically: #​28461
    • Update i18n locales limit to warning: #​28429
    • Fix handling for 204 status code with a body: #​28479
    • Update warning when parent styles break next/image: #​28517
    • Support for functional Document components: #​28515
    • Ensure dev server side errors are correct: #​28520
    • Add CSP to Image Optimization API: #​28620
    Documentation Changes
    • Fix incorrect error manifest path: #​27970
    • Add testing docs: #​27965
    • [DOCS] Update testing docs: #​28064
    • [ESLint] Disallow