# Column Configuration

Defines site columns (fields) that can be reused across document libraries and content types.

Referenced by: SiteCfg.Columns, DocLibCfg.Columns, ContentTypeCfg.Columns.

# Overview

ColumnCfg defines a SharePoint field/column with its type, validation rules, display format, and default values. Columns are created at the site level and can be added to multiple libraries and content types.

# Applied when

Site columns are created when:

  • The parent SiteCfg is provisioned and references this column via Columns array
  • OR a DocLibCfg references this column via Columns array (creates library-scoped column)
  • OR a ContentTypeCfg references this column via Columns array (adds column to content type)
  • Applied during site or library provisioning; columns are created before they are assigned to content types or added to libraries
  • Retroactive changes to column properties (field type, validation rules) may require manual SharePoint administration or column re-creation

# Core settings

# Name

Type: string | Required: Yes

Unique name used in configuration references to identify this column.

Example: "MatterCode", "ClientName"

# Group

Type: string | Required: No

Field group for UI organization in SharePoint forms and settings.

Example: "Matter Information", "Client Details"

# Title

Type: string | Required: Yes

Display name shown in the UI and column headers.

# Description

Type: string | Required: No

Field description shown in item forms and column settings.

# FieldType

Type: enum | Required: Yes

Data type of the column. Common types: Text, Note, Integer, Number, DateTime, Choice, MultiChoice, Lookup, User, UserMulti, Boolean, Calculated, Taxonomy, Computed.

# Required

Type: bool | Required: No | Default: false

Make the field required. Users must provide a value when creating or editing items.

# EnforceUniqueValues

Type: bool | Required: No

Enforce unique values across items in the library or list. Only applies to indexed fields. When enabled, SharePoint prevents duplicate values in this column.

# DefaultValue

Type: string | Required: No

Default value for new items when created. Special behavior for Boolean fields: If this property is empty or null for a Boolean column, it is automatically set to "Yes".

# Indexed

Type: bool | Required: No

Create an index on this column for faster queries and filtering. Enable for columns frequently used in views, filters, or lookups.

# Hidden

Type: bool | Required: No | Default: false

Hide from the UI (useful for system columns that should not be edited directly by users).

# Text and number columns

# TextMaxLength

Type: int | Required: No | C#: TextMaxLength | Configurator: "MaxLength"

Maximum length for text columns. Valid range: 1–255 characters. When set, users cannot enter more than this many characters.

# Note/rich text columns

# UnlimitedLength

Type: bool | Required: No | Configurator: "Unlimited Length"

Allow unlimited text length in document libraries. When enabled, users can enter text of any length. When disabled, SharePoint enforces a limit (typically 255 characters for standard note fields).

# NumberOfLines

Type: int | Required: No | Configurator: "Number of lines"

Number of text input lines displayed in forms. Controls the height of the text input box. Typical values: 3–10 for short notes, 10–20 for rich text.

# Lookup columns

# LookupListName

Type: string | Required: Conditional | Configurator: "ListName"

Name of the source list for lookup values. Required when FieldType = Lookup. The lookup column retrieves values from this list. The list must exist in the same site or a specified site.

Example: "Clients", "MatterTypes"

# LookupFieldName

Type: string | Required: Conditional | Configurator: "FieldName"

Field in the source list to display or link to. Required when FieldType = Lookup. Must match a column name in the list specified by LookupListName. This is the field value shown to users.

Example: "Title", "ClientCode"

# LookupAllowMultipleValues

Type: bool | Required: No | Default: false | Configurator: "AllowMultipleValues"

Allow multiple selections from the lookup list. When enabled, users can select multiple items. When disabled, users can select only one item.

# Calculated columns

# CalculatedFormula

Type: string | Required: Conditional | Configurator: "Formula"

Formula expression for calculated fields. Required when FieldType = Calculated. Uses SharePoint field formula syntax.

Example: =[Field1]+[Field2], =UPPER([Title]), =TODAY()

# CalculatedOutputType

Type: enum | Required: No | Configurator: "Output Type"

Output type of the calculated result. Valid values: Text, Number, Currency, DateTime, Boolean. Determines how the result is displayed and formatted.

# DefaultFormula

Type: string | Required: No

Alternative formula name or expression. Rarely used; CalculatedFormula is the standard approach.

# Computed columns

FieldType: Computed references a SharePoint-managed built-in field (e.g., FileSizeDisplay, FileLeafRef). These fields are created and maintained by SharePoint itself — provisioning does not create or modify them.

During provisioning, the field is looked up in the SharePoint list at runtime. If the field does not exist in the list, provisioning throws an InvalidOperationException.

Example:

{
  "Name": "FileSizeDisplay",
  "FieldType": "Computed"
}

Note: Properties such as Required, DefaultValue, and validation rules have no effect on Computed columns.

# Taxonomy/managed metadata columns

# TaxonomyTermset

Type: string | Required: Conditional | Configurator: "Termset"

Termset name for managed metadata columns. Required when FieldType = Taxonomy. Must reference an existing term set in the managed metadata service.

Example: "Locations", "Document Classification"

# TaxonomyTermGroup

Type: string | Required: Conditional | Configurator: "Termgroup"

Term group name that contains the termset. Required when FieldType = Taxonomy. Provides the scope for the termset lookup.

# DateTime columns

# DateTimeFriendlyDisplayFormat

Type: enum | Required: No | Configurator: "Friendly Display Format"

Display format for relative date display. Valid values: Unspecified, Relative, Standard.

  • Unspecified — No special formatting
  • Relative — Displays as relative time (e.g., "2 days ago", "3 weeks from now")
  • Standard — Standard date format

# DateTimeFieldFormatType

Type: enum | Required: No | Configurator: "Display Format"

Format type for the datetime field. Valid values: DateTime (date and time), DateOnly (date only).

Note: This affects how values are displayed and input in forms.

Last Updated: 4/23/2026, 10:40:37 AM