Core Concepts
Field Types
All available field types for collection schemas, with validation options and JSON configuration.
Field Types
Each field in a collection schema has a name, type, and optional validation and type-specific configuration.
Text
{
"name": "title",
"type": "text",
"validation": {
"required": true,
"min_length": 3,
"max_length": 100
}
}Number
{
"name": "price",
"type": "number",
"validation": {
"required": true,
"min": 0
}
}Boolean
{
"name": "published",
"type": "bool",
"validation": {
"required": false
}
}{
"name": "contact_email",
"type": "email",
"validation": {
"required": true
}
}URL
{
"name": "website",
"type": "url",
"validation": {
"required": false
}
}Date
{
"name": "publish_date",
"type": "date",
"validation": {
"required": false
}
}Select
{
"name": "status",
"type": "select",
"select": {
"values": ["draft", "published", "archived"],
"max_select": 1
},
"validation": {
"required": true
}
}Relation
{
"name": "category",
"type": "relation",
"relation": {
"collection_id": "categories_collection_id",
"type": "many-to-one",
"cascade_delete": false,
"display_fields": ["id", "name"]
},
"validation": {
"required": false
}
}File
{
"name": "image",
"type": "file",
"file": {
"max_files": 1,
"max_size": 5242880,
"mime_types": ["image/jpeg", "image/png", "image/gif"],
"thumbs": ["100x100", "500x500"]
},
"validation": {
"required": false
}
}JSON
{
"name": "metadata",
"type": "json",
"validation": {
"required": false
}
}Editor (Rich Text)
{
"name": "content",
"type": "editor",
"validation": {
"required": false
}
}Geopoint
Stores a geographic coordinate with latitude, longitude, and optional altitude.
{
"name": "location",
"type": "geopoint",
"geopoint": {
"include_altitude": false
},
"validation": {
"required": false
}
}Stored value:
{
"lat": 40.7128,
"lng": -74.0060,
"alt": null
}Supports distance-based queries and proximity filtering.
Autodate
Automatically records a timestamp when a record is created or updated. Unlike date, this field is managed by FastCMS — not user-submitted.
{
"name": "published_at",
"type": "autodate",
"autodate": {
"on_create": true,
"on_update": false
}
}| Option | Description |
|---|---|
on_create | Stamp the current time when the record is first created |
on_update | Refresh the timestamp every time the record is saved |
Set both to true to track "last touched" timestamps (similar to the built-in updated field, but scoped to specific events).
Summary
| Type | Description | Searchable |
|---|---|---|
text | Plain text string | ✓ |
number | Integer or float | — |
bool | Boolean true/false | — |
email | Email with format validation | ✓ |
url | URL with format validation | ✓ |
date | Date or datetime | — |
select | Dropdown with predefined values | — |
relation | Reference to another collection | — |
file | File upload with optional thumbnails | — |
json | Arbitrary JSON data | — |
editor | Rich text / markdown | ✓ |
geopoint | Lat/lng coordinate with optional altitude | — |
autodate | Auto-managed timestamp on create/update | — |