Understanding where and how pages are stored in GeoHazardWatch.
GeoHazardWatch uses two directories for page storage, determined by the system-category field in page metadata:
data/pages/ - User-generated content (default)required-pages/ - System and documentation pagesWhen you save a page, the system:
system-category from page metadatastorageLocation in configuration---
title: My Page
system-category: documentation # Determines storage location
uuid: abc123-...
---
required-pages/ DirectoryCategories with storageLocation: "required":
| Category | Description | Examples |
|---|---|---|
| **system** | System infrastructure | LeftMenu, Footer, PageIndex |
| **documentation** | Official documentation | User guides, Help pages |
Characteristics:
data/pages/ DirectoryCategories with storageLocation: "regular":
| Category | Description | Examples |
|---|---|---|
| **general** | General pages (default) | Articles, knowledge base |
Characteristics:
docs/ Directory (GitHub Only)Categories with storageLocation: "github":
| Category | Description |
|---|---|
| **developer** | Developer documentation, technical specs |
These pages exist only in the GitHub repository's docs/ folder and cannot be created through the platform interface.
On first run:
required-pages/ contents to data/pages/On existing systems:
required-pages/ serves as the source repositoryrequired-pages/data/pages/required-pages/ contains the canonical system pagesrequired-pages/ without affecting user modifications in data/pages/Every page needs proper Frontmatter metadata:
---
title: Page Title # Required
uuid: 7682c617-555f-4322-9820-c8ae5a89ca37 # Auto-generated
system-category: documentation # Determines storage
user-keywords: # Searchable tags
- keyword1
- keyword2
slug: page-title # URL-friendly name
author: Your Name # Page creator
lastModified: '2025-10-16T20:05:00.000Z' # Auto-updated
---
# Page Content Here
| Field | Purpose | Example |
|---|---|---|
title | Display name | "Page Storage Guide" |
uuid | Unique ID (filename) | 7682c617-555f-4322-... |
system-category | Storage location | documentation, system, general |
user-keywords | Search tags | ["storage", "guide"] |
slug | URL name | page-storage-guide |
---
title: User Guide
system-category: documentation
user-keywords:
- documentation
- guide
author: Technical Writer
---
# User Guide
Official documentation content...
Result: Saved to required-pages/[uuid].md
---
title: My Project Notes
system-category: general
user-keywords:
- project
- notes
author: john.doe
---
# My Project Notes
Personal notes and documentation...
Result: Saved to data/pages/[uuid].md
To move a page to a different directory:
system-category field# Before (in data/pages/)
system-category: general
# After (in required-pages/)
system-category: documentation
A: No. Always change the system-category and let the system handle routing.
A: Page will use the default category (general) and save to data/pages/.
A: UUIDs provide:
A: View the page and check the "More Information" section to see its UUID, then look for [uuid].md in the appropriate directory.
Storage locations are configured in config/app-default-config.json:
{
"ngdpbase.system-category": {
"documentation": {
"label": "documentation",
"description": "End-User documentation",
"storageLocation": "required",
"enabled": true
},
"system": {
"label": "system",
"description": "System configuration and infrastructure pages",
"storageLocation": "required",
"enabled": true
},
"general": {
"label": "general",
"description": "General pages",
"storageLocation": "regular",
"default": true,
"enabled": true
}
}
}
./server.sh restartstorageLocationrequired-pages/ and requires admin accessgeneral, save, then deleteDo:
Don't:
ngdpbase/
├── data/
│ └── pages/ # User-generated content
│ ├── 1a2b3c4d-5e6f-7890-abcd.md # General article
│ └── 2b3c4d5e-6f78-90ab-cdef.md # User notes
│
└── required-pages/ # System & documentation
├── 110fc9ee-90ca-4e6d-b6fa.md # LeftMenu (system)
├── 443c95f1-0b21-494a-b712.md # FootnoteExample (docs)
└── 7682c617-555f-4322-9820.md # This page (docs)
See Page Metadata Documentation for metadata field details, system-category for category configuration, and Frontmatter for the page metadata format.