Skip to content
KeystoneJS LogoKeystoneJS
👋🏻 Keystone 5 has officially moved to maintenance only. For the latest release of Keystone please visit the Keystone website.

byTracking Plugin

Add createdBy and updatedBy fields to a list. These fields are read-only but they will be updated automatically when items are created or updated.


const { byTracking } = require('@keystonejs/list-plugins');

keystone.createList('ListWithPlugin', {
  fields: {...},
  plugins: [


createdByFieldStringcreatedByName of the createdBy field.
updatedByFieldStringupdatedByName of the updatedBy field.
refStringUserA reference to the list authenticated items (users).
accessObjectSee: accessChange default access controls.


By default access control on at tracking fields is read only:

  read: true,
  create: false,
  update: false

Granular control

If you prefer, you can import either createdBy or updatedBy to apply a single tracking field:

const { createdBy, updatedBy } = require('@keystonejs/list-plugins');

Note: The API is the same for each export as byTracking.

On this page

  • Usage
  • Config
  • access
  • Granular control
Edit on GitHub