You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keystone JS 6:如何为列表的id字段添加访问控制

在Keystone JS 6中为自动生成的id字段配置访问控制

Keystone默认自动生成的id字段不会显式出现在列表的fields配置里,直接设置访问控制找不到对应入口。解决方法是显式声明id字段,覆盖默认配置的同时指定访问规则:

  • 根据你schema.prisma中id的类型(默认是UUID,也可能是自增整数),选择对应字段类型(uuid()或autoincrement())
  • 在列表的fields中显式定义id字段并配置access规则

示例代码(UUID类型id)

import { list } from '@keystone-6/core';
import { text, uuid } from '@keystone-6/core/fields';

export const YourListName = list({
  fields: {
    id: uuid({
      access: {
        read: () => true,
        update: () => false,
      },
      // 保持与自动生成id一致的核心属性
      isIndexed: 'unique',
      defaultValue: { kind: 'uuid' },
    }),
    // 其他业务字段示例
    title: text({ validation: { isRequired: true } }),
  },
});

若id为自增整数类型

把uuid()替换为autoincrement()即可:

id: autoincrement({
  access: {
    read: () => true,
    update: () => false,
  },
  isIndexed: 'unique',
}),

配置完成后,id字段会开放读取权限,同时完全禁止更新操作,匹配你需要的规则。

内容的提问来源于stack exchange,提问作者Daria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:55:20