The VariablesPlugin displays all system and contextual variables available on the platform — including application settings, user context, and registered plugins — useful for building diagnostic or information pages. See Plugins for a complete list of available plugins.
[{VariablesPlugin}] renders as:
| Variable Name | Current Value | Description |
|---|---|---|
[{$appname}] |
GeoHazardWatch |
Application name (alias) |
[{$applicationname}] |
GeoHazardWatch |
Application name from configuration |
[{$version}] |
3.46.1 |
ngdpbase version number |
[{$baseurl}] |
https://geohazardwatch.com |
Base URL for the wiki |
[{$uptime}] |
21h 39m 14s |
Server uptime |
[{$totalpages}] |
133 |
Total number of pages in wiki |
| Variable Name | Your Current Value | Description |
|---|---|---|
[{$pagename}] |
Using VariablesPlugin |
Current page name |
[{$username}] |
Anonymous |
Current user's name |
[{$loginstatus}] |
Not logged in |
User authentication status |
[{$userroles}] |
Anonymous, All |
User's assigned roles |
[{$date}] |
6/6/2026 |
Current date |
[{$time}] |
2:43:43 AM |
Current time |
[{$timestamp}] |
2026-06-06T02:43:43.413Z |
Current ISO timestamp |
[{$year}] |
2026 |
Current year |
[{$month}] |
6 |
Current month |
[{$day}] |
6 |
Current day |
[{$displayname}] |
Anonymous User |
User's display name |
[{$useragent}] |
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected]) |
Browser user agent string |
[{$browser}] |
Unknown Browser |
Browser name and version |
[{$clientip}] |
::ffff:10.42.0.147 |
Client IP address |
[{$referer}] |
Direct |
HTTP referer |
[{$sessionid}] |
Coo9nDl7polrMBZ8WZ1z3VYM6vuahcMD |
Session identifier |
[{$acceptlanguage}] |
Unknown |
Accept-Language header |
| Plugin Name | Description | Version | Author |
|---|---|---|---|
[{AppHealthPlugin}] |
Deterministic app-health audit: orphan pages, broken links, stale pages | 1.0.0 | ngdpbase |
[{ATTACH}] |
Renders wiki attachments inline. Images display as clickable thumbnails; other files display as download links. | 1.0.0 | Unknown |
[{AttachmentsPlugin}] |
Shows total attachment count or a list of attachments | 1.0.0 | ngdpbase |
[{CommentsPlugin}] |
Displays page comments and a submission form for authenticated users | 1.0.0 | ngdpbase |
[{ConfigAccessorPlugin}] |
Access configuration values including roles, features, and system settings | 2.9.0 | ngdpbase |
[{CounterPlugin}] |
Maintains page-specific counters for numbering and tracking | 1.0.0 | ngdpbase |
[{CurrentTimePlugin}] |
Displays current date and time with user locale/timezone preferences | 1.0.0 | ngdpbase |
[{EarthquakeList}] |
No description | N/A | Unknown |
[{EarthquakeMap}] |
No description | N/A | Unknown |
[{FootnotesPlugin}] |
Lists footnote definitions from sidecar storage with editor CRUD UI | 2.0.0 | ngdpbase |
[{HansAlerts}] |
No description | N/A | Unknown |
[{Image}] |
Renders an image with optional caption, alignment, and display mode control | N/A | Unknown |
[{IndexPlugin}] |
Generates an alphabetical index of all wiki pages | 1.0.0 | ngdpbase |
[{InsertPlugin}] |
Embed another wiki page (or one section of it) into the current page | 1.0.0 | ngdpbase |
[{Location}] |
Display locations with map links and embedded previews | 1.0.0 | ngdpbase |
[{MarqueePlugin}] |
CSS scrolling text banner (marquee replacement) | 1.0.0 | ngdpbase |
[{MediaGallery}] |
Displays a gallery of media items (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MediaItem}] |
Embeds a single media item inline (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MediaPlugin}] |
Shows total media item count, a list, or a thumbnail album of indexed media items | 1.2.0 | ngdpbase |
[{MediaSearch}] |
Displays media search results (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MyContributionsPlugin}] |
Renders the My Contributions card from /profile on any wiki page | 1.0.0 | ngdpbase |
[{MyLinksPlugin}] |
Renders the current user's pinned My Links sidebar section | 1.0.0 | ngdpbase |
[{PageSlideshowPlugin}] |
Bootstrap 5 carousel cycling through wiki page content | 1.0.0 | ngdpbase |
[{RecentChangesPlugin}] |
Displays recent page changes in chronological order | 2.0.0 | ngdpbase |
[{ReferringPagesPlugin}] |
Lists pages that refer to the current page | 1.0.0 | ngdpbase |
[{SearchPlugin}] |
JSPWiki-style search plugin for embedding search results in pages | 2.0.0 | ngdpbase |
[{SessionsPlugin}] |
Shows active session count or list of authenticated users | 2.0.0 | ngdpbase |
[{SlideshowPlugin}] |
Bootstrap 5 image carousel / slideshow | 1.0.0 | ngdpbase |
[{TablePlugin}] |
JSPWiki-compatible Table plugin — enables # auto-numbering in table rows | 1.0.0 | ngdpbase |
[{TabPlugin}] |
Defines a tab within [{Tabs}]; rendering is handled by TabsPlugin | 1.0.0 | ngdpbase |
[{TabsPlugin}] |
Renders Bootstrap nav-tabs from [{Tab name="..."}]content[{/Tab}] body blocks | 1.0.0 | ngdpbase |
[{TotalPagesPlugin}] |
Shows the total number of pages | 1.0.0 | ngdpbase |
[{UndefinedPagesPlugin}] |
Lists pages that are linked to (RED-LINKs) but do not exist | 1.2.0 | ngdpbase |
[{UptimePlugin}] |
Shows the server uptime | 1.0.0 | ngdpbase |
[{UserLookupPlugin}] |
Search and display users — permission-gated PII via API | 1.0.0 | ngdpbase |
[{VariablesPlugin}] |
Displays system and contextual variables available in the wiki | 1.0.0 | ngdpbase |
[{VolcanoInfobox}] |
No description | N/A | Unknown |
[{VolcanoList}] |
No description | N/A | Unknown |
[{VolcanoMap}] |
No description | N/A | Unknown |
[{VolcanoSearch}] |
No description | N/A | Unknown |
ngdpbase.*
| Key | Value |
|---|---|
ngdpbase.access-control.business-hours.days |
monday,tuesday,wednesday,thursday,friday |
ngdpbase.access-control.business-hours.enabled |
false |
ngdpbase.access-control.business-hours.end |
17:00 |
ngdpbase.access-control.business-hours.start |
09:00 |
ngdpbase.access-control.context-aware.enabled |
true |
ngdpbase.access-control.context-aware.time-zone |
UTC |
ngdpbase.access-control.custom-schedules.enabled |
false |
ngdpbase.access-control.custom-schedules.schedules |
./config/schedules.json |
ngdpbase.access-control.holidays.calendar |
./config/holidays.json |
ngdpbase.access-control.holidays.enabled |
false |
ngdpbase.access.policies |
[
{
"id": "admin-full-access",
"name": "Administrator Full Access",
"description": "Full system access for administrators - all page and admin permissions",
"priority": 100,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "admin"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page",
"search-user",
"user-read",
"user-edit",
"user-create",
"user-delete",
"admin-roles",
"admin-system"
]
},
{
"id": "user-admin-permissions",
"name": "User Administrator Permissions",
"description": "Can manage users — create, edit, deactivate, delete",
"priority": 95,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "user-admin"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"user-read",
"user-edit",
"user-create",
"user-delete",
"search-user"
]
},
{
"id": "editor-permissions",
"name": "Editor Permissions",
"description": "Can create, edit, delete, and rename pages plus manage assets",
"priority": 80,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "editor"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page"
]
},
{
"id": "contributor-permissions",
"name": "Contributor Permissions",
"description": "Can create and edit pages, upload assets (no delete/rename)",
"priority": 70,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "contributor"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-edit",
"page-create",
"page-export",
"asset-read",
"asset-upload",
"search-page"
]
},
{
"id": "reader-permissions",
"name": "Reader Permissions",
"description": "Read-only access - can view pages and assets, search, and export",
"priority": 60,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "reader"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-export",
"asset-read",
"search-page"
]
},
{
"id": "member-permissions",
"name": "Member Permissions",
"description": "Community member read-only access",
"priority": 55,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "member"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"asset-read",
"search-page"
]
},
{
"id": "anonymous-read-only",
"name": "Anonymous Read Access",
"description": "Anonymous users can only read pages",
"priority": 50,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "anonymous"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read"
]
},
{
"id": "deny-anonymous-system-pages",
"name": "Deny Anonymous System Pages",
"description": "Block anonymous access to system and admin category pages",
"priority": 90,
"effect": "deny",
"subjects": [
{
"type": "role",
"value": "anonymous"
}
],
"resources": [
{
"type": "category",
"value": "system"
},
{
"type": "category",
"value": "admin"
}
],
"actions": [
"*"
]
},
{
"id": "default-view-for-all",
"name": "Default View Access for All",
"description": "Fallback - all authenticated users can at minimum view pages",
"priority": 1,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "All"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read"
]
}
] |
ngdpbase.access.policies.default-policy |
deny |
ngdpbase.access.policies.enabled |
true |
ngdpbase.addons |
{} |
ngdpbase.addons.forms.dataPath |
${FAST_STORAGE}/forms |
ngdpbase.addons.forms.enabled |
false |
ngdpbase.addons.forms.notifyRole |
admin |
ngdpbase.addons.geohazardwatch.dataPath |
|
ngdpbase.addons.geohazardwatch.enabled |
true |
ngdpbase.addons.geohazardwatch.eqIntervalMs |
1200000 |
ngdpbase.addons.geohazardwatch.hansIntervalMs |
600000 |
ngdpbase.application-name |
GeoHazardWatch |
ngdpbase.application.base-url |
https://geohazardwatch.com |
ngdpbase.application.category |
Digital Platform |
ngdpbase.application.contact.enabled |
true |
ngdpbase.application.contact.footer.enabled |
true |
ngdpbase.application.contact.page |
|
ngdpbase.application.contact.persist.enabled |
true |
ngdpbase.application.contact.persist.path |
|
ngdpbase.application.contact.recipient |
[email protected] |
ngdpbase.application.organization.file |
geohazardwatch.json |
ngdpbase.application.organization.provider |
fileorganizationprovider |
ngdpbase.application.organization.provider.default |
fileorganizationprovider |
ngdpbase.application.organization.storagedir |
${FAST_STORAGE}/organizations |
ngdpbase.application.persons.provider |
filepersonprovider |
ngdpbase.application.persons.provider.default |
filepersonprovider |
ngdpbase.application.persons.storagedir |
${FAST_STORAGE}/persons |
ngdpbase.application.registration |
false |
ngdpbase.application.registration.redirect-page |
request-access |
ngdpbase.application.roles.provider |
fileroleprovider |
ngdpbase.application.roles.provider.default |
fileroleprovider |
ngdpbase.application.roles.storagedir |
${FAST_STORAGE}/roles |
ngdpbase.approver.workflow.save-wiki-page |
Admin |
ngdpbase.attachment.allowedtypes |
image/*,text/*,application/pdf |
ngdpbase.attachment.enabled |
true |
ngdpbase.attachment.enhanced.cachemetadata |
true |
ngdpbase.attachment.enhanced.enabled |
true |
ngdpbase.attachment.enhanced.generatethumbnails |
true |
ngdpbase.attachment.enhanced.iconpath |
/icons/filetypes |
ngdpbase.attachment.enhanced.metadata |
true |
ngdpbase.attachment.enhanced.showfilesize |
true |
ngdpbase.attachment.enhanced.showmetadata |
true |
ngdpbase.attachment.enhanced.showmodified |
true |
ngdpbase.attachment.enhanced.thumbnails |
true |
ngdpbase.attachment.enhanced.thumbnailsizes |
150x150,300x300 |
ngdpbase.attachment.forcedownload |
false |
ngdpbase.attachment.maxsize |
10485760 |
ngdpbase.attachment.metadatafile |
${SLOW_STORAGE}/attachments/attachment-metadata.json |
ngdpbase.attachment.provider |
basicattachmentprovider |
ngdpbase.attachment.provider.basic.hashcontent |
true |
ngdpbase.attachment.provider.basic.hashmethod |
sha256 |
ngdpbase.attachment.provider.basic.storagedir |
${SLOW_STORAGE}/attachments |
ngdpbase.attachment.provider.default |
basicattachmentprovider |
ngdpbase.audit.enabled |
true |
ngdpbase.audit.flushinterval |
30000 |
ngdpbase.audit.loglevel |
info |
ngdpbase.audit.maxqueuesize |
1000 |
ngdpbase.audit.provider |
fileauditprovider |
ngdpbase.audit.provider.cloud.loggroup |
/ngdpbase/audit |
ngdpbase.audit.provider.cloud.logstream |
audit-events |
ngdpbase.audit.provider.cloud.region |
us-east-1 |
ngdpbase.audit.provider.cloud.service |
cloudwatch |
ngdpbase.audit.provider.database.connectionstring |
|
ngdpbase.audit.provider.database.maxconnections |
10 |
ngdpbase.audit.provider.database.tablename |
audit_logs |
ngdpbase.audit.provider.database.type |
postgresql |
ngdpbase.audit.provider.default |
fileauditprovider |
ngdpbase.audit.provider.file.archivefilename |
audit-archive.log |
ngdpbase.audit.provider.file.auditfilename |
audit.log |
ngdpbase.audit.provider.file.logdirectory |
${FAST_STORAGE}/logs |
ngdpbase.audit.provider.file.maxfiles |
10 |
ngdpbase.audit.provider.file.maxfilesize |
10MB |
ngdpbase.audit.retentiondays |
90 |
ngdpbase.auth.cloudflare-access.application-aud |
|
ngdpbase.auth.cloudflare-access.default-role |
occupant |
ngdpbase.auth.cloudflare-access.enabled |
false |
ngdpbase.auth.cloudflare-access.group-map |
{} |
ngdpbase.auth.cloudflare-access.team-domain |
|
ngdpbase.auth.google-oidc.auto-provision |
true |
ngdpbase.auth.google-oidc.callback-url |
|
ngdpbase.auth.google-oidc.client-id |
|
ngdpbase.auth.google-oidc.client-secret |
|
ngdpbase.auth.google-oidc.default-roles |
[
"occupant"
] |
ngdpbase.auth.google-oidc.deny-redirect |
/login?error=Access+denied |
ngdpbase.auth.google-oidc.enabled |
false |
ngdpbase.auth.google-oidc.hd |
|
ngdpbase.auth.magic-link.enabled |
false |
ngdpbase.auth.magic-link.ttl-minutes |
15 |
ngdpbase.auth.password.enabled |
true |
ngdpbase.auth.required-factors |
[
"password"
] |
ngdpbase.auth.user.default-external |
false |
ngdpbase.authorizer |
DefaultAuthorizer |
ngdpbase.backup.auto-backup |
false |
ngdpbase.backup.auto-backup-days |
daily |
ngdpbase.backup.auto-backup-interval |
86400000 |
ngdpbase.backup.auto-backup-time |
02:00 |
ngdpbase.backup.compress |
true |
ngdpbase.backup.directory |
${SLOW_STORAGE}/backups |
ngdpbase.backup.max-backups |
10 |
ngdpbase.backup.provider |
filebackupprovider |
ngdpbase.breadcrumbs.maxpages |
10 |
ngdpbase.cache.checkperiod |
120 |
ngdpbase.cache.defaultttl |
300 |
ngdpbase.cache.enabled |
true |
ngdpbase.cache.maxkeys |
1000 |
ngdpbase.cache.provider |
nodecacheprovider |
ngdpbase.cache.provider.default |
nodecacheprovider |
ngdpbase.cache.provider.nodecache.checkperiod |
120 |
ngdpbase.cache.provider.nodecache.maxkeys |
1000 |
ngdpbase.cache.provider.nodecache.stdttl |
300 |
ngdpbase.cache.provider.nodecache.useclones |
true |
ngdpbase.cache.provider.redis.connecttimeout |
5000 |
ngdpbase.cache.provider.redis.enablecluster |
false |
ngdpbase.cache.provider.redis.keyprefix |
ngdpbase: |
ngdpbase.cache.provider.redis.url |
redis://localhost:6379 |
ngdpbase.catalog.ai.enabled |
false |
ngdpbase.catalog.ai.provider |
null |
ngdpbase.catalog.ai.threshold |
0.7 |
ngdpbase.comments.allow |
true |
ngdpbase.comments.storagedir |
${SLOW_STORAGE}/comments |
ngdpbase.default.system-category |
general |
ngdpbase.default.template.dateformat |
dd-MMM-yyyy HH:mm |
ngdpbase.default.timezone |
UTC |
ngdpbase.diff-provider |
TraditionalDiffProvider |
ngdpbase.directories.data |
${FAST_STORAGE} |
ngdpbase.directories.pages |
${SLOW_STORAGE}/pages |
ngdpbase.directories.required-pages |
./required-pages |
ngdpbase.directories.resources |
./resources |
ngdpbase.directories.schemas |
${FAST_STORAGE}/schemas |
ngdpbase.directories.templates |
./templates |
ngdpbase.directories.users |
${FAST_STORAGE}/users |
ngdpbase.directories.work |
./ |
ngdpbase.encoding |
UTF-8 |
ngdpbase.favicon-path |
/favicon.svg |
ngdpbase.features.export.html |
true |
ngdpbase.features.export.odt |
false |
ngdpbase.features.export.pdf |
false |
ngdpbase.features.images.allowed-types |
image/jpeg,image/png,image/gif,image/webp |
ngdpbase.features.images.default-alt |
Uploaded image |
ngdpbase.features.images.default-class |
wiki-image |
ngdpbase.features.images.enabled |
true |
ngdpbase.features.images.max-size |
5MB |
ngdpbase.features.images.upload-dir |
./public/images |
ngdpbase.features.llm.enabled |
false |
ngdpbase.features.llm.endpoint |
http://localhost:11434 |
ngdpbase.features.llm.model |
llama2 |
ngdpbase.features.maintenance.allow-admins |
true |
ngdpbase.features.maintenance.enabled |
false |
ngdpbase.features.maintenance.estimated-duration |
null |
ngdpbase.features.maintenance.message |
System is currently under maintenance. Please try again later. |
ngdpbase.fetch-timeout-ms |
30000 |
ngdpbase.footnotes.enabled |
true |
ngdpbase.footnotes.storagedir |
${SLOW_STORAGE}/footnotes |
ngdpbase.front-page |
volcanoes-and-earthquakes |
ngdpbase.github.repo |
jwilleke/ngdpbase |
ngdpbase.groupdatabase |
JSONGroupDatabase |
ngdpbase.holidays.dates |
{
"2025-01-01": {
"name": "New Year's Day",
"message": "Access restricted on New Year's Day",
"enabled": true
},
"2025-07-04": {
"name": "Independence Day",
"message": "Access restricted on Independence Day",
"enabled": true
},
"2025-12-25": {
"name": "Christmas Day",
"message": "Access restricted on Christmas Day",
"enabled": true
},
"2025-12-26": {
"name": "Boxing Day",
"message": "Access restricted on Boxing Day",
"enabled": true
}
} |
ngdpbase.holidays.enabled |
true |
ngdpbase.holidays.recurring |
{
"*-01-01": {
"name": "New Year's Day",
"message": "Access restricted on New Year's Day",
"enabled": true
},
"*-12-25": {
"name": "Christmas Day",
"message": "Access restricted on Christmas Day",
"enabled": true
}
} |
ngdpbase.interwiki.enabled |
true |
ngdpbase.interwiki.options |
{
"openInNewWindow": true,
"addIconIndicator": true,
"caseSensitive": false,
"showTooltips": true,
"cacheTTL": 3600,
"maxCacheEntries": 1000
} |
ngdpbase.interwiki.sites |
{
"Wikipedia": {
"url": "https://en.wikipedia.org/wiki/%s",
"description": "Wikipedia, the free encyclopedia",
"icon": "wikipedia.png",
"enabled": true,
"openInNewWindow": true
},
"JSPWiki": {
"url": "https://jspwiki-wiki.apache.org/Wiki.jsp?page=%s",
"description": "Apache JSPWiki Documentation",
"icon": "jspwiki.png",
"enabled": true,
"openInNewWindow": true
},
"MeatBall": {
"url": "http://www.usemod.com/cgi-bin/mb.pl?%s",
"description": "MeatBall Wiki",
"icon": "meatball.png",
"enabled": true,
"openInNewWindow": true
},
"C2": {
"url": "http://wiki.c2.com/?%s",
"description": "C2 Wiki (Portland Pattern Repository)",
"icon": "c2.png",
"enabled": false,
"openInNewWindow": true
},
"GVP": {
"url": "https://volcano.si.edu/volcano.cfm?vn=%s",
"description": "GVP (Global Volcanism Program)",
"icon": "gvp-icon.jpg",
"enabled": true,
"openInNewWindow": true
},
"GVP-COUNTRY": {
"url": "https://volcano.si.edu/volcanolist_countries.cfm?country=%s",
"description": "GVP (Global Volcanism Program) — Volcanoes by Country",
"icon": "gvp-icon.jpg",
"enabled": true,
"openInNewWindow": true
}
} |
ngdpbase.jsonorganizationsdatabase |
users/organizations.json |
ngdpbase.jsonpersonsdatabase |
.users/persons.json |
ngdpbase.jsonuserdatabase |
.users/users.json |
ngdpbase.knowledge-role |
{
"source": {
"label": "source",
"description": "Authoritative primary content; body treated as immutable (step 2 of LLM-wiki build plan)",
"default": false,
"enabled": true,
"page-badge": {
"color": "bg-dark",
"label": "Source",
"title": "Source page — primary, immutable material"
}
},
"citation": {
"label": "citation",
"description": "Interpretive claim grounded in one or more sources",
"default": false,
"enabled": true,
"page-badge": {
"color": "bg-warning text-dark",
"label": "Citation",
"title": "Citation page — claims grounded in sources"
}
},
"concept": {
"label": "concept",
"description": "Synthesis drawing on multiple citations",
"default": false,
"enabled": true,
"page-badge": {
"color": "bg-danger",
"label": "Concept",
"title": "Concept page — synthesis across citations"
}
}
} |
ngdpbase.location.default-provider |
osm |
ngdpbase.logging.debug.enabled |
false |
ngdpbase.logging.debug.login |
false |
ngdpbase.logging.debug.session |
false |
ngdpbase.logging.dir |
${FAST_STORAGE}/logs |
ngdpbase.logging.level |
info |
ngdpbase.logging.max-files |
5 |
ngdpbase.logging.max-size |
1MB |
ngdpbase.logging.provider |
fileloggingprovider |
ngdpbase.login-module.class |
CookieAuthenticationLoginModule |
ngdpbase.lucene-search-provider.lucene-directory |
./lucene |
ngdpbase.mail.enabled |
true |
ngdpbase.mail.from |
GeoHazardWatch Contact <[email protected]> |
ngdpbase.mail.honeypot.enabled |
true |
ngdpbase.mail.provider |
smtp |
ngdpbase.mail.provider.smtp.from |
|
ngdpbase.mail.provider.smtp.host |
smtp.gmail.com |
ngdpbase.mail.provider.smtp.pass |
nqyiswddgaicffnq |
ngdpbase.mail.provider.smtp.port |
587 |
ngdpbase.mail.provider.smtp.secure |
false |
ngdpbase.mail.provider.smtp.user |
[email protected] |
ngdpbase.mail.rate-limit.enabled |
true |
ngdpbase.mail.rate-limit.max-submissions |
5 |
ngdpbase.mail.rate-limit.window-minutes |
15 |
ngdpbase.managers.addons-manager.addons-path |
[
"/app/addons",
"/opt/geohazardwatch/addons"
] |
ngdpbase.managers.addons-manager.enabled |
true |
ngdpbase.managers.cache-manager.enabled |
true |
ngdpbase.managers.page-manager.enabled |
true |
ngdpbase.managers.plugin-manager.enabled |
true |
ngdpbase.managers.plugin-manager.search-paths |
[
"./dist/src/plugins"
] |
ngdpbase.managers.rendering-manager.enabled |
true |
ngdpbase.managers.search-manager.enabled |
true |
ngdpbase.managers.template-manager.enabled |
true |
ngdpbase.markdown.footnotes.enabled |
true |
ngdpbase.markdown.ncm.image.ad-deny-list |
[
"doubleclick.net",
"googlesyndication.com",
"google-analytics.com",
"facebook.com/tr",
"scorecardresearch.com"
] |
ngdpbase.markup.cache-ttl |
300 |
ngdpbase.markup.cache.enable-warmup |
true |
ngdpbase.markup.cache.handler-results.enabled |
true |
ngdpbase.markup.cache.handler-results.max-size |
2000 |
ngdpbase.markup.cache.handler-results.ttl |
600 |
ngdpbase.markup.cache.metrics-enabled |
true |
ngdpbase.markup.cache.parse-results.enabled |
true |
ngdpbase.markup.cache.parse-results.max-size |
1000 |
ngdpbase.markup.cache.parse-results.ttl |
300 |
ngdpbase.markup.cache.patterns.enabled |
true |
ngdpbase.markup.cache.patterns.max-size |
100 |
ngdpbase.markup.cache.patterns.ttl |
3600 |
ngdpbase.markup.cache.variables.enabled |
true |
ngdpbase.markup.cache.variables.max-size |
500 |
ngdpbase.markup.cache.variables.ttl |
900 |
ngdpbase.markup.caching |
true |
ngdpbase.markup.enabled |
true |
ngdpbase.markup.fallback-to-legacy |
true |
ngdpbase.markup.fenced-code-tags |
[
"text",
"plain",
"none",
"javascript",
"js",
"typescript",
"ts",
"jsx",
"tsx",
"html",
"xml",
"svg",
"css",
"scss",
"sass",
"less",
"json",
"yaml",
"yml",
"toml",
"bash",
"sh",
"shell",
"zsh",
"python",
"py",
"java",
"kotlin",
"c",
"cpp",
"csharp",
"cs",
"go",
"rust",
"ruby",
"php",
"sql",
"markdown",
"md",
"diff",
"patch",
"mermaid"
] |
ngdpbase.markup.filters.custom.auto-load |
true |
ngdpbase.markup.filters.custom.cache-results |
true |
ngdpbase.markup.filters.custom.enabled |
false |
ngdpbase.markup.filters.custom.search-paths |
./filters,./src/filters |
ngdpbase.markup.filters.enabled |
true |
ngdpbase.markup.filters.pipeline.enable-profiling |
true |
ngdpbase.markup.filters.pipeline.fail-on-error |
false |
ngdpbase.markup.filters.pipeline.max-filters |
50 |
ngdpbase.markup.filters.pipeline.timeout |
10000 |
ngdpbase.markup.filters.security.allowed-attributes |
class,id,href,src,alt,title |
ngdpbase.markup.filters.security.allowed-tags |
p,div,span,strong,em,ul,ol,li,h1,h2,h3,h4,h5,h6,a,img |
ngdpbase.markup.filters.security.enabled |
false |
ngdpbase.markup.filters.security.prevent-csrf |
true |
ngdpbase.markup.filters.security.prevent-xss |
true |
ngdpbase.markup.filters.security.priority |
110 |
ngdpbase.markup.filters.security.sanitize-html |
true |
ngdpbase.markup.filters.security.strip-dangerous-content |
true |
ngdpbase.markup.filters.spam.blacklist-words |
spam,casino,pharmacy,viagra |
ngdpbase.markup.filters.spam.cache-blacklist |
true |
ngdpbase.markup.filters.spam.enabled |
false |
ngdpbase.markup.filters.spam.max-images |
5 |
ngdpbase.markup.filters.spam.max-links |
10 |
ngdpbase.markup.filters.spam.priority |
100 |
ngdpbase.markup.filters.spam.whitelist-domains |
wikipedia.org,github.com,stackoverflow.com |
ngdpbase.markup.filters.validation.enabled |
true |
ngdpbase.markup.filters.validation.max-content-length |
1048576 |
ngdpbase.markup.filters.validation.priority |
90 |
ngdpbase.markup.filters.validation.report-errors |
true |
ngdpbase.markup.filters.validation.validate-images |
true |
ngdpbase.markup.filters.validation.validate-links |
true |
ngdpbase.markup.filters.validation.validate-markup |
true |
ngdpbase.markup.handler-registry.allow-duplicate-priorities |
true |
ngdpbase.markup.handler-registry.default-timeout |
5000 |
ngdpbase.markup.handler-registry.enable-conflict-detection |
true |
ngdpbase.markup.handler-registry.enable-dependency-resolution |
true |
ngdpbase.markup.handler-registry.max-handlers |
100 |
ngdpbase.markup.handlers.attachment.enabled |
true |
ngdpbase.markup.handlers.attachment.enhanced |
true |
ngdpbase.markup.handlers.attachment.metadata |
true |
ngdpbase.markup.handlers.attachment.priority |
75 |
ngdpbase.markup.handlers.attachment.thumbnails |
true |
ngdpbase.markup.handlers.form.enabled |
true |
ngdpbase.markup.handlers.form.priority |
85 |
ngdpbase.markup.handlers.interwiki.enabled |
true |
ngdpbase.markup.handlers.interwiki.priority |
80 |
ngdpbase.markup.handlers.plugin.enabled |
true |
ngdpbase.markup.handlers.plugin.priority |
90 |
ngdpbase.markup.handlers.rss.enabled |
true |
ngdpbase.markup.handlers.rss.priority |
60 |
ngdpbase.markup.handlers.search.enabled |
true |
ngdpbase.markup.handlers.search.priority |
65 |
ngdpbase.markup.handlers.style.enabled |
true |
ngdpbase.markup.handlers.style.priority |
70 |
ngdpbase.markup.handlers.wikitag.enabled |
true |
ngdpbase.markup.handlers.wikitag.priority |
95 |
ngdpbase.markup.integration.rendering-manager |
true |
ngdpbase.markup.log-parsing-method |
true |
ngdpbase.markup.use-advanced-parser |
true |
ngdpbase.maximum.user-keywords |
5 |
ngdpbase.media.enabled |
false |
ngdpbase.media.extensions |
[
"jpg",
"jpeg",
"png",
"gif",
"heic",
"heif",
"tiff",
"tif",
"webp",
"raw",
"orf",
"cr2",
"nef",
"arw",
"dng",
"bmp",
"mp4",
"mov",
"avi",
"mkv",
"m4v",
"wmv",
"3gp"
] |
ngdpbase.media.folders |
[] |
ngdpbase.media.ignoredirs |
[
".dtrash",
".ts"
] |
ngdpbase.media.maxdepth |
5 |
ngdpbase.media.metadata.priority |
[
"EXIF",
"IPTC",
"XMP"
] |
ngdpbase.media.readonly |
true |
ngdpbase.media.scaninterval |
3600000 |
ngdpbase.media.thumbnail.sizes |
300x300,150x150 |
ngdpbase.notifications.auto-save-interval |
300000 |
ngdpbase.notifications.dir |
${FAST_STORAGE}/notifications |
ngdpbase.notifications.escalation.enabled |
false |
ngdpbase.notifications.escalation.levels |
[
"error"
] |
ngdpbase.notifications.escalation.recipient-role |
admin |
ngdpbase.notifications.file |
notifications.json |
ngdpbase.page.enabled |
true |
ngdpbase.page.nofooter |
[
"LeftMenu",
"Footer",
"Template:PageTabs"
] |
ngdpbase.page.notabs |
[
"LeftMenu",
"Footer",
"Template:PageTabs"
] |
ngdpbase.page.provider |
versioningfileprovider |
ngdpbase.page.provider.default |
filesystemprovider |
ngdpbase.page.provider.filesystem.autosave |
true |
ngdpbase.page.provider.filesystem.encoding |
utf-8 |
ngdpbase.page.provider.filesystem.requiredpagesdir |
./required-pages |
ngdpbase.page.provider.filesystem.storagedir |
${SLOW_STORAGE}/pages |
ngdpbase.page.provider.versioning.indexfile |
${FAST_STORAGE}/page-index.json |
ngdpbase.pageFilters |
org.apache.wiki.filters.BasicPageFilter,org.apache.wiki.filters.ProfanityFilter |
ngdpbase.permissions.definitions |
{
"page-read": {
"description": "View pages",
"icon": "eye",
"color": "#6c757d"
},
"page-edit": {
"description": "Edit pages",
"icon": "edit",
"color": "#007bff"
},
"page-create": {
"description": "Create new pages",
"icon": "plus",
"color": "#28a745"
},
"page-delete": {
"description": "Delete pages",
"icon": "trash",
"color": "#dc3545"
},
"page-rename": {
"description": "Rename pages",
"icon": "i-cursor",
"color": "#fd7e14"
},
"page-export": {
"description": "Export pages",
"icon": "file-export",
"color": "#6c757d"
},
"asset-read": {
"description": "View assets (attachments)",
"icon": "paperclip",
"color": "#6c757d"
},
"asset-upload": {
"description": "Upload assets",
"icon": "upload",
"color": "#28a745"
},
"asset-delete": {
"description": "Delete assets",
"icon": "trash",
"color": "#dc3545"
},
"search-page": {
"description": "Search pages",
"icon": "search",
"color": "#6c757d"
},
"search-user": {
"description": "Search users",
"icon": "search",
"color": "#6c757d"
},
"user-read": {
"description": "View user list and profiles",
"icon": "users",
"color": "#6c757d"
},
"user-edit": {
"description": "Edit user accounts",
"icon": "user-edit",
"color": "#007bff"
},
"user-create": {
"description": "Create user accounts",
"icon": "user-plus",
"color": "#28a745"
},
"user-delete": {
"description": "Delete user accounts",
"icon": "user-minus",
"color": "#dc3545"
},
"admin-system": {
"description": "System administration",
"icon": "cog",
"color": "#dc3545"
},
"admin-roles": {
"description": "Role management",
"icon": "shield-alt",
"color": "#dc3545"
}
} |
ngdpbase.plugin.searchresult.maxItems |
50 |
ngdpbase.plugin.searchresult.showScore |
true |
ngdpbase.plugin.versioning.use |
true |
ngdpbase.plugins.enabled |
true |
ngdpbase.plugins.searchPath |
./plugins |
ngdpbase.referenceStyle |
relative |
ngdpbase.roles.definitions |
{
"admin": {
"name": "admin",
"displayname": "Administrator",
"description": "Full system access to all features",
"issystem": true,
"icon": "shield-alt",
"color": "#dc3545",
"permissions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page",
"search-user",
"user-read",
"user-edit",
"user-create",
"user-delete",
"admin-system",
"admin-roles"
]
},
"user-admin": {
"name": "user-admin",
"displayname": "User Administrator",
"description": "Can manage users — create, edit, deactivate, delete",
"issystem": true,
"icon": "user-cog",
"color": "#6610f2",
"permissions": [
"user-read",
"user-edit",
"user-create",
"user-delete",
"search-user"
]
},
"editor": {
"name": "editor",
"displayname": "Editor",
"description": "Can create, edit, delete, and rename pages",
"issystem": true,
"icon": "edit",
"color": "#007bff",
"permissions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page"
]
},
"contributor": {
"name": "contributor",
"displayname": "Contributor",
"description": "Can create and edit pages",
"issystem": true,
"icon": "user-edit",
"color": "#28a745",
"permissions": [
"page-read",
"page-edit",
"page-create",
"page-export",
"asset-read",
"asset-upload",
"search-page"
]
},
"reader": {
"name": "reader",
"displayname": "Reader",
"description": "Read-only access to content",
"issystem": true,
"icon": "book-reader",
"color": "#6c757d",
"permissions": [
"page-read",
"page-export",
"asset-read",
"search-page"
]
},
"member": {
"name": "member",
"displayname": "Member",
"description": "Community member — same read access as reader, placeholder for community-specific permissions",
"issystem": true,
"icon": "id-card",
"color": "#20c997",
"permissions": [
"page-read",
"asset-read",
"search-page"
]
},
"anonymous": {
"name": "anonymous",
"displayname": "Anonymous",
"description": "Public access without authentication",
"issystem": true,
"icon": "user-secret",
"color": "#adb5bd",
"permissions": [
"page-read",
"asset-read"
]
}
} |
ngdpbase.rss.channel-description |
RSS feed for ngdpbase updates |
ngdpbase.rss.channel-title |
ngdpbase RSS Feed |
ngdpbase.rss.file-name |
rss.xml |
ngdpbase.rss.generate |
true |
ngdpbase.rss.interval |
3600 |
ngdpbase.schedules |
{
"business-hours": {
"name": "Standard Business Hours",
"description": "Monday-Friday, 9 AM - 5 PM",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
},
{
"days": [
"saturday",
"sunday"
],
"type": "deny"
}
],
"exceptions": [],
"enabled": true
},
"weekend-support": {
"name": "Weekend Support",
"description": "Limited weekend access for critical issues",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
},
{
"days": [
"saturday"
],
"startTime": "10:00",
"endTime": "14:00",
"type": "allow"
},
{
"days": [
"sunday"
],
"type": "deny"
}
],
"exceptions": [],
"enabled": true
},
"emergency-24-7": {
"name": "24/7 Emergency Access",
"description": "Full access for emergency situations",
"timeZone": "UTC",
"rules": [
{
"type": "allow"
}
],
"exceptions": [],
"enabled": true
},
"role_admin": {
"name": "Administrator Schedule",
"description": "Extended hours for administrators",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00",
"endTime": "18:00",
"type": "allow"
},
{
"days": [
"saturday"
],
"startTime": "09:00",
"endTime": "12:00",
"type": "allow"
}
],
"exceptions": [],
"enabled": true
},
"category_System": {
"name": "System Pages Schedule",
"description": "Restricted access to system pages",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
}
],
"exceptions": [],
"enabled": true
},
"default": {
"name": "Default Schedule",
"description": "Fallback schedule for users without specific assignments",
"timeZone": "UTC",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
}
],
"exceptions": [],
"enabled": true
}
} |
ngdpbase.schedules.enabled |
true |
ngdpbase.schema-types |
{
"documentation": "TechArticle",
"developer": "TechArticle",
"journal": "BlogPosting"
} |
ngdpbase.search.autocomplete.enabled |
true |
ngdpbase.search.autocomplete.minlength |
2 |
ngdpbase.search.enabled |
true |
ngdpbase.search.maxresults |
50 |
ngdpbase.search.plugin.allowAdvanced |
true |
ngdpbase.search.plugin.cacheResults |
true |
ngdpbase.search.plugin.cacheTTL |
300 |
ngdpbase.search.plugin.maxResults |
50 |
ngdpbase.search.plugin.showScore |
true |
ngdpbase.search.provider |
lunrsearchprovider |
ngdpbase.search.provider.default |
lunrsearchprovider |
ngdpbase.search.provider.elasticsearch.autotagging.enabled |
false |
ngdpbase.search.provider.elasticsearch.connecttimeout |
5000 |
ngdpbase.search.provider.elasticsearch.indexname |
ngdpbase-pages |
ngdpbase.search.provider.elasticsearch.requesttimeout |
30000 |
ngdpbase.search.provider.elasticsearch.url |
http://localhost:9200 |
ngdpbase.search.provider.lunr.boost.keywords |
4 |
ngdpbase.search.provider.lunr.boost.systemcategory |
8 |
ngdpbase.search.provider.lunr.boost.tags |
5 |
ngdpbase.search.provider.lunr.boost.title |
10 |
ngdpbase.search.provider.lunr.boost.userkeywords |
6 |
ngdpbase.search.provider.lunr.indexdir |
${FAST_STORAGE}/search-index |
ngdpbase.search.provider.lunr.maxresults |
50 |
ngdpbase.search.provider.lunr.snippetlength |
200 |
ngdpbase.search.provider.lunr.stemming |
true |
ngdpbase.search.suggestions.enabled |
true |
ngdpbase.search.suggestions.maxitems |
10 |
ngdpbase.server.host |
0.0.0.0 |
ngdpbase.server.port |
3000 |
ngdpbase.session.http-only |
true |
ngdpbase.session.max-age |
86400000 |
ngdpbase.session.sameSite |
lax |
ngdpbase.session.secret |
ngdpbase-session-secret-change-in-production |
ngdpbase.session.secure |
true |
ngdpbase.session.storagedir |
${FAST_STORAGE}/sessions |
ngdpbase.session.store |
users/sessions.json |
ngdpbase.specialpage.diff |
Diff.jsp |
ngdpbase.specialpage.findpage |
FindPage.jsp |
ngdpbase.specialpage.login |
Login.jsp |
ngdpbase.specialpage.search |
Search.jsp |
ngdpbase.specialpage.upload |
Upload.jsp |
ngdpbase.specialpage.userpreferences |
UserPreferences.jsp |
ngdpbase.specialpage.workflow |
Workflow.jsp |
ngdpbase.storageLocation.aclBasedStorage |
true |
ngdpbase.storageLocation.categoryBasedStorage.Admin |
required |
ngdpbase.storageLocation.categoryBasedStorage.Documentation |
regular |
ngdpbase.storageLocation.categoryBasedStorage.General |
regular |
ngdpbase.storageLocation.categoryBasedStorage.Security |
required |
ngdpbase.storageLocation.categoryBasedStorage.System |
required |
ngdpbase.storageLocation.enabled |
true |
ngdpbase.storageLocation.roleBasedStorage.admin |
required |
ngdpbase.storageLocation.roleBasedStorage.editor |
regular |
ngdpbase.storageLocation.roleBasedStorage.user |
regular |
ngdpbase.style.bootstrap.integration |
true |
ngdpbase.style.custom-classes.enabled |
true |
ngdpbase.style.predefined.background |
bg-primary,bg-secondary,bg-light,bg-dark |
ngdpbase.style.predefined.layout |
text-center,text-left,text-right,float-left,float-right |
ngdpbase.style.predefined.text |
text-primary,text-secondary,text-success,text-danger,text-warning,text-info |
ngdpbase.style.security.allow-inline-css |
false |
ngdpbase.style.security.allowed-properties |
color,background-color,font-weight,font-style,text-align |
ngdpbase.system-category |
{
"general": {
"label": "general",
"description": "General User pages",
"default": true,
"storageLocation": "regular",
"enabled": true
},
"system": {
"label": "system",
"description": "System configuration and infrastructure pages",
"default": false,
"storageLocation": "required",
"enabled": true,
"page-badge": {
"color": "bg-secondary",
"label": "System",
"title": "System page"
}
},
"documentation": {
"label": "documentation",
"description": "End-User documentation",
"default": false,
"storageLocation": "required",
"enabled": true,
"page-badge": {
"color": "bg-info text-dark",
"label": "Documentation",
"title": "Documentation page"
}
},
"developer": {
"label": "developer",
"description": "Developer documentation and technical note Only in GitHub",
"default": false,
"storageLocation": "github",
"enabled": true
},
"addon": {
"label": "addon",
"description": "Pages seeded by an installed add-on",
"default": false,
"storageLocation": "regular",
"enabled": true,
"page-badge": {
"color": "bg-primary",
"label": "Addon",
"title": "Add-on page"
}
},
"user-profile": {
"label": "user-profile",
"description": "User profile pages",
"default": false,
"storageLocation": "regular",
"enabled": true,
"page-badge": {
"color": "bg-success",
"label": "Profile",
"title": "User profile page"
}
},
"journal": {
"label": "journal",
"description": "Personal journal entries — schema.org BlogPosting at JSON-LD render time (#791)",
"default": false,
"storageLocation": "regular",
"enabled": true,
"page-badge": {
"color": "bg-info",
"label": "Journal",
"title": "Journal entry"
}
}
} |
ngdpbase.system-keywords |
{
"general": {
"label": "general",
"description": "General-purpose keyword for standard wiki content",
"default": true,
"category": "content-type",
"enabled": true
},
"draft": {
"label": "draft",
"description": "Work in progress content",
"category": "workflow-status",
"enabled": true
},
"review": {
"label": "review",
"description": "Content under review",
"category": "workflow-status",
"enabled": true
},
"published": {
"label": "published",
"description": "Finalized and approved content",
"category": "workflow-status",
"enabled": true
},
"medicine": {
"label": "medicine",
"description": "Medical and healthcare-related content",
"category": "subject",
"enabled": true
},
"geology": {
"label": "geology",
"description": "Geological and earth science content",
"category": "subject",
"enabled": true
},
"meteorology": {
"label": "meteorology",
"description": "Weather and atmospheric science content",
"category": "subject",
"enabled": true
},
"oceanography": {
"label": "oceanography",
"description": "Ocean and marine science content",
"category": "subject",
"enabled": true
},
"psychology": {
"label": "psychology",
"description": "Psychological and behavioral science content",
"category": "subject",
"enabled": true
},
"sociology": {
"label": "sociology",
"description": "Social science and society-related content",
"category": "subject",
"enabled": true
},
"anthropology": {
"label": "anthropology",
"description": "Human culture and society content",
"category": "subject",
"enabled": true
},
"economics": {
"label": "economics",
"description": "Economic and financial content",
"category": "subject",
"enabled": true
},
"political-science": {
"label": "political-science",
"description": "Political science and governance content",
"category": "subject",
"enabled": true
}
} |
ngdpbase.tab.pagetabs |
true |
ngdpbase.tab.pagetabs.template |
Template:PageTabs |
ngdpbase.tab.persist |
true |
ngdpbase.tab.style |
tabs |
ngdpbase.telemetry.enabled |
false |
ngdpbase.telemetry.metrics.host |
0.0.0.0 |
ngdpbase.telemetry.metrics.interval |
15000 |
ngdpbase.telemetry.metrics.path |
/metrics |
ngdpbase.telemetry.metrics.port |
9464 |
ngdpbase.telemetry.otlp.enabled |
false |
ngdpbase.telemetry.otlp.endpoint |
|
ngdpbase.telemetry.otlp.headers |
{} |
ngdpbase.telemetry.otlp.interval |
30000 |
ngdpbase.telemetry.otlp.timeout |
30000 |
ngdpbase.telemetry.service-name |
|
ngdpbase.templateDir |
default |
ngdpbase.theme.active |
volcano |
ngdpbase.theme.defaults.mode |
light |
ngdpbase.theme.directory |
themes |
ngdpbase.timezones |
[
{
"value": "UTC",
"label": "UTC (Coordinated Universal Time)",
"category": "Universal"
},
{
"value": "America/New_York",
"label": "Eastern Time (New York)",
"category": "North America"
},
{
"value": "America/Chicago",
"label": "Central Time (Chicago)",
"category": "North America"
},
{
"value": "America/Denver",
"label": "Mountain Time (Denver)",
"category": "North America"
},
{
"value": "America/Los_Angeles",
"label": "Pacific Time (Los Angeles)",
"category": "North America"
},
{
"value": "America/Toronto",
"label": "Eastern Time (Toronto)",
"category": "North America"
},
{
"value": "America/Vancouver",
"label": "Pacific Time (Vancouver)",
"category": "North America"
},
{
"value": "Europe/London",
"label": "GMT (London)",
"category": "Europe"
},
{
"value": "Europe/Paris",
"label": "CET (Paris)",
"category": "Europe"
},
{
"value": "Europe/Berlin",
"label": "CET (Berlin)",
"category": "Europe"
},
{
"value": "Europe/Rome",
"label": "CET (Rome)",
"category": "Europe"
},
{
"value": "Europe/Madrid",
"label": "CET (Madrid)",
"category": "Europe"
},
{
"value": "Europe/Moscow",
"label": "MSK (Moscow)",
"category": "Europe"
},
{
"value": "Europe/Stockholm",
"label": "CET (Stockholm)",
"category": "Europe"
},
{
"value": "Asia/Tokyo",
"label": "JST (Tokyo)",
"category": "Asia"
},
{
"value": "Asia/Shanghai",
"label": "CST (Shanghai)",
"category": "Asia"
},
{
"value": "Asia/Seoul",
"label": "KST (Seoul)",
"category": "Asia"
},
{
"value": "Asia/Kolkata",
"label": "IST (Kolkata)",
"category": "Asia"
},
{
"value": "Asia/Dubai",
"label": "GST (Dubai)",
"category": "Asia"
},
{
"value": "Asia/Singapore",
"label": "SGT (Singapore)",
"category": "Asia"
},
{
"value": "Australia/Sydney",
"label": "AEST (Sydney)",
"category": "Oceania"
},
{
"value": "Australia/Melbourne",
"label": "AEST (Melbourne)",
"category": "Oceania"
},
{
"value": "Australia/Perth",
"label": "AWST (Perth)",
"category": "Oceania"
},
{
"value": "Pacific/Auckland",
"label": "NZST (Auckland)",
"category": "Oceania"
},
{
"value": "Africa/Cairo",
"label": "EET (Cairo)",
"category": "Africa"
},
{
"value": "Africa/Johannesburg",
"label": "SAST (Johannesburg)",
"category": "Africa"
},
{
"value": "America/Sao_Paulo",
"label": "BRT (São Paulo)",
"category": "South America"
},
{
"value": "America/Argentina/Buenos_Aires",
"label": "ART (Buenos Aires)",
"category": "South America"
}
] |
ngdpbase.translator-reader.allow-html |
false |
ngdpbase.translator-reader.camel-case-links |
true |
ngdpbase.translator-reader.inline-pattern.1 |
s/\{\{([^}]+)\}\}/\<tt\>$1\<\/tt\>/g |
ngdpbase.translator-reader.match-english-plurals |
true |
ngdpbase.translator-reader.plain-uris |
true |
ngdpbase.url.generator |
DefaultURLGenerator |
ngdpbase.user-keywords |
{
"default": {
"label": "default",
"description": "Default keyword with no special restrictions",
"category": "general",
"enabled": true,
"restrictEditing": false
},
"draft": {
"label": "draft",
"description": "Work in progress content",
"category": "status",
"enabled": true,
"restrictEditing": false
},
"review": {
"label": "review",
"description": "Content under review",
"category": "status",
"enabled": true,
"restrictEditing": false
},
"published": {
"label": "published",
"description": "Finalized and approved content",
"category": "status",
"enabled": true,
"restrictEditing": false
},
"medicine": {
"label": "medicine",
"description": "Medical and healthcare-related content",
"category": "subject",
"enabled": true,
"restrictEditing": false,
"schemaOrg": "MedicalEntity"
},
"geology": {
"label": "geology",
"description": "Geological and earth science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"meteorology": {
"label": "meteorology",
"description": "Weather and atmospheric science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"oceanography": {
"label": "oceanography",
"description": "Ocean and marine science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"psychology": {
"label": "psychology",
"description": "Psychological and behavioral science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"sociology": {
"label": "sociology",
"description": "Social science and society-related content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"anthropology": {
"label": "anthropology",
"description": "Human culture and society content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"economics": {
"label": "economics",
"description": "Economic and financial content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"political-science": {
"label": "political-science",
"description": "Political science and governance content",
"category": "subject",
"enabled": true,
"restrictEditing": false
}
} |
ngdpbase.user.coreFields |
[
"username",
"email",
"displayName",
"password",
"roles",
"isActive",
"isExternal",
"isSystem",
"createdAt",
"loginCount",
"lastLogin",
"preferences",
"profilePage",
"allowedAuthMethods",
"avatar"
] |
ngdpbase.user.defaults.locale |
en-us |
ngdpbase.user.defaults.timezone |
utc |
ngdpbase.user.enabled |
true |
ngdpbase.user.provider |
jsonuserprovider |
ngdpbase.user.provider.default |
jsonuserprovider |
ngdpbase.user.provider.files.sessions |
sessions.json |
ngdpbase.user.provider.files.users |
users.json |
ngdpbase.user.provider.storagedir |
${FAST_STORAGE}/users |
ngdpbase.user.security.defaultpassword |
admin123 |
ngdpbase.user.security.passwordsalt |
amdwiki-salt |
ngdpbase.user.security.sessionexpiration |
86400000 |
ngdpbase.userdatabase |
JSONUserDatabase |
ngdpbase.version |
3.46.1 |
ngdpbase.workDir |
./work |
ngdpbase.workflow.approver |
Admin |
ngdpbase.workflow.saveWikiPage |
false |
ngdpbase.xmlGroupDatabase.file |
./config/groupdatabase.xml |
ngdpbase.xmlUserDatabase.file |
./config/userdatabase.xml |
| Parameter | Type | Default | Description |
|---|---|---|---|
type | string | all | What to display: all, system, contextual, or plugins |
[{VariablesPlugin}] renders as:
| Variable Name | Current Value | Description |
|---|---|---|
[{$appname}] |
GeoHazardWatch |
Application name (alias) |
[{$applicationname}] |
GeoHazardWatch |
Application name from configuration |
[{$version}] |
3.46.1 |
ngdpbase version number |
[{$baseurl}] |
https://geohazardwatch.com |
Base URL for the wiki |
[{$uptime}] |
21h 39m 14s |
Server uptime |
[{$totalpages}] |
133 |
Total number of pages in wiki |
| Variable Name | Your Current Value | Description |
|---|---|---|
[{$pagename}] |
Using VariablesPlugin |
Current page name |
[{$username}] |
Anonymous |
Current user's name |
[{$loginstatus}] |
Not logged in |
User authentication status |
[{$userroles}] |
Anonymous, All |
User's assigned roles |
[{$date}] |
6/6/2026 |
Current date |
[{$time}] |
2:43:43 AM |
Current time |
[{$timestamp}] |
2026-06-06T02:43:43.433Z |
Current ISO timestamp |
[{$year}] |
2026 |
Current year |
[{$month}] |
6 |
Current month |
[{$day}] |
6 |
Current day |
[{$displayname}] |
Anonymous User |
User's display name |
[{$useragent}] |
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected]) |
Browser user agent string |
[{$browser}] |
Unknown Browser |
Browser name and version |
[{$clientip}] |
::ffff:10.42.0.147 |
Client IP address |
[{$referer}] |
Direct |
HTTP referer |
[{$sessionid}] |
Coo9nDl7polrMBZ8WZ1z3VYM6vuahcMD |
Session identifier |
[{$acceptlanguage}] |
Unknown |
Accept-Language header |
| Plugin Name | Description | Version | Author |
|---|---|---|---|
[{AppHealthPlugin}] |
Deterministic app-health audit: orphan pages, broken links, stale pages | 1.0.0 | ngdpbase |
[{ATTACH}] |
Renders wiki attachments inline. Images display as clickable thumbnails; other files display as download links. | 1.0.0 | Unknown |
[{AttachmentsPlugin}] |
Shows total attachment count or a list of attachments | 1.0.0 | ngdpbase |
[{CommentsPlugin}] |
Displays page comments and a submission form for authenticated users | 1.0.0 | ngdpbase |
[{ConfigAccessorPlugin}] |
Access configuration values including roles, features, and system settings | 2.9.0 | ngdpbase |
[{CounterPlugin}] |
Maintains page-specific counters for numbering and tracking | 1.0.0 | ngdpbase |
[{CurrentTimePlugin}] |
Displays current date and time with user locale/timezone preferences | 1.0.0 | ngdpbase |
[{EarthquakeList}] |
No description | N/A | Unknown |
[{EarthquakeMap}] |
No description | N/A | Unknown |
[{FootnotesPlugin}] |
Lists footnote definitions from sidecar storage with editor CRUD UI | 2.0.0 | ngdpbase |
[{HansAlerts}] |
No description | N/A | Unknown |
[{Image}] |
Renders an image with optional caption, alignment, and display mode control | N/A | Unknown |
[{IndexPlugin}] |
Generates an alphabetical index of all wiki pages | 1.0.0 | ngdpbase |
[{InsertPlugin}] |
Embed another wiki page (or one section of it) into the current page | 1.0.0 | ngdpbase |
[{Location}] |
Display locations with map links and embedded previews | 1.0.0 | ngdpbase |
[{MarqueePlugin}] |
CSS scrolling text banner (marquee replacement) | 1.0.0 | ngdpbase |
[{MediaGallery}] |
Displays a gallery of media items (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MediaItem}] |
Embeds a single media item inline (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MediaPlugin}] |
Shows total media item count, a list, or a thumbnail album of indexed media items | 1.2.0 | ngdpbase |
[{MediaSearch}] |
Displays media search results (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MyContributionsPlugin}] |
Renders the My Contributions card from /profile on any wiki page | 1.0.0 | ngdpbase |
[{MyLinksPlugin}] |
Renders the current user's pinned My Links sidebar section | 1.0.0 | ngdpbase |
[{PageSlideshowPlugin}] |
Bootstrap 5 carousel cycling through wiki page content | 1.0.0 | ngdpbase |
[{RecentChangesPlugin}] |
Displays recent page changes in chronological order | 2.0.0 | ngdpbase |
[{ReferringPagesPlugin}] |
Lists pages that refer to the current page | 1.0.0 | ngdpbase |
[{SearchPlugin}] |
JSPWiki-style search plugin for embedding search results in pages | 2.0.0 | ngdpbase |
[{SessionsPlugin}] |
Shows active session count or list of authenticated users | 2.0.0 | ngdpbase |
[{SlideshowPlugin}] |
Bootstrap 5 image carousel / slideshow | 1.0.0 | ngdpbase |
[{TablePlugin}] |
JSPWiki-compatible Table plugin — enables # auto-numbering in table rows | 1.0.0 | ngdpbase |
[{TabPlugin}] |
Defines a tab within [{Tabs}]; rendering is handled by TabsPlugin | 1.0.0 | ngdpbase |
[{TabsPlugin}] |
Renders Bootstrap nav-tabs from [{Tab name="..."}]content[{/Tab}] body blocks | 1.0.0 | ngdpbase |
[{TotalPagesPlugin}] |
Shows the total number of pages | 1.0.0 | ngdpbase |
[{UndefinedPagesPlugin}] |
Lists pages that are linked to (RED-LINKs) but do not exist | 1.2.0 | ngdpbase |
[{UptimePlugin}] |
Shows the server uptime | 1.0.0 | ngdpbase |
[{UserLookupPlugin}] |
Search and display users — permission-gated PII via API | 1.0.0 | ngdpbase |
[{VariablesPlugin}] |
Displays system and contextual variables available in the wiki | 1.0.0 | ngdpbase |
[{VolcanoInfobox}] |
No description | N/A | Unknown |
[{VolcanoList}] |
No description | N/A | Unknown |
[{VolcanoMap}] |
No description | N/A | Unknown |
[{VolcanoSearch}] |
No description | N/A | Unknown |
ngdpbase.*
| Key | Value |
|---|---|
ngdpbase.access-control.business-hours.days |
monday,tuesday,wednesday,thursday,friday |
ngdpbase.access-control.business-hours.enabled |
false |
ngdpbase.access-control.business-hours.end |
17:00 |
ngdpbase.access-control.business-hours.start |
09:00 |
ngdpbase.access-control.context-aware.enabled |
true |
ngdpbase.access-control.context-aware.time-zone |
UTC |
ngdpbase.access-control.custom-schedules.enabled |
false |
ngdpbase.access-control.custom-schedules.schedules |
./config/schedules.json |
ngdpbase.access-control.holidays.calendar |
./config/holidays.json |
ngdpbase.access-control.holidays.enabled |
false |
ngdpbase.access.policies |
[
{
"id": "admin-full-access",
"name": "Administrator Full Access",
"description": "Full system access for administrators - all page and admin permissions",
"priority": 100,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "admin"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page",
"search-user",
"user-read",
"user-edit",
"user-create",
"user-delete",
"admin-roles",
"admin-system"
]
},
{
"id": "user-admin-permissions",
"name": "User Administrator Permissions",
"description": "Can manage users — create, edit, deactivate, delete",
"priority": 95,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "user-admin"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"user-read",
"user-edit",
"user-create",
"user-delete",
"search-user"
]
},
{
"id": "editor-permissions",
"name": "Editor Permissions",
"description": "Can create, edit, delete, and rename pages plus manage assets",
"priority": 80,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "editor"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page"
]
},
{
"id": "contributor-permissions",
"name": "Contributor Permissions",
"description": "Can create and edit pages, upload assets (no delete/rename)",
"priority": 70,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "contributor"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-edit",
"page-create",
"page-export",
"asset-read",
"asset-upload",
"search-page"
]
},
{
"id": "reader-permissions",
"name": "Reader Permissions",
"description": "Read-only access - can view pages and assets, search, and export",
"priority": 60,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "reader"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"page-export",
"asset-read",
"search-page"
]
},
{
"id": "member-permissions",
"name": "Member Permissions",
"description": "Community member read-only access",
"priority": 55,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "member"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read",
"asset-read",
"search-page"
]
},
{
"id": "anonymous-read-only",
"name": "Anonymous Read Access",
"description": "Anonymous users can only read pages",
"priority": 50,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "anonymous"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read"
]
},
{
"id": "deny-anonymous-system-pages",
"name": "Deny Anonymous System Pages",
"description": "Block anonymous access to system and admin category pages",
"priority": 90,
"effect": "deny",
"subjects": [
{
"type": "role",
"value": "anonymous"
}
],
"resources": [
{
"type": "category",
"value": "system"
},
{
"type": "category",
"value": "admin"
}
],
"actions": [
"*"
]
},
{
"id": "default-view-for-all",
"name": "Default View Access for All",
"description": "Fallback - all authenticated users can at minimum view pages",
"priority": 1,
"effect": "allow",
"subjects": [
{
"type": "role",
"value": "All"
}
],
"resources": [
{
"type": "page",
"pattern": "*"
}
],
"actions": [
"page-read"
]
}
] |
ngdpbase.access.policies.default-policy |
deny |
ngdpbase.access.policies.enabled |
true |
ngdpbase.addons |
{} |
ngdpbase.addons.forms.dataPath |
${FAST_STORAGE}/forms |
ngdpbase.addons.forms.enabled |
false |
ngdpbase.addons.forms.notifyRole |
admin |
ngdpbase.addons.geohazardwatch.dataPath |
|
ngdpbase.addons.geohazardwatch.enabled |
true |
ngdpbase.addons.geohazardwatch.eqIntervalMs |
1200000 |
ngdpbase.addons.geohazardwatch.hansIntervalMs |
600000 |
ngdpbase.application-name |
GeoHazardWatch |
ngdpbase.application.base-url |
https://geohazardwatch.com |
ngdpbase.application.category |
Digital Platform |
ngdpbase.application.contact.enabled |
true |
ngdpbase.application.contact.footer.enabled |
true |
ngdpbase.application.contact.page |
|
ngdpbase.application.contact.persist.enabled |
true |
ngdpbase.application.contact.persist.path |
|
ngdpbase.application.contact.recipient |
[email protected] |
ngdpbase.application.organization.file |
geohazardwatch.json |
ngdpbase.application.organization.provider |
fileorganizationprovider |
ngdpbase.application.organization.provider.default |
fileorganizationprovider |
ngdpbase.application.organization.storagedir |
${FAST_STORAGE}/organizations |
ngdpbase.application.persons.provider |
filepersonprovider |
ngdpbase.application.persons.provider.default |
filepersonprovider |
ngdpbase.application.persons.storagedir |
${FAST_STORAGE}/persons |
ngdpbase.application.registration |
false |
ngdpbase.application.registration.redirect-page |
request-access |
ngdpbase.application.roles.provider |
fileroleprovider |
ngdpbase.application.roles.provider.default |
fileroleprovider |
ngdpbase.application.roles.storagedir |
${FAST_STORAGE}/roles |
ngdpbase.approver.workflow.save-wiki-page |
Admin |
ngdpbase.attachment.allowedtypes |
image/*,text/*,application/pdf |
ngdpbase.attachment.enabled |
true |
ngdpbase.attachment.enhanced.cachemetadata |
true |
ngdpbase.attachment.enhanced.enabled |
true |
ngdpbase.attachment.enhanced.generatethumbnails |
true |
ngdpbase.attachment.enhanced.iconpath |
/icons/filetypes |
ngdpbase.attachment.enhanced.metadata |
true |
ngdpbase.attachment.enhanced.showfilesize |
true |
ngdpbase.attachment.enhanced.showmetadata |
true |
ngdpbase.attachment.enhanced.showmodified |
true |
ngdpbase.attachment.enhanced.thumbnails |
true |
ngdpbase.attachment.enhanced.thumbnailsizes |
150x150,300x300 |
ngdpbase.attachment.forcedownload |
false |
ngdpbase.attachment.maxsize |
10485760 |
ngdpbase.attachment.metadatafile |
${SLOW_STORAGE}/attachments/attachment-metadata.json |
ngdpbase.attachment.provider |
basicattachmentprovider |
ngdpbase.attachment.provider.basic.hashcontent |
true |
ngdpbase.attachment.provider.basic.hashmethod |
sha256 |
ngdpbase.attachment.provider.basic.storagedir |
${SLOW_STORAGE}/attachments |
ngdpbase.attachment.provider.default |
basicattachmentprovider |
ngdpbase.audit.enabled |
true |
ngdpbase.audit.flushinterval |
30000 |
ngdpbase.audit.loglevel |
info |
ngdpbase.audit.maxqueuesize |
1000 |
ngdpbase.audit.provider |
fileauditprovider |
ngdpbase.audit.provider.cloud.loggroup |
/ngdpbase/audit |
ngdpbase.audit.provider.cloud.logstream |
audit-events |
ngdpbase.audit.provider.cloud.region |
us-east-1 |
ngdpbase.audit.provider.cloud.service |
cloudwatch |
ngdpbase.audit.provider.database.connectionstring |
|
ngdpbase.audit.provider.database.maxconnections |
10 |
ngdpbase.audit.provider.database.tablename |
audit_logs |
ngdpbase.audit.provider.database.type |
postgresql |
ngdpbase.audit.provider.default |
fileauditprovider |
ngdpbase.audit.provider.file.archivefilename |
audit-archive.log |
ngdpbase.audit.provider.file.auditfilename |
audit.log |
ngdpbase.audit.provider.file.logdirectory |
${FAST_STORAGE}/logs |
ngdpbase.audit.provider.file.maxfiles |
10 |
ngdpbase.audit.provider.file.maxfilesize |
10MB |
ngdpbase.audit.retentiondays |
90 |
ngdpbase.auth.cloudflare-access.application-aud |
|
ngdpbase.auth.cloudflare-access.default-role |
occupant |
ngdpbase.auth.cloudflare-access.enabled |
false |
ngdpbase.auth.cloudflare-access.group-map |
{} |
ngdpbase.auth.cloudflare-access.team-domain |
|
ngdpbase.auth.google-oidc.auto-provision |
true |
ngdpbase.auth.google-oidc.callback-url |
|
ngdpbase.auth.google-oidc.client-id |
|
ngdpbase.auth.google-oidc.client-secret |
|
ngdpbase.auth.google-oidc.default-roles |
[
"occupant"
] |
ngdpbase.auth.google-oidc.deny-redirect |
/login?error=Access+denied |
ngdpbase.auth.google-oidc.enabled |
false |
ngdpbase.auth.google-oidc.hd |
|
ngdpbase.auth.magic-link.enabled |
false |
ngdpbase.auth.magic-link.ttl-minutes |
15 |
ngdpbase.auth.password.enabled |
true |
ngdpbase.auth.required-factors |
[
"password"
] |
ngdpbase.auth.user.default-external |
false |
ngdpbase.authorizer |
DefaultAuthorizer |
ngdpbase.backup.auto-backup |
false |
ngdpbase.backup.auto-backup-days |
daily |
ngdpbase.backup.auto-backup-interval |
86400000 |
ngdpbase.backup.auto-backup-time |
02:00 |
ngdpbase.backup.compress |
true |
ngdpbase.backup.directory |
${SLOW_STORAGE}/backups |
ngdpbase.backup.max-backups |
10 |
ngdpbase.backup.provider |
filebackupprovider |
ngdpbase.breadcrumbs.maxpages |
10 |
ngdpbase.cache.checkperiod |
120 |
ngdpbase.cache.defaultttl |
300 |
ngdpbase.cache.enabled |
true |
ngdpbase.cache.maxkeys |
1000 |
ngdpbase.cache.provider |
nodecacheprovider |
ngdpbase.cache.provider.default |
nodecacheprovider |
ngdpbase.cache.provider.nodecache.checkperiod |
120 |
ngdpbase.cache.provider.nodecache.maxkeys |
1000 |
ngdpbase.cache.provider.nodecache.stdttl |
300 |
ngdpbase.cache.provider.nodecache.useclones |
true |
ngdpbase.cache.provider.redis.connecttimeout |
5000 |
ngdpbase.cache.provider.redis.enablecluster |
false |
ngdpbase.cache.provider.redis.keyprefix |
ngdpbase: |
ngdpbase.cache.provider.redis.url |
redis://localhost:6379 |
ngdpbase.catalog.ai.enabled |
false |
ngdpbase.catalog.ai.provider |
null |
ngdpbase.catalog.ai.threshold |
0.7 |
ngdpbase.comments.allow |
true |
ngdpbase.comments.storagedir |
${SLOW_STORAGE}/comments |
ngdpbase.default.system-category |
general |
ngdpbase.default.template.dateformat |
dd-MMM-yyyy HH:mm |
ngdpbase.default.timezone |
UTC |
ngdpbase.diff-provider |
TraditionalDiffProvider |
ngdpbase.directories.data |
${FAST_STORAGE} |
ngdpbase.directories.pages |
${SLOW_STORAGE}/pages |
ngdpbase.directories.required-pages |
./required-pages |
ngdpbase.directories.resources |
./resources |
ngdpbase.directories.schemas |
${FAST_STORAGE}/schemas |
ngdpbase.directories.templates |
./templates |
ngdpbase.directories.users |
${FAST_STORAGE}/users |
ngdpbase.directories.work |
./ |
ngdpbase.encoding |
UTF-8 |
ngdpbase.favicon-path |
/favicon.svg |
ngdpbase.features.export.html |
true |
ngdpbase.features.export.odt |
false |
ngdpbase.features.export.pdf |
false |
ngdpbase.features.images.allowed-types |
image/jpeg,image/png,image/gif,image/webp |
ngdpbase.features.images.default-alt |
Uploaded image |
ngdpbase.features.images.default-class |
wiki-image |
ngdpbase.features.images.enabled |
true |
ngdpbase.features.images.max-size |
5MB |
ngdpbase.features.images.upload-dir |
./public/images |
ngdpbase.features.llm.enabled |
false |
ngdpbase.features.llm.endpoint |
http://localhost:11434 |
ngdpbase.features.llm.model |
llama2 |
ngdpbase.features.maintenance.allow-admins |
true |
ngdpbase.features.maintenance.enabled |
false |
ngdpbase.features.maintenance.estimated-duration |
null |
ngdpbase.features.maintenance.message |
System is currently under maintenance. Please try again later. |
ngdpbase.fetch-timeout-ms |
30000 |
ngdpbase.footnotes.enabled |
true |
ngdpbase.footnotes.storagedir |
${SLOW_STORAGE}/footnotes |
ngdpbase.front-page |
volcanoes-and-earthquakes |
ngdpbase.github.repo |
jwilleke/ngdpbase |
ngdpbase.groupdatabase |
JSONGroupDatabase |
ngdpbase.holidays.dates |
{
"2025-01-01": {
"name": "New Year's Day",
"message": "Access restricted on New Year's Day",
"enabled": true
},
"2025-07-04": {
"name": "Independence Day",
"message": "Access restricted on Independence Day",
"enabled": true
},
"2025-12-25": {
"name": "Christmas Day",
"message": "Access restricted on Christmas Day",
"enabled": true
},
"2025-12-26": {
"name": "Boxing Day",
"message": "Access restricted on Boxing Day",
"enabled": true
}
} |
ngdpbase.holidays.enabled |
true |
ngdpbase.holidays.recurring |
{
"*-01-01": {
"name": "New Year's Day",
"message": "Access restricted on New Year's Day",
"enabled": true
},
"*-12-25": {
"name": "Christmas Day",
"message": "Access restricted on Christmas Day",
"enabled": true
}
} |
ngdpbase.interwiki.enabled |
true |
ngdpbase.interwiki.options |
{
"openInNewWindow": true,
"addIconIndicator": true,
"caseSensitive": false,
"showTooltips": true,
"cacheTTL": 3600,
"maxCacheEntries": 1000
} |
ngdpbase.interwiki.sites |
{
"Wikipedia": {
"url": "https://en.wikipedia.org/wiki/%s",
"description": "Wikipedia, the free encyclopedia",
"icon": "wikipedia.png",
"enabled": true,
"openInNewWindow": true
},
"JSPWiki": {
"url": "https://jspwiki-wiki.apache.org/Wiki.jsp?page=%s",
"description": "Apache JSPWiki Documentation",
"icon": "jspwiki.png",
"enabled": true,
"openInNewWindow": true
},
"MeatBall": {
"url": "http://www.usemod.com/cgi-bin/mb.pl?%s",
"description": "MeatBall Wiki",
"icon": "meatball.png",
"enabled": true,
"openInNewWindow": true
},
"C2": {
"url": "http://wiki.c2.com/?%s",
"description": "C2 Wiki (Portland Pattern Repository)",
"icon": "c2.png",
"enabled": false,
"openInNewWindow": true
},
"GVP": {
"url": "https://volcano.si.edu/volcano.cfm?vn=%s",
"description": "GVP (Global Volcanism Program)",
"icon": "gvp-icon.jpg",
"enabled": true,
"openInNewWindow": true
},
"GVP-COUNTRY": {
"url": "https://volcano.si.edu/volcanolist_countries.cfm?country=%s",
"description": "GVP (Global Volcanism Program) — Volcanoes by Country",
"icon": "gvp-icon.jpg",
"enabled": true,
"openInNewWindow": true
}
} |
ngdpbase.jsonorganizationsdatabase |
users/organizations.json |
ngdpbase.jsonpersonsdatabase |
.users/persons.json |
ngdpbase.jsonuserdatabase |
.users/users.json |
ngdpbase.knowledge-role |
{
"source": {
"label": "source",
"description": "Authoritative primary content; body treated as immutable (step 2 of LLM-wiki build plan)",
"default": false,
"enabled": true,
"page-badge": {
"color": "bg-dark",
"label": "Source",
"title": "Source page — primary, immutable material"
}
},
"citation": {
"label": "citation",
"description": "Interpretive claim grounded in one or more sources",
"default": false,
"enabled": true,
"page-badge": {
"color": "bg-warning text-dark",
"label": "Citation",
"title": "Citation page — claims grounded in sources"
}
},
"concept": {
"label": "concept",
"description": "Synthesis drawing on multiple citations",
"default": false,
"enabled": true,
"page-badge": {
"color": "bg-danger",
"label": "Concept",
"title": "Concept page — synthesis across citations"
}
}
} |
ngdpbase.location.default-provider |
osm |
ngdpbase.logging.debug.enabled |
false |
ngdpbase.logging.debug.login |
false |
ngdpbase.logging.debug.session |
false |
ngdpbase.logging.dir |
${FAST_STORAGE}/logs |
ngdpbase.logging.level |
info |
ngdpbase.logging.max-files |
5 |
ngdpbase.logging.max-size |
1MB |
ngdpbase.logging.provider |
fileloggingprovider |
ngdpbase.login-module.class |
CookieAuthenticationLoginModule |
ngdpbase.lucene-search-provider.lucene-directory |
./lucene |
ngdpbase.mail.enabled |
true |
ngdpbase.mail.from |
GeoHazardWatch Contact <[email protected]> |
ngdpbase.mail.honeypot.enabled |
true |
ngdpbase.mail.provider |
smtp |
ngdpbase.mail.provider.smtp.from |
|
ngdpbase.mail.provider.smtp.host |
smtp.gmail.com |
ngdpbase.mail.provider.smtp.pass |
nqyiswddgaicffnq |
ngdpbase.mail.provider.smtp.port |
587 |
ngdpbase.mail.provider.smtp.secure |
false |
ngdpbase.mail.provider.smtp.user |
[email protected] |
ngdpbase.mail.rate-limit.enabled |
true |
ngdpbase.mail.rate-limit.max-submissions |
5 |
ngdpbase.mail.rate-limit.window-minutes |
15 |
ngdpbase.managers.addons-manager.addons-path |
[
"/app/addons",
"/opt/geohazardwatch/addons"
] |
ngdpbase.managers.addons-manager.enabled |
true |
ngdpbase.managers.cache-manager.enabled |
true |
ngdpbase.managers.page-manager.enabled |
true |
ngdpbase.managers.plugin-manager.enabled |
true |
ngdpbase.managers.plugin-manager.search-paths |
[
"./dist/src/plugins"
] |
ngdpbase.managers.rendering-manager.enabled |
true |
ngdpbase.managers.search-manager.enabled |
true |
ngdpbase.managers.template-manager.enabled |
true |
ngdpbase.markdown.footnotes.enabled |
true |
ngdpbase.markdown.ncm.image.ad-deny-list |
[
"doubleclick.net",
"googlesyndication.com",
"google-analytics.com",
"facebook.com/tr",
"scorecardresearch.com"
] |
ngdpbase.markup.cache-ttl |
300 |
ngdpbase.markup.cache.enable-warmup |
true |
ngdpbase.markup.cache.handler-results.enabled |
true |
ngdpbase.markup.cache.handler-results.max-size |
2000 |
ngdpbase.markup.cache.handler-results.ttl |
600 |
ngdpbase.markup.cache.metrics-enabled |
true |
ngdpbase.markup.cache.parse-results.enabled |
true |
ngdpbase.markup.cache.parse-results.max-size |
1000 |
ngdpbase.markup.cache.parse-results.ttl |
300 |
ngdpbase.markup.cache.patterns.enabled |
true |
ngdpbase.markup.cache.patterns.max-size |
100 |
ngdpbase.markup.cache.patterns.ttl |
3600 |
ngdpbase.markup.cache.variables.enabled |
true |
ngdpbase.markup.cache.variables.max-size |
500 |
ngdpbase.markup.cache.variables.ttl |
900 |
ngdpbase.markup.caching |
true |
ngdpbase.markup.enabled |
true |
ngdpbase.markup.fallback-to-legacy |
true |
ngdpbase.markup.fenced-code-tags |
[
"text",
"plain",
"none",
"javascript",
"js",
"typescript",
"ts",
"jsx",
"tsx",
"html",
"xml",
"svg",
"css",
"scss",
"sass",
"less",
"json",
"yaml",
"yml",
"toml",
"bash",
"sh",
"shell",
"zsh",
"python",
"py",
"java",
"kotlin",
"c",
"cpp",
"csharp",
"cs",
"go",
"rust",
"ruby",
"php",
"sql",
"markdown",
"md",
"diff",
"patch",
"mermaid"
] |
ngdpbase.markup.filters.custom.auto-load |
true |
ngdpbase.markup.filters.custom.cache-results |
true |
ngdpbase.markup.filters.custom.enabled |
false |
ngdpbase.markup.filters.custom.search-paths |
./filters,./src/filters |
ngdpbase.markup.filters.enabled |
true |
ngdpbase.markup.filters.pipeline.enable-profiling |
true |
ngdpbase.markup.filters.pipeline.fail-on-error |
false |
ngdpbase.markup.filters.pipeline.max-filters |
50 |
ngdpbase.markup.filters.pipeline.timeout |
10000 |
ngdpbase.markup.filters.security.allowed-attributes |
class,id,href,src,alt,title |
ngdpbase.markup.filters.security.allowed-tags |
p,div,span,strong,em,ul,ol,li,h1,h2,h3,h4,h5,h6,a,img |
ngdpbase.markup.filters.security.enabled |
false |
ngdpbase.markup.filters.security.prevent-csrf |
true |
ngdpbase.markup.filters.security.prevent-xss |
true |
ngdpbase.markup.filters.security.priority |
110 |
ngdpbase.markup.filters.security.sanitize-html |
true |
ngdpbase.markup.filters.security.strip-dangerous-content |
true |
ngdpbase.markup.filters.spam.blacklist-words |
spam,casino,pharmacy,viagra |
ngdpbase.markup.filters.spam.cache-blacklist |
true |
ngdpbase.markup.filters.spam.enabled |
false |
ngdpbase.markup.filters.spam.max-images |
5 |
ngdpbase.markup.filters.spam.max-links |
10 |
ngdpbase.markup.filters.spam.priority |
100 |
ngdpbase.markup.filters.spam.whitelist-domains |
wikipedia.org,github.com,stackoverflow.com |
ngdpbase.markup.filters.validation.enabled |
true |
ngdpbase.markup.filters.validation.max-content-length |
1048576 |
ngdpbase.markup.filters.validation.priority |
90 |
ngdpbase.markup.filters.validation.report-errors |
true |
ngdpbase.markup.filters.validation.validate-images |
true |
ngdpbase.markup.filters.validation.validate-links |
true |
ngdpbase.markup.filters.validation.validate-markup |
true |
ngdpbase.markup.handler-registry.allow-duplicate-priorities |
true |
ngdpbase.markup.handler-registry.default-timeout |
5000 |
ngdpbase.markup.handler-registry.enable-conflict-detection |
true |
ngdpbase.markup.handler-registry.enable-dependency-resolution |
true |
ngdpbase.markup.handler-registry.max-handlers |
100 |
ngdpbase.markup.handlers.attachment.enabled |
true |
ngdpbase.markup.handlers.attachment.enhanced |
true |
ngdpbase.markup.handlers.attachment.metadata |
true |
ngdpbase.markup.handlers.attachment.priority |
75 |
ngdpbase.markup.handlers.attachment.thumbnails |
true |
ngdpbase.markup.handlers.form.enabled |
true |
ngdpbase.markup.handlers.form.priority |
85 |
ngdpbase.markup.handlers.interwiki.enabled |
true |
ngdpbase.markup.handlers.interwiki.priority |
80 |
ngdpbase.markup.handlers.plugin.enabled |
true |
ngdpbase.markup.handlers.plugin.priority |
90 |
ngdpbase.markup.handlers.rss.enabled |
true |
ngdpbase.markup.handlers.rss.priority |
60 |
ngdpbase.markup.handlers.search.enabled |
true |
ngdpbase.markup.handlers.search.priority |
65 |
ngdpbase.markup.handlers.style.enabled |
true |
ngdpbase.markup.handlers.style.priority |
70 |
ngdpbase.markup.handlers.wikitag.enabled |
true |
ngdpbase.markup.handlers.wikitag.priority |
95 |
ngdpbase.markup.integration.rendering-manager |
true |
ngdpbase.markup.log-parsing-method |
true |
ngdpbase.markup.use-advanced-parser |
true |
ngdpbase.maximum.user-keywords |
5 |
ngdpbase.media.enabled |
false |
ngdpbase.media.extensions |
[
"jpg",
"jpeg",
"png",
"gif",
"heic",
"heif",
"tiff",
"tif",
"webp",
"raw",
"orf",
"cr2",
"nef",
"arw",
"dng",
"bmp",
"mp4",
"mov",
"avi",
"mkv",
"m4v",
"wmv",
"3gp"
] |
ngdpbase.media.folders |
[] |
ngdpbase.media.ignoredirs |
[
".dtrash",
".ts"
] |
ngdpbase.media.maxdepth |
5 |
ngdpbase.media.metadata.priority |
[
"EXIF",
"IPTC",
"XMP"
] |
ngdpbase.media.readonly |
true |
ngdpbase.media.scaninterval |
3600000 |
ngdpbase.media.thumbnail.sizes |
300x300,150x150 |
ngdpbase.notifications.auto-save-interval |
300000 |
ngdpbase.notifications.dir |
${FAST_STORAGE}/notifications |
ngdpbase.notifications.escalation.enabled |
false |
ngdpbase.notifications.escalation.levels |
[
"error"
] |
ngdpbase.notifications.escalation.recipient-role |
admin |
ngdpbase.notifications.file |
notifications.json |
ngdpbase.page.enabled |
true |
ngdpbase.page.nofooter |
[
"LeftMenu",
"Footer",
"Template:PageTabs"
] |
ngdpbase.page.notabs |
[
"LeftMenu",
"Footer",
"Template:PageTabs"
] |
ngdpbase.page.provider |
versioningfileprovider |
ngdpbase.page.provider.default |
filesystemprovider |
ngdpbase.page.provider.filesystem.autosave |
true |
ngdpbase.page.provider.filesystem.encoding |
utf-8 |
ngdpbase.page.provider.filesystem.requiredpagesdir |
./required-pages |
ngdpbase.page.provider.filesystem.storagedir |
${SLOW_STORAGE}/pages |
ngdpbase.page.provider.versioning.indexfile |
${FAST_STORAGE}/page-index.json |
ngdpbase.pageFilters |
org.apache.wiki.filters.BasicPageFilter,org.apache.wiki.filters.ProfanityFilter |
ngdpbase.permissions.definitions |
{
"page-read": {
"description": "View pages",
"icon": "eye",
"color": "#6c757d"
},
"page-edit": {
"description": "Edit pages",
"icon": "edit",
"color": "#007bff"
},
"page-create": {
"description": "Create new pages",
"icon": "plus",
"color": "#28a745"
},
"page-delete": {
"description": "Delete pages",
"icon": "trash",
"color": "#dc3545"
},
"page-rename": {
"description": "Rename pages",
"icon": "i-cursor",
"color": "#fd7e14"
},
"page-export": {
"description": "Export pages",
"icon": "file-export",
"color": "#6c757d"
},
"asset-read": {
"description": "View assets (attachments)",
"icon": "paperclip",
"color": "#6c757d"
},
"asset-upload": {
"description": "Upload assets",
"icon": "upload",
"color": "#28a745"
},
"asset-delete": {
"description": "Delete assets",
"icon": "trash",
"color": "#dc3545"
},
"search-page": {
"description": "Search pages",
"icon": "search",
"color": "#6c757d"
},
"search-user": {
"description": "Search users",
"icon": "search",
"color": "#6c757d"
},
"user-read": {
"description": "View user list and profiles",
"icon": "users",
"color": "#6c757d"
},
"user-edit": {
"description": "Edit user accounts",
"icon": "user-edit",
"color": "#007bff"
},
"user-create": {
"description": "Create user accounts",
"icon": "user-plus",
"color": "#28a745"
},
"user-delete": {
"description": "Delete user accounts",
"icon": "user-minus",
"color": "#dc3545"
},
"admin-system": {
"description": "System administration",
"icon": "cog",
"color": "#dc3545"
},
"admin-roles": {
"description": "Role management",
"icon": "shield-alt",
"color": "#dc3545"
}
} |
ngdpbase.plugin.searchresult.maxItems |
50 |
ngdpbase.plugin.searchresult.showScore |
true |
ngdpbase.plugin.versioning.use |
true |
ngdpbase.plugins.enabled |
true |
ngdpbase.plugins.searchPath |
./plugins |
ngdpbase.referenceStyle |
relative |
ngdpbase.roles.definitions |
{
"admin": {
"name": "admin",
"displayname": "Administrator",
"description": "Full system access to all features",
"issystem": true,
"icon": "shield-alt",
"color": "#dc3545",
"permissions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page",
"search-user",
"user-read",
"user-edit",
"user-create",
"user-delete",
"admin-system",
"admin-roles"
]
},
"user-admin": {
"name": "user-admin",
"displayname": "User Administrator",
"description": "Can manage users — create, edit, deactivate, delete",
"issystem": true,
"icon": "user-cog",
"color": "#6610f2",
"permissions": [
"user-read",
"user-edit",
"user-create",
"user-delete",
"search-user"
]
},
"editor": {
"name": "editor",
"displayname": "Editor",
"description": "Can create, edit, delete, and rename pages",
"issystem": true,
"icon": "edit",
"color": "#007bff",
"permissions": [
"page-read",
"page-edit",
"page-create",
"page-delete",
"page-rename",
"page-export",
"asset-read",
"asset-upload",
"asset-delete",
"search-page"
]
},
"contributor": {
"name": "contributor",
"displayname": "Contributor",
"description": "Can create and edit pages",
"issystem": true,
"icon": "user-edit",
"color": "#28a745",
"permissions": [
"page-read",
"page-edit",
"page-create",
"page-export",
"asset-read",
"asset-upload",
"search-page"
]
},
"reader": {
"name": "reader",
"displayname": "Reader",
"description": "Read-only access to content",
"issystem": true,
"icon": "book-reader",
"color": "#6c757d",
"permissions": [
"page-read",
"page-export",
"asset-read",
"search-page"
]
},
"member": {
"name": "member",
"displayname": "Member",
"description": "Community member — same read access as reader, placeholder for community-specific permissions",
"issystem": true,
"icon": "id-card",
"color": "#20c997",
"permissions": [
"page-read",
"asset-read",
"search-page"
]
},
"anonymous": {
"name": "anonymous",
"displayname": "Anonymous",
"description": "Public access without authentication",
"issystem": true,
"icon": "user-secret",
"color": "#adb5bd",
"permissions": [
"page-read",
"asset-read"
]
}
} |
ngdpbase.rss.channel-description |
RSS feed for ngdpbase updates |
ngdpbase.rss.channel-title |
ngdpbase RSS Feed |
ngdpbase.rss.file-name |
rss.xml |
ngdpbase.rss.generate |
true |
ngdpbase.rss.interval |
3600 |
ngdpbase.schedules |
{
"business-hours": {
"name": "Standard Business Hours",
"description": "Monday-Friday, 9 AM - 5 PM",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
},
{
"days": [
"saturday",
"sunday"
],
"type": "deny"
}
],
"exceptions": [],
"enabled": true
},
"weekend-support": {
"name": "Weekend Support",
"description": "Limited weekend access for critical issues",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
},
{
"days": [
"saturday"
],
"startTime": "10:00",
"endTime": "14:00",
"type": "allow"
},
{
"days": [
"sunday"
],
"type": "deny"
}
],
"exceptions": [],
"enabled": true
},
"emergency-24-7": {
"name": "24/7 Emergency Access",
"description": "Full access for emergency situations",
"timeZone": "UTC",
"rules": [
{
"type": "allow"
}
],
"exceptions": [],
"enabled": true
},
"role_admin": {
"name": "Administrator Schedule",
"description": "Extended hours for administrators",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00",
"endTime": "18:00",
"type": "allow"
},
{
"days": [
"saturday"
],
"startTime": "09:00",
"endTime": "12:00",
"type": "allow"
}
],
"exceptions": [],
"enabled": true
},
"category_System": {
"name": "System Pages Schedule",
"description": "Restricted access to system pages",
"timeZone": "America/New_York",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
}
],
"exceptions": [],
"enabled": true
},
"default": {
"name": "Default Schedule",
"description": "Fallback schedule for users without specific assignments",
"timeZone": "UTC",
"rules": [
{
"days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "09:00",
"endTime": "17:00",
"type": "allow"
}
],
"exceptions": [],
"enabled": true
}
} |
ngdpbase.schedules.enabled |
true |
ngdpbase.schema-types |
{
"documentation": "TechArticle",
"developer": "TechArticle",
"journal": "BlogPosting"
} |
ngdpbase.search.autocomplete.enabled |
true |
ngdpbase.search.autocomplete.minlength |
2 |
ngdpbase.search.enabled |
true |
ngdpbase.search.maxresults |
50 |
ngdpbase.search.plugin.allowAdvanced |
true |
ngdpbase.search.plugin.cacheResults |
true |
ngdpbase.search.plugin.cacheTTL |
300 |
ngdpbase.search.plugin.maxResults |
50 |
ngdpbase.search.plugin.showScore |
true |
ngdpbase.search.provider |
lunrsearchprovider |
ngdpbase.search.provider.default |
lunrsearchprovider |
ngdpbase.search.provider.elasticsearch.autotagging.enabled |
false |
ngdpbase.search.provider.elasticsearch.connecttimeout |
5000 |
ngdpbase.search.provider.elasticsearch.indexname |
ngdpbase-pages |
ngdpbase.search.provider.elasticsearch.requesttimeout |
30000 |
ngdpbase.search.provider.elasticsearch.url |
http://localhost:9200 |
ngdpbase.search.provider.lunr.boost.keywords |
4 |
ngdpbase.search.provider.lunr.boost.systemcategory |
8 |
ngdpbase.search.provider.lunr.boost.tags |
5 |
ngdpbase.search.provider.lunr.boost.title |
10 |
ngdpbase.search.provider.lunr.boost.userkeywords |
6 |
ngdpbase.search.provider.lunr.indexdir |
${FAST_STORAGE}/search-index |
ngdpbase.search.provider.lunr.maxresults |
50 |
ngdpbase.search.provider.lunr.snippetlength |
200 |
ngdpbase.search.provider.lunr.stemming |
true |
ngdpbase.search.suggestions.enabled |
true |
ngdpbase.search.suggestions.maxitems |
10 |
ngdpbase.server.host |
0.0.0.0 |
ngdpbase.server.port |
3000 |
ngdpbase.session.http-only |
true |
ngdpbase.session.max-age |
86400000 |
ngdpbase.session.sameSite |
lax |
ngdpbase.session.secret |
ngdpbase-session-secret-change-in-production |
ngdpbase.session.secure |
true |
ngdpbase.session.storagedir |
${FAST_STORAGE}/sessions |
ngdpbase.session.store |
users/sessions.json |
ngdpbase.specialpage.diff |
Diff.jsp |
ngdpbase.specialpage.findpage |
FindPage.jsp |
ngdpbase.specialpage.login |
Login.jsp |
ngdpbase.specialpage.search |
Search.jsp |
ngdpbase.specialpage.upload |
Upload.jsp |
ngdpbase.specialpage.userpreferences |
UserPreferences.jsp |
ngdpbase.specialpage.workflow |
Workflow.jsp |
ngdpbase.storageLocation.aclBasedStorage |
true |
ngdpbase.storageLocation.categoryBasedStorage.Admin |
required |
ngdpbase.storageLocation.categoryBasedStorage.Documentation |
regular |
ngdpbase.storageLocation.categoryBasedStorage.General |
regular |
ngdpbase.storageLocation.categoryBasedStorage.Security |
required |
ngdpbase.storageLocation.categoryBasedStorage.System |
required |
ngdpbase.storageLocation.enabled |
true |
ngdpbase.storageLocation.roleBasedStorage.admin |
required |
ngdpbase.storageLocation.roleBasedStorage.editor |
regular |
ngdpbase.storageLocation.roleBasedStorage.user |
regular |
ngdpbase.style.bootstrap.integration |
true |
ngdpbase.style.custom-classes.enabled |
true |
ngdpbase.style.predefined.background |
bg-primary,bg-secondary,bg-light,bg-dark |
ngdpbase.style.predefined.layout |
text-center,text-left,text-right,float-left,float-right |
ngdpbase.style.predefined.text |
text-primary,text-secondary,text-success,text-danger,text-warning,text-info |
ngdpbase.style.security.allow-inline-css |
false |
ngdpbase.style.security.allowed-properties |
color,background-color,font-weight,font-style,text-align |
ngdpbase.system-category |
{
"general": {
"label": "general",
"description": "General User pages",
"default": true,
"storageLocation": "regular",
"enabled": true
},
"system": {
"label": "system",
"description": "System configuration and infrastructure pages",
"default": false,
"storageLocation": "required",
"enabled": true,
"page-badge": {
"color": "bg-secondary",
"label": "System",
"title": "System page"
}
},
"documentation": {
"label": "documentation",
"description": "End-User documentation",
"default": false,
"storageLocation": "required",
"enabled": true,
"page-badge": {
"color": "bg-info text-dark",
"label": "Documentation",
"title": "Documentation page"
}
},
"developer": {
"label": "developer",
"description": "Developer documentation and technical note Only in GitHub",
"default": false,
"storageLocation": "github",
"enabled": true
},
"addon": {
"label": "addon",
"description": "Pages seeded by an installed add-on",
"default": false,
"storageLocation": "regular",
"enabled": true,
"page-badge": {
"color": "bg-primary",
"label": "Addon",
"title": "Add-on page"
}
},
"user-profile": {
"label": "user-profile",
"description": "User profile pages",
"default": false,
"storageLocation": "regular",
"enabled": true,
"page-badge": {
"color": "bg-success",
"label": "Profile",
"title": "User profile page"
}
},
"journal": {
"label": "journal",
"description": "Personal journal entries — schema.org BlogPosting at JSON-LD render time (#791)",
"default": false,
"storageLocation": "regular",
"enabled": true,
"page-badge": {
"color": "bg-info",
"label": "Journal",
"title": "Journal entry"
}
}
} |
ngdpbase.system-keywords |
{
"general": {
"label": "general",
"description": "General-purpose keyword for standard wiki content",
"default": true,
"category": "content-type",
"enabled": true
},
"draft": {
"label": "draft",
"description": "Work in progress content",
"category": "workflow-status",
"enabled": true
},
"review": {
"label": "review",
"description": "Content under review",
"category": "workflow-status",
"enabled": true
},
"published": {
"label": "published",
"description": "Finalized and approved content",
"category": "workflow-status",
"enabled": true
},
"medicine": {
"label": "medicine",
"description": "Medical and healthcare-related content",
"category": "subject",
"enabled": true
},
"geology": {
"label": "geology",
"description": "Geological and earth science content",
"category": "subject",
"enabled": true
},
"meteorology": {
"label": "meteorology",
"description": "Weather and atmospheric science content",
"category": "subject",
"enabled": true
},
"oceanography": {
"label": "oceanography",
"description": "Ocean and marine science content",
"category": "subject",
"enabled": true
},
"psychology": {
"label": "psychology",
"description": "Psychological and behavioral science content",
"category": "subject",
"enabled": true
},
"sociology": {
"label": "sociology",
"description": "Social science and society-related content",
"category": "subject",
"enabled": true
},
"anthropology": {
"label": "anthropology",
"description": "Human culture and society content",
"category": "subject",
"enabled": true
},
"economics": {
"label": "economics",
"description": "Economic and financial content",
"category": "subject",
"enabled": true
},
"political-science": {
"label": "political-science",
"description": "Political science and governance content",
"category": "subject",
"enabled": true
}
} |
ngdpbase.tab.pagetabs |
true |
ngdpbase.tab.pagetabs.template |
Template:PageTabs |
ngdpbase.tab.persist |
true |
ngdpbase.tab.style |
tabs |
ngdpbase.telemetry.enabled |
false |
ngdpbase.telemetry.metrics.host |
0.0.0.0 |
ngdpbase.telemetry.metrics.interval |
15000 |
ngdpbase.telemetry.metrics.path |
/metrics |
ngdpbase.telemetry.metrics.port |
9464 |
ngdpbase.telemetry.otlp.enabled |
false |
ngdpbase.telemetry.otlp.endpoint |
|
ngdpbase.telemetry.otlp.headers |
{} |
ngdpbase.telemetry.otlp.interval |
30000 |
ngdpbase.telemetry.otlp.timeout |
30000 |
ngdpbase.telemetry.service-name |
|
ngdpbase.templateDir |
default |
ngdpbase.theme.active |
volcano |
ngdpbase.theme.defaults.mode |
light |
ngdpbase.theme.directory |
themes |
ngdpbase.timezones |
[
{
"value": "UTC",
"label": "UTC (Coordinated Universal Time)",
"category": "Universal"
},
{
"value": "America/New_York",
"label": "Eastern Time (New York)",
"category": "North America"
},
{
"value": "America/Chicago",
"label": "Central Time (Chicago)",
"category": "North America"
},
{
"value": "America/Denver",
"label": "Mountain Time (Denver)",
"category": "North America"
},
{
"value": "America/Los_Angeles",
"label": "Pacific Time (Los Angeles)",
"category": "North America"
},
{
"value": "America/Toronto",
"label": "Eastern Time (Toronto)",
"category": "North America"
},
{
"value": "America/Vancouver",
"label": "Pacific Time (Vancouver)",
"category": "North America"
},
{
"value": "Europe/London",
"label": "GMT (London)",
"category": "Europe"
},
{
"value": "Europe/Paris",
"label": "CET (Paris)",
"category": "Europe"
},
{
"value": "Europe/Berlin",
"label": "CET (Berlin)",
"category": "Europe"
},
{
"value": "Europe/Rome",
"label": "CET (Rome)",
"category": "Europe"
},
{
"value": "Europe/Madrid",
"label": "CET (Madrid)",
"category": "Europe"
},
{
"value": "Europe/Moscow",
"label": "MSK (Moscow)",
"category": "Europe"
},
{
"value": "Europe/Stockholm",
"label": "CET (Stockholm)",
"category": "Europe"
},
{
"value": "Asia/Tokyo",
"label": "JST (Tokyo)",
"category": "Asia"
},
{
"value": "Asia/Shanghai",
"label": "CST (Shanghai)",
"category": "Asia"
},
{
"value": "Asia/Seoul",
"label": "KST (Seoul)",
"category": "Asia"
},
{
"value": "Asia/Kolkata",
"label": "IST (Kolkata)",
"category": "Asia"
},
{
"value": "Asia/Dubai",
"label": "GST (Dubai)",
"category": "Asia"
},
{
"value": "Asia/Singapore",
"label": "SGT (Singapore)",
"category": "Asia"
},
{
"value": "Australia/Sydney",
"label": "AEST (Sydney)",
"category": "Oceania"
},
{
"value": "Australia/Melbourne",
"label": "AEST (Melbourne)",
"category": "Oceania"
},
{
"value": "Australia/Perth",
"label": "AWST (Perth)",
"category": "Oceania"
},
{
"value": "Pacific/Auckland",
"label": "NZST (Auckland)",
"category": "Oceania"
},
{
"value": "Africa/Cairo",
"label": "EET (Cairo)",
"category": "Africa"
},
{
"value": "Africa/Johannesburg",
"label": "SAST (Johannesburg)",
"category": "Africa"
},
{
"value": "America/Sao_Paulo",
"label": "BRT (São Paulo)",
"category": "South America"
},
{
"value": "America/Argentina/Buenos_Aires",
"label": "ART (Buenos Aires)",
"category": "South America"
}
] |
ngdpbase.translator-reader.allow-html |
false |
ngdpbase.translator-reader.camel-case-links |
true |
ngdpbase.translator-reader.inline-pattern.1 |
s/\{\{([^}]+)\}\}/\<tt\>$1\<\/tt\>/g |
ngdpbase.translator-reader.match-english-plurals |
true |
ngdpbase.translator-reader.plain-uris |
true |
ngdpbase.url.generator |
DefaultURLGenerator |
ngdpbase.user-keywords |
{
"default": {
"label": "default",
"description": "Default keyword with no special restrictions",
"category": "general",
"enabled": true,
"restrictEditing": false
},
"draft": {
"label": "draft",
"description": "Work in progress content",
"category": "status",
"enabled": true,
"restrictEditing": false
},
"review": {
"label": "review",
"description": "Content under review",
"category": "status",
"enabled": true,
"restrictEditing": false
},
"published": {
"label": "published",
"description": "Finalized and approved content",
"category": "status",
"enabled": true,
"restrictEditing": false
},
"medicine": {
"label": "medicine",
"description": "Medical and healthcare-related content",
"category": "subject",
"enabled": true,
"restrictEditing": false,
"schemaOrg": "MedicalEntity"
},
"geology": {
"label": "geology",
"description": "Geological and earth science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"meteorology": {
"label": "meteorology",
"description": "Weather and atmospheric science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"oceanography": {
"label": "oceanography",
"description": "Ocean and marine science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"psychology": {
"label": "psychology",
"description": "Psychological and behavioral science content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"sociology": {
"label": "sociology",
"description": "Social science and society-related content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"anthropology": {
"label": "anthropology",
"description": "Human culture and society content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"economics": {
"label": "economics",
"description": "Economic and financial content",
"category": "subject",
"enabled": true,
"restrictEditing": false
},
"political-science": {
"label": "political-science",
"description": "Political science and governance content",
"category": "subject",
"enabled": true,
"restrictEditing": false
}
} |
ngdpbase.user.coreFields |
[
"username",
"email",
"displayName",
"password",
"roles",
"isActive",
"isExternal",
"isSystem",
"createdAt",
"loginCount",
"lastLogin",
"preferences",
"profilePage",
"allowedAuthMethods",
"avatar"
] |
ngdpbase.user.defaults.locale |
en-us |
ngdpbase.user.defaults.timezone |
utc |
ngdpbase.user.enabled |
true |
ngdpbase.user.provider |
jsonuserprovider |
ngdpbase.user.provider.default |
jsonuserprovider |
ngdpbase.user.provider.files.sessions |
sessions.json |
ngdpbase.user.provider.files.users |
users.json |
ngdpbase.user.provider.storagedir |
${FAST_STORAGE}/users |
ngdpbase.user.security.defaultpassword |
admin123 |
ngdpbase.user.security.passwordsalt |
amdwiki-salt |
ngdpbase.user.security.sessionexpiration |
86400000 |
ngdpbase.userdatabase |
JSONUserDatabase |
ngdpbase.version |
3.46.1 |
ngdpbase.workDir |
./work |
ngdpbase.workflow.approver |
Admin |
ngdpbase.workflow.saveWikiPage |
false |
ngdpbase.xmlGroupDatabase.file |
./config/groupdatabase.xml |
ngdpbase.xmlUserDatabase.file |
./config/userdatabase.xml |
[{VariablesPlugin type='system'}] renders as:
| Variable Name | Current Value | Description |
|---|---|---|
[{$appname}] |
GeoHazardWatch |
Application name (alias) |
[{$applicationname}] |
GeoHazardWatch |
Application name from configuration |
[{$version}] |
3.46.1 |
ngdpbase version number |
[{$baseurl}] |
https://geohazardwatch.com |
Base URL for the wiki |
[{$uptime}] |
21h 39m 14s |
Server uptime |
[{$totalpages}] |
133 |
Total number of pages in wiki |
[{VariablesPlugin type='contextual'}] renders as:
| Variable Name | Your Current Value | Description |
|---|---|---|
[{$pagename}] |
Using VariablesPlugin |
Current page name |
[{$username}] |
Anonymous |
Current user's name |
[{$loginstatus}] |
Not logged in |
User authentication status |
[{$userroles}] |
Anonymous, All |
User's assigned roles |
[{$date}] |
6/6/2026 |
Current date |
[{$time}] |
2:43:43 AM |
Current time |
[{$timestamp}] |
2026-06-06T02:43:43.448Z |
Current ISO timestamp |
[{$year}] |
2026 |
Current year |
[{$month}] |
6 |
Current month |
[{$day}] |
6 |
Current day |
[{$displayname}] |
Anonymous User |
User's display name |
[{$useragent}] |
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected]) |
Browser user agent string |
[{$browser}] |
Unknown Browser |
Browser name and version |
[{$clientip}] |
::ffff:10.42.0.147 |
Client IP address |
[{$referer}] |
Direct |
HTTP referer |
[{$sessionid}] |
Coo9nDl7polrMBZ8WZ1z3VYM6vuahcMD |
Session identifier |
[{$acceptlanguage}] |
Unknown |
Accept-Language header |
[{VariablesPlugin type='plugins'}] renders as:
| Plugin Name | Description | Version | Author |
|---|---|---|---|
[{AppHealthPlugin}] |
Deterministic app-health audit: orphan pages, broken links, stale pages | 1.0.0 | ngdpbase |
[{ATTACH}] |
Renders wiki attachments inline. Images display as clickable thumbnails; other files display as download links. | 1.0.0 | Unknown |
[{AttachmentsPlugin}] |
Shows total attachment count or a list of attachments | 1.0.0 | ngdpbase |
[{CommentsPlugin}] |
Displays page comments and a submission form for authenticated users | 1.0.0 | ngdpbase |
[{ConfigAccessorPlugin}] |
Access configuration values including roles, features, and system settings | 2.9.0 | ngdpbase |
[{CounterPlugin}] |
Maintains page-specific counters for numbering and tracking | 1.0.0 | ngdpbase |
[{CurrentTimePlugin}] |
Displays current date and time with user locale/timezone preferences | 1.0.0 | ngdpbase |
[{EarthquakeList}] |
No description | N/A | Unknown |
[{EarthquakeMap}] |
No description | N/A | Unknown |
[{FootnotesPlugin}] |
Lists footnote definitions from sidecar storage with editor CRUD UI | 2.0.0 | ngdpbase |
[{HansAlerts}] |
No description | N/A | Unknown |
[{Image}] |
Renders an image with optional caption, alignment, and display mode control | N/A | Unknown |
[{IndexPlugin}] |
Generates an alphabetical index of all wiki pages | 1.0.0 | ngdpbase |
[{InsertPlugin}] |
Embed another wiki page (or one section of it) into the current page | 1.0.0 | ngdpbase |
[{Location}] |
Display locations with map links and embedded previews | 1.0.0 | ngdpbase |
[{MarqueePlugin}] |
CSS scrolling text banner (marquee replacement) | 1.0.0 | ngdpbase |
[{MediaGallery}] |
Displays a gallery of media items (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MediaItem}] |
Embeds a single media item inline (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MediaPlugin}] |
Shows total media item count, a list, or a thumbnail album of indexed media items | 1.2.0 | ngdpbase |
[{MediaSearch}] |
Displays media search results (stub — MediaManager not yet available) | 0.1.0 | ngdpbase |
[{MyContributionsPlugin}] |
Renders the My Contributions card from /profile on any wiki page | 1.0.0 | ngdpbase |
[{MyLinksPlugin}] |
Renders the current user's pinned My Links sidebar section | 1.0.0 | ngdpbase |
[{PageSlideshowPlugin}] |
Bootstrap 5 carousel cycling through wiki page content | 1.0.0 | ngdpbase |
[{RecentChangesPlugin}] |
Displays recent page changes in chronological order | 2.0.0 | ngdpbase |
[{ReferringPagesPlugin}] |
Lists pages that refer to the current page | 1.0.0 | ngdpbase |
[{SearchPlugin}] |
JSPWiki-style search plugin for embedding search results in pages | 2.0.0 | ngdpbase |
[{SessionsPlugin}] |
Shows active session count or list of authenticated users | 2.0.0 | ngdpbase |
[{SlideshowPlugin}] |
Bootstrap 5 image carousel / slideshow | 1.0.0 | ngdpbase |
[{TablePlugin}] |
JSPWiki-compatible Table plugin — enables # auto-numbering in table rows | 1.0.0 | ngdpbase |
[{TabPlugin}] |
Defines a tab within [{Tabs}]; rendering is handled by TabsPlugin | 1.0.0 | ngdpbase |
[{TabsPlugin}] |
Renders Bootstrap nav-tabs from [{Tab name="..."}]content[{/Tab}] body blocks | 1.0.0 | ngdpbase |
[{TotalPagesPlugin}] |
Shows the total number of pages | 1.0.0 | ngdpbase |
[{UndefinedPagesPlugin}] |
Lists pages that are linked to (RED-LINKs) but do not exist | 1.2.0 | ngdpbase |
[{UptimePlugin}] |
Shows the server uptime | 1.0.0 | ngdpbase |
[{UserLookupPlugin}] |
Search and display users — permission-gated PII via API | 1.0.0 | ngdpbase |
[{VariablesPlugin}] |
Displays system and contextual variables available in the wiki | 1.0.0 | ngdpbase |
[{VolcanoInfobox}] |
No description | N/A | Unknown |
[{VolcanoList}] |
No description | N/A | Unknown |
[{VolcanoMap}] |
No description | N/A | Unknown |
[{VolcanoSearch}] |
No description | N/A | Unknown |
System-level information available on every page:
[{$applicationname}], [{$version}], [{$baseurl}][{$totalpages}], [{$uptime}][{$date}], [{$time}], [{$year}], [{$month}], [{$day}]User and request-specific information:
[{$username}], [{$displayname}], [{$loginstatus}], [{$userroles}][{$pagename}][{$browser}], [{$clientip}], [{$referer}], [{$sessionid}]Use any variable directly in page content:
Welcome [{$username}]! This platform has [{$totalpages}] pages.
See ConfigAccessorPlugin to access configuration values, and CurrentTimePlugin to display formatted time.