This page defines the user-extensible vocabulary for flexible content tagging and organization. User keywords are configuration-driven and defined in config/app-default-config.json under ngdpbase.userKeywords.
User Keywords is part of Page Metadata Documentation
"ngdpbase.maximum.user-keywords": 5
| Label | Description | Category | Enabled | Restrict Editing | Allowed Roles |
|---|---|---|---|---|---|
anthropology |
Human culture and society content | subject | Yes | No | - |
default |
Default keyword with no special restrictions | general | Yes | No | - |
draft |
Work in progress content | status | Yes | No | - |
economics |
Economic and financial content | subject | Yes | No | - |
geology |
Geological and earth science content | subject | Yes | No | - |
medicine |
Medical and healthcare-related content | subject | Yes | No | - |
meteorology |
Weather and atmospheric science content | subject | Yes | No | - |
oceanography |
Ocean and marine science content | subject | Yes | No | - |
political-science |
Political science and governance content | subject | Yes | No | - |
psychology |
Psychological and behavioral science content | subject | Yes | No | - |
published |
Finalized and approved content | status | Yes | No | - |
review |
Content under review | status | Yes | No | - |
sociology |
Social science and society-related content | subject | Yes | No | - |
"ngdpbase.maximum.user-keywords": 5
Showing Current User Keywords
| Label | Description | Category | Enabled | Restrict Editing | Allowed Roles |
|---|---|---|---|---|---|
anthropology |
Human culture and society content | subject | Yes | No | - |
default |
Default keyword with no special restrictions | general | Yes | No | - |
draft |
Work in progress content | status | Yes | No | - |
economics |
Economic and financial content | subject | Yes | No | - |
geology |
Geological and earth science content | subject | Yes | No | - |
medicine |
Medical and healthcare-related content | subject | Yes | No | - |
meteorology |
Weather and atmospheric science content | subject | Yes | No | - |
oceanography |
Ocean and marine science content | subject | Yes | No | - |
political-science |
Political science and governance content | subject | Yes | No | - |
psychology |
Psychological and behavioral science content | subject | Yes | No | - |
published |
Finalized and approved content | status | Yes | No | - |
review |
Content under review | status | Yes | No | - |
sociology |
Social science and society-related content | subject | Yes | No | - |
Each user keyword has the following properties:
| Property | Type | Description |
|---|---|---|
label | string | The keyword value used in metadata user-keywords array |
description | string | Human-readable description of the keyword's purpose |
category | string | Grouping category (e.g., "general", "access", "status", "subject") |
enabled | boolean | Whether the keyword is active and available for use |
restrictEditing | boolean | If true, restricts who can edit pages with this keyword |
allowedRoles | array | Roles allowed to edit (only used if restrictEditing is true) |
schemaOrg | string | Optional schema.org type mapping for semantic web |
User keywords are used in the user-keywords frontmatter field as an array:
---
title: Example Medical Research Page
system-category: documentation
user-keywords:
- medicine
- research
- published
slug: medical-research-example
---
ngdpbase.maximum.user-keywords)| Aspect | System Categories | User Keywords |
|---|---|---|
| **Field** | system-category | user-keywords |
| **Format** | Single value (string) | Multiple values (array) |
| **Purpose** | Storage location control | Content tagging & classification |
| **Effect** | Determines /pages/ or /required-pages/ | No storage effect for most keywords — exception: private moves the page to a private location |
| **Configuration** | ngdpbase.systemCategories | ngdpbase.userKeywords |
| **Maximum** | 1 required | Up to 5 optional |
| **Extensibility** | Admin-controlled | User-extensible (Editor+ can propose) |
---
title: Introduction to Oceanography
system-category: documentation # ← Single category (WHERE to store)
user-keywords: # ← Multiple keywords (WHAT it's about)
- oceanography
- geology
- published
slug: intro-oceanography
---
The backend reads ngdpbase.userKeywords configuration to:
The ValidationManager can validate user keywords:
Users with Editor role or higher can propose new keywords:
**Keyword**: astronomy
**Category**: subject
**Description**: Astronomy and space science content
**Reason**: We have 15 pages about astronomy with no appropriate keyword
**Schema.org Mapping**: (optional) AstronomicalObject
>
Note: Statistics tracking not yet implemented - Future Enhancement
If migrating from a different keyword system: