Skip to content

GroupField

Defined in: packages/core/src/fields/group/types.ts:119

Resolved configuration for a group() field, after all defaults are applied.

This is the type field input components and validator functions receive. interfaceType is a computed TypeScript object-type string built from the sub-fields (e.g. "{ title: string; description?: string }"), used by generateVexTypes to emit accurately-typed document interfaces.

  • GroupFieldInput for the user-facing input type
  • group for the config function that produces this type

TCollectionSlug extends VexResourceSlug = VexResourceSlug

TFieldMeta extends object = { }

admin: GroupFieldAdminConfig<TCollectionSlug>

Defined in: packages/core/src/fields/group/types.ts:129

Resolved admin UI configuration with all defaults applied.

BaseField.admin


defaultValue: Record<string, unknown>

Defined in: packages/core/src/fields/group/types.ts:146

Pre-filled value shown when creating a new document.

BaseField.defaultValue


optional description?: string

Defined in: packages/core/src/fields/baseTypes.ts:585

Semantic description of the field. Used in three places:

  1. Helper text rendered below the field input in the admin form UI.
  2. As the Zod .meta({ description }) value for form validation.
  3. As the JSDoc comment on the generated document interface property.

To write a separate JSDoc comment, use interfaceDescription in addition.

BaseField.description


fields: Record<string, AdminField>

Defined in: packages/core/src/fields/group/types.ts:136

Sub-fields that form the object’s shape.

Each sub-field retains its own required, label, and admin settings. Convex and Zod validators are generated per-field respecting those settings.


optional index?: ResolvedFieldIndexConfigInput

Defined in: packages/core/src/fields/baseTypes.ts:589

Convex index name for this field, or the object form for a compound index.

BaseField.index


optional interfaceDescription?: string

Defined in: packages/core/src/fields/baseTypes.ts:587

The JSDoc comment on the generated document interface property

BaseField.interfaceDescription


optional interfaceName?: string

Defined in: packages/core/src/fields/group/types.ts:144


interfaceType: string

Defined in: packages/core/src/fields/group/types.ts:143

Computed TypeScript object-type string for generateVexTypes.

Built from sub-fields in group() — e.g. "{ title: string; description?: string }". Automatically reflects nested groups or arrays within the sub-fields.

BaseField.interfaceType


label: string

Defined in: packages/core/src/fields/group/types.ts:125

Display label shown in the admin form. Always set — inferred from field key if not provided.

BaseField.label


meta: TFieldMeta

Defined in: packages/core/src/fields/baseTypes.ts:592

BaseField.meta


required: boolean

Defined in: packages/core/src/fields/group/types.ts:127

Whether this field is required in the database schema.

BaseField.required


readonly type: "group"

Defined in: packages/core/src/fields/group/types.ts:123

optional validate(props): void | Promise<void>

Defined in: packages/core/src/fields/group/types.ts:148

Server-only async validation with value typed as Record<string, unknown>.

FieldValidateProps<TCollectionSlug, Record<string, unknown>>

void | Promise<void>

FieldValidate

BaseField.validate