SystemInfo
SystemInfo demonstrates JSPWiki-style system variables that work on any page.
Information and Usage Table
| Variable | Usage | Value |
|---|---|---|
| Application Name: | [{$applicationname}] | GeoHazardWatch | | |
| Base URL: | ([{$baseurl}]) | https://geohazardwatch.com | | |
| Total Pages: | [{$totalpages}] | 163 | | |
| Current ISO timestamp: | [{$timestamp}] | 2026-09-11T13:50:55.770Z |
| Server Uptime: | [{$uptime}] | 24h 38m 43s | | |
| Date: | [{$date}] | 9/11/2026 | | |
| Time: | [{$time}] | 1:50:55 PM | | |
| Active Sessions | [{SessionsPlugin}] | 26123 | |
These system variables are processed by the RenderingManager and can be used on any page on the platform.
Pages Configuration
Configuration Values (11 matches) —
ngdpbase.page.*
| Key | Value |
|---|---|
ngdpbase.page.delete.retentiondays |
30 |
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 |
Intersite References
No config keys match pattern: ngdpbase.interWikiRef*
Attachment Configuration
Configuration Values (10 matches) —
ngdpbase.attachment*
| Key | Value |
|---|---|
ngdpbase.attachment.allowedtypes |
image/*,text/*,application/pdf |
ngdpbase.attachment.enabled |
true |
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 |
Cache Configuration
Configuration Values (14 matches) —
ngdpbase.cache*
| Key | Value |
|---|---|
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 |
Audit Configuration
Configuration Values (16 matches) —
ngdpbase.audit*
| Key | Value |
|---|---|
ngdpbase.audit.chain-witness.destination |
|
ngdpbase.audit.chain-witness.interval-minutes |
60 |
ngdpbase.audit.enabled |
true |
ngdpbase.audit.events |
{
"page-create": {
"on-failure": "continue",
"description": "Page created"
},
"page-edit": {
"on-failure": "continue",
"description": "Page edited"
},
"page-rename": {
"on-failure": "continue",
"description": "Page renamed"
},
"page-delete": {
"on-failure": "refuse",
"description": "Page deleted; destruction, so the record must outlive the page"
},
"comment-create": {
"on-failure": "continue",
"description": "Comment added to a page — user content written on someone's behalf, the page-edit class (#1232)"
},
"comment-delete": {
"on-failure": "continue",
"description": "Comment marked deleted; who removed it and whose it was (#1232)"
},
"footnote-edit": {
"on-failure": "continue",
"description": "A page's footnote list changed — action add, import, transfer, update or delete; page content written on someone's behalf (#1233)"
},
"page-read": {
"on-failure": "continue",
"enabled": false,
"description": "Page read; off by default so a general-purpose deployment does not drown its log in reads. On, a records-style deployment gets who looked at what (#1129)"
},
"page-link-rewrite": {
"on-failure": "continue",
"description": "Inbound links rewritten after a rename"
},
"asset-upload": {
"on-failure": "continue",
"description": "File uploaded"
},
"asset-delete": {
"on-failure": "refuse",
"description": "File deleted; destruction"
},
"token-mint": {
"on-failure": "refuse",
"description": "Agent token minted; a credential nobody knows exists is the worst case"
},
"token-revoke": {
"on-failure": "refuse",
"description": "Agent token revoked"
},
"authentication-success": {
"on-failure": "continue",
"description": "Sign-in succeeded"
},
"authentication-failed": {
"on-failure": "continue",
"description": "Sign-in failed"
},
"authentication-logout": {
"on-failure": "continue",
"description": "User signed out"
},
"authorization-deny": {
"on-failure": "continue",
"description": "Access denied"
},
"authorization-allow": {
"on-failure": "continue",
"description": "Access granted; emitter exists, nothing in production calls it"
},
"policy-evaluate": {
"on-failure": "continue",
"description": "Security policy evaluated; emitter exists, nothing in production calls it"
},
"security-event": {
"on-failure": "continue",
"description": "Security violation detected; the kind is in metadata.securityEventType"
},
"share-create": {
"on-failure": "refuse",
"description": "Share link created; mints an anonymous-access credential, the same shape as token-mint"
},
"share-access": {
"on-failure": "continue",
"description": "Share link used; batched counts"
},
"share-revoke": {
"on-failure": "refuse",
"description": "Share link revoked; pairs with token-revoke"
},
"system-start": {
"on-failure": "refuse",
"description": "Instance started; reports whether the previous run ended cleanly"
},
"system-shutdown": {
"on-failure": "refuse",
"description": "Instance shut down cleanly; its absence before the next start is the signal"
},
"config-change": {
"on-failure": "continue",
"description": "Configuration changed by an administrator; standard so a broken audit configuration can still be repaired from the UI"
},
"manager-state-change": {
"on-failure": "continue",
"description": "A manager changed state: degraded, disabled, failed or recovered"
},
"posture-recorded": {
"on-failure": "refuse",
"description": "Security posture at startup, compared against the previous start"
},
"job-started": {
"on-failure": "continue",
"description": "A background job started, and who asked for it"
},
"job-completed": {
"on-failure": "continue",
"description": "A background job finished successfully"
},
"job-failed": {
"on-failure": "continue",
"description": "A background job failed"
},
"page-raw-edit": {
"on-failure": "continue",
"description": "Page edited through the admin raw editor"
},
"session-revoke": {
"on-failure": "continue",
"description": "Session revoked by an administrator"
},
"session-clear-anonymous": {
"on-failure": "continue",
"description": "Anonymous sessions cleared"
},
"user-create": {
"on-failure": "continue",
"description": "Account created; by an administrator, by self-registration, or provisioned by an identity provider"
},
"user-edit": {
"on-failure": "continue",
"description": "Account changed in a way that alters what it may do or who holds it: roles, password, active, external, email, profile lock. Preference edits are not recorded"
},
"user-delete": {
"on-failure": "refuse",
"description": "Account deleted; destruction of an identity and its attribution, recorded before the delete"
},
"search-user": {
"on-failure": "continue",
"enabled": false,
"description": "People searched for; enumerating people is disclosive in a way searching pages is not. Off by default as read volume"
},
"page-export": {
"on-failure": "continue",
"description": "Page exported to a file; bulk extraction of content, gated on read until a bulk surface exists"
},
"asset-edit": {
"on-failure": "continue",
"description": "Attachment metadata edited; EXIF/IPTC and catalog fields change provenance"
},
"config-reset": {
"on-failure": "refuse",
"description": "Every custom configuration value discarded; recorded before the reset, which cannot proceed without it"
},
"backup-create": {
"on-failure": "continue",
"description": "A full backup written; where it went and who asked"
},
"secret-reveal": {
"on-failure": "continue",
"description": "A masked configuration value shown to an administrator; the key is recorded, never the value"
},
"audit-export": {
"on-failure": "continue",
"description": "The audit trail exported to a file; who took a copy, in what format, with what filter"
},
"audit-chain-restart": {
"on-failure": "refuse",
"description": "Hash chain restarted, with the reason; the marker is the action and cannot half-complete"
},
"asset-read": {
"on-failure": "continue",
"enabled": false,
"description": "Attachment read; not recorded, read volume"
},
"search-page": {
"on-failure": "continue",
"enabled": false,
"description": "Page search; not recorded, read volume"
},
"user-read": {
"on-failure": "continue",
"enabled": false,
"description": "User profile read; not recorded, read volume"
},
"admin-read": {
"on-failure": "continue",
"enabled": false,
"description": "Admin dashboard read; not recorded, read volume"
}
} |
ngdpbase.audit.flushinterval |
30000 |
ngdpbase.audit.loglevel |
info |
ngdpbase.audit.maxqueuesize |
1000 |
ngdpbase.audit.on-failure |
continue |
ngdpbase.audit.provider |
fileauditprovider |
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 |
Markup Configuration
Configuration Values (41 matches) —
ngdpbase.markup*
| Key | Value |
|---|---|
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.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.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 |
Features Configuration
Configuration Values (16 matches) —
ngdpbase.features*
| Key | Value |
|---|---|
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 |
|
ngdpbase.features.maintenance.message |
System is currently under maintenance. Please try again later. |
Backup Configuration
Configuration Values (8 matches) —
ngdpbase.backup*
| Key | Value |
|---|---|
ngdpbase.backup.auto-backup |
true |
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 |
/mnt/tank/jims/data/systems/geohazardwatch/backups/ |
ngdpbase.backup.max-backups |
10 |
ngdpbase.backup.provider |
filebackupprovider |
No comments yet.