The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ghostwriter Documentation","colors":{"primary":"#6D70A7","light":"#50B071","dark":"#6D70A7"},"logo":{"light":"https://mintcdn.com/specterops-2/rwxeaHvw9J2xZp6c/logo/light.svg?fit=max\u0026auto=format\u0026n=rwxeaHvw9J2xZp6c\u0026q=85\u0026s=7ba094d2f43cc72c0ed5bb0feedd46c2","dark":"https://mintcdn.com/specterops-2/rwxeaHvw9J2xZp6c/logo/dark.svg?fit=max\u0026auto=format\u0026n=rwxeaHvw9J2xZp6c\u0026q=85\u0026s=6d58f4692c9f7bfc4c03ea8f7db37fe3","href":"https://specterops.io/"},"favicon":"https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/favicon.png?fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=146677961412d6ff71d73e719e1c6c60","appearance":{"default":"light","strict":false},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://blog.getghostwriter.io/","label":"Learn More"},{"href":"https://code.getghostwriter.io/","label":"Get the Code"}],"primary":{"type":"button","label":"Support","href":"https://github.com/GhostManager/Ghostwriter/issues"}},"footer":{"socials":{"x":"https://twitter.com/specterops","github":"https://github.com/GhostManager/Ghostwriter","linkedin":"https://www.linkedin.com/company/specterops","slack":"https://slack.specterops.io","instagram":"https://www.instagram.com/specterops.io","youtube":"https://www.youtube.com/channel/UCWMKKqCCQkUjU8dIyiL1yhQ"}},"fonts":{"heading":{"family":"Nunito Sans","weight":900,"source":"https://fonts.gstatic.com/s/nunitosans/v15/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2","format":"woff2"}},"styling":{"codeblocks":"system","latex":false},"integrations":{"plausible":{"domain":"ghostwriter.wiki"}},"thumbnails":{"background":"https://mintcdn.com/specterops-2/0suYjBVe_0nHu2PQ/images/thumbnail.png?fit=max\u0026auto=format\u0026n=0suYjBVe_0nHu2PQ\u0026q=85\u0026s=779bd023e4a425e93f6924d3eb4b56b0"},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/GhostManager/Ghostwriter"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/bloodhoundhq/shared_invite/zt-1tgq6ojd2-ixpx5nz9Wjtbhc3i8AVAWw"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"specterops-2","hasAudioNarration":false,"actualSubdomain":"specterops-2","customDomains":["www.ghostwriter.wiki"],"gitSource":{"type":"github","owner":"ghostmanager","repo":"ghostwriter","deployBranch":"master","contentDirectory":"DOCS","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6acec720b0647c1021582349","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Home","count":103},{"language":"default","tag":"Features","count":66},{"language":"default","tag":"Development","count":16},{"language":"default","tag":"GraphQL API","count":14},{"language":"default","tag":"Reporting","count":14},{"language":"default","tag":"Configuring Global Settings","count":10},{"language":"default","tag":"Infrastructure Management","count":9},{"language":"default","tag":"Operation Logs","count":9},{"language":"default","tag":"Database Models","count":8},{"language":"default","tag":"Client \u0026 Project Management","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"development/database-models/configuration-models","slug":"/development/database-models/configuration-models","pageMetadata":{"title":"Configuration Models","description":"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.","href":"/development/database-models/configuration-models"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const{Frame,OptimizedImage}={..._provideComponents(),...props.components};if(!Frame)_missingMdxReference(`Frame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=57692e0725b0283aad3ea61e9bc5f44c`,alt:``,\"data-og-width\":`800`,width:`800`,\"data-og-height\":`166`,height:`166`,\"data-path\":`images/development/image-4.avif`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?w=280\u0026fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=201394d25a8aa6f852da840ab0754c2b 280w, https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?w=560\u0026fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=416cf32e7d799cfdcb1ef26e80543e8d 560w, https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?w=840\u0026fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=337c666f46db9cf17d852b1cbb4a9b6c 840w, https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?w=1100\u0026fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=94a6c9a9c12a826f16f2b679ef7774a2 1100w, https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?w=1650\u0026fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=9aca2ca160f1577b8fdc059c061c2030 1650w, https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/images/development/image-4.avif?w=2500\u0026fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=a91272597719ede9c99b7f3770d09473 2500w`})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Configuration Models","description":"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.","href":"/development/database-models/configuration-models"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"specterops-2","siteName":"Ghostwriter Documentation","title":"Configuration Models - Ghostwriter Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-22T23:15:27.540Z","originalFileLocation":"development/database-models/configuration-models.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ghostwriter Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configuration Models - Ghostwriter Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ghostwriter Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.ghostwriter.wiki/development/database-models/configuration-models\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://specterops-2.mintlify.site/_mintlify/api/og/v2?division=Database+Models\u0026amp;title=Configuration+Models\u0026amp;description=The+CommandCenter+application+contains+models+based+on+a+custom+singleton+model+class.+The+models+manage+global+configurations+and+only+allow+one+entry+per+mode\u0026amp;theme=1b2d9326256b8f19fc3d10ae\u0026amp;signature=685d5f8a487575fca7829b11fb71a67e4e4d5bd108dce6ca37eb68fb5f49a2e4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configuration Models - Ghostwriter Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://specterops-2.mintlify.site/_mintlify/api/og/v2?division=Database+Models\u0026amp;title=Configuration+Models\u0026amp;description=The+CommandCenter+application+contains+models+based+on+a+custom+singleton+model+class.+The+models+manage+global+configurations+and+only+allow+one+entry+per+mode\u0026amp;theme=1b2d9326256b8f19fc3d10ae\u0026amp;signature=685d5f8a487575fca7829b11fb71a67e4e4d5bd108dce6ca37eb68fb5f49a2e4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ghostwriter Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6D70A7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.ghostwriter.wiki/development/database-models/configuration-models\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/development/database-models/configuration-models.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.ghostwriter.wiki/#organization\",\"name\":\"Ghostwriter Documentation\",\"url\":\"https://www.ghostwriter.wiki\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/specterops-2/rwxeaHvw9J2xZp6c/logo/light.svg?fit=max\u0026auto=format\u0026n=rwxeaHvw9J2xZp6c\u0026q=85\u0026s=7ba094d2f43cc72c0ed5bb0feedd46c2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.ghostwriter.wiki#website\",\"name\":\"Ghostwriter Documentation\",\"url\":\"https://www.ghostwriter.wiki\",\"publisher\":{\"@id\":\"https://www.ghostwriter.wiki/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models#webpage\",\"url\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models\",\"name\":\"Configuration Models\",\"description\":\"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.\",\"dateModified\":\"2026-01-22T23:15:27.540Z\",\"isPartOf\":{\"@id\":\"https://www.ghostwriter.wiki#website\"},\"breadcrumb\":{\"@id\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Development\",\"item\":\"https://www.ghostwriter.wiki/development/stack-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Database Models\",\"item\":\"https://www.ghostwriter.wiki/development/database-models\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Configuration Models\",\"item\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models#article\",\"headline\":\"Configuration Models\",\"name\":\"Configuration Models\",\"description\":\"The CommandCenter application contains models based on a custom singleton model class. The models manage global configurations and only allow one entry per model.\",\"url\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models\",\"mainEntityOfPage\":{\"@id\":\"https://www.ghostwriter.wiki/development/database-models/configuration-models#webpage\"},\"dateModified\":\"2026-01-22T23:15:27.540Z\",\"publisher\":{\"@id\":\"https://www.ghostwriter.wiki/#organization\"},\"isPartOf\":{\"@id\":\"https://www.ghostwriter.wiki#website\"}}]}\u003c/script>","siteName":"Ghostwriter Documentation","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/GhostManager/Ghostwriter"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/bloodhoundhq/shared_invite/zt-1tgq6ojd2-ixpx5nz9Wjtbhc3i8AVAWw"}]},"tabs":[{"tab":"Home","groups":[{"group":"Home","pages":[{"title":"Welcome to Ghostwriter","href":"/home"}]},{"group":"Getting Started","pages":[{"title":"Quickstart","href":"/getting-started/quickstart"},{"title":"Populating a Demo Database","href":"/getting-started/populating-a-demo-database"},{"title":"Updating Ghostwriter","href":"/getting-started/updating-ghostwriter"},{"group":"Managing the Server with Ghostwriter CLI","pages":[{"title":"Managing the Server with Ghostwriter CLI","sidebarTitle":"Overview","href":"/getting-started/managing-the-server-with-ghostwriter-cli"},{"title":"Managing Logon Sessions","href":"/getting-started/managing-the-server-with-ghostwriter-cli/managing-logon-sessions"},{"title":"Creating and Managing Backups","href":"/getting-started/managing-the-server-with-ghostwriter-cli/creating-and-managing-backups"}]}]},{"group":"Features","pages":[{"group":"Access, Authentication, \u0026 Session Controls","pages":[{"title":"Access, Authentication, \u0026 Session Controls","sidebarTitle":"Overview","href":"/features/access-authentication-and-session-controls"},{"title":"User Profile and Tokens","href":"/features/access-authentication-and-session-controls/user-profile-and-tokens"},{"title":"Single Sign-On","href":"/features/access-authentication-and-session-controls/single-sign-on"},{"title":"Multi-Factor Authentication","href":"/features/access-authentication-and-session-controls/multi-factor-authentication"},{"title":"Role-Based Access Controls","href":"/features/access-authentication-and-session-controls/role-based-access-controls"},{"title":"Session Management","href":"/features/access-authentication-and-session-controls/session-management"}]},{"group":"Client \u0026 Project Management","pages":[{"title":"Overview","href":"/features/client-and-project-management"},{"title":"Client Dashboard","href":"/features/client-and-project-management/client-dashboard"},{"group":"Project Dashboard","pages":[{"title":"Overview","href":"/features/client-and-project-management/project-dashboard"},{"title":"Project Points of Contact \u0026 Assignments","href":"/features/client-and-project-management/project-dashboard/project-points-of-contact-and-assignments"},{"title":"Scope Tracking","href":"/features/client-and-project-management/project-dashboard/scope-tracking"},{"title":"Objective Tracking","href":"/features/client-and-project-management/project-dashboard/objective-tracking"},{"title":"Deconfliction Tracking","href":"/features/client-and-project-management/project-dashboard/deconfliction-tracking"},{"title":"White Card Tracking","href":"/features/client-and-project-management/project-dashboard/white-card-tracking"}]}]},{"group":"Findings Library","pages":[{"title":"Overview","href":"/features/findings-library"},{"title":"Populating the Findings Library","href":"/features/findings-library/populating-the-findings-library"},{"title":"Template Values for Findings","href":"/features/findings-library/finding-keywords"}]},{"title":"Observations Library","href":"/features/observations-library"},{"group":"Infrastructure Management","pages":[{"title":"Infrastructure Management","sidebarTitle":"Overview","href":"/features/infrastructure-management"},{"group":"Server Management","pages":[{"title":"Server Management","sidebarTitle":"Overview","href":"/features/infrastructure-management/server-management"},{"title":"Populating the Server Library","href":"/features/infrastructure-management/server-management/populating-the-server-library"},{"title":"Server Checkout","href":"/features/infrastructure-management/server-management/server-management"},{"title":"Monitoring Servers","href":"/features/infrastructure-management/server-management/monitoring-servers"}]},{"group":"Domains Management","pages":[{"title":"Domains Management","sidebarTitle":"Overview","href":"/features/infrastructure-management/domains-management"},{"title":"Populating the Domain Library","href":"/features/infrastructure-management/domains-management/populating-the-domain-library"},{"title":"Domain Checkout","href":"/features/infrastructure-management/domains-management/domain-checkout-1"},{"title":"Monitoring Domains","href":"/features/infrastructure-management/domains-management/monitoring-domains"}]}]},{"group":"Operation Logs","pages":[{"title":"Overview","href":"/features/operation-logs"},{"title":"Creating a New Operation Log","href":"/features/operation-logs/creating-a-new-oplog"},{"title":"Interacting with the Operation Log Table","href":"/features/operation-logs/create-a-new-entry"},{"title":"Generating Attack Path Narrative Outlines","href":"/features/operation-logs/generating-narrative-outlines"},{"title":"Linking Evidence to Log Entries","href":"/features/operation-logs/linking-evidence-to-entries"},{"title":"Attaching Terminal Recordings to Log Entries","href":"/features/operation-logs/attaching-terminal-recordings"},{"title":"Setting up Automated Logging","href":"/features/operation-logs/setting-up-automated-logging"},{"title":"Exporting / Importing Operation Logs","href":"/features/operation-logs/exporting-importing-oplogs"},{"title":"Auditing Log Sanitization","href":"/features/operation-logs/auditing-oplogs"}]},{"group":"Reporting","pages":[{"title":"Reporting","sidebarTitle":"Overview","href":"/features/reporting"},{"group":"Collaborative Editor","pages":[{"title":"Overview","href":"/features/reporting/collaborative-editing"},{"title":"Editor Features","href":"/features/reporting/collaborative-editor/editor-features"}]},{"group":"Report Types","pages":[{"title":"Overview","href":"/features/reporting/report-types"},{"title":"Word Document Customization","href":"/features/reporting/report-types/word-document-customization"},{"title":"PowerPoint Deck Customization","href":"/features/reporting/report-types/powerpoint-deck-customization"},{"title":"Excel Spreadsheet Customization","href":"/features/reporting/report-types/excel-spreadsheet-customization"}]},{"group":"Report Templates","pages":[{"title":"Report Templates","sidebarTitle":"Overview","href":"/features/reporting/report-templates"},{"title":"Report Template Linting","href":"/features/reporting/report-templates/report-template-linting"},{"title":"Word Template Variables \u0026 Filters","href":"/features/reporting/report-templates/word-template-variables"},{"title":"Word Template Styles","href":"/features/reporting/report-templates/word-template-styles"},{"title":"Troubleshooting Word Templates","href":"/features/reporting/report-templates/troubleshooting-word-templates"}]},{"title":"Templating and Rich Text Fields","href":"/features/reporting/templating-and-rich-text-fields"},{"title":"Jinja2 Tips \u0026 Tricks","href":"/features/reporting/jinja2-tips-and-tricks"}]},{"group":"BloodHound Integration","pages":[{"title":"Overview","href":"/features/bloodhound-integration-overview"},{"title":"Configuring BloodHound","href":"/features/bloodhound-integration/configuring-bloodhound"},{"title":"Viewing \u0026 Managing BloodHound Data","href":"/features/bloodhound-integration/managing-bloodhound-data"},{"title":"Differences Between BHCE and BHE","href":"/features/bloodhound-integration/differences-between-bhce-and-bhe"},{"title":"Accessing BloodHound Data in Reports","href":"/features/bloodhound-integration/bloodhound-data-in-reports"}]},{"group":"Background Tasks","pages":[{"title":"Overview","href":"/features/background-tasks"},{"title":"Scheduling Tasks","href":"/features/background-tasks/scheduled-tasks"},{"title":"Prebuilt Tasks","href":"/features/background-tasks/prebuilt-tasks"}]},{"title":"Health Monitoring","href":"/features/health-monitoring"}]},{"group":"Configuring Global Settings","pages":[{"title":"Introduction to Command Center","sidebarTitle":"Overview","href":"/configuring-global-settings/introduction-to-command-center"},{"title":"Personalizing Company Information","href":"/configuring-global-settings/personalizing-company-information"},{"title":"Configuring Global Report Options","href":"/configuring-global-settings/configuring-global-report-options"},{"title":"Configuring the Announcement Banner","href":"/configuring-global-settings/configuring-the-announcement-banner"},{"group":"Configuring APIs","pages":[{"title":"Overview","href":"/configuring-global-settings/configuring-apis"},{"title":"Configuring Slack","href":"/configuring-global-settings/configuring-apis/configuring-slack"},{"title":"Configuring VirusTotal","href":"/configuring-global-settings/configuring-apis/configuring-virustotal"},{"title":"Configuring Namecheap","href":"/configuring-global-settings/configuring-apis/configuring-namecheap"},{"title":"Configuring Cloud Services","href":"/configuring-global-settings/configuring-apis/configuring-cloud-services"}]},{"title":"Configuring Extra Fields","href":"/configuring-global-settings/configuring-extra-fields"}]},{"group":"Getting Help","pages":[{"title":"Overview","href":"/getting-help/faq"},{"title":"Reporting a Problem","href":"/getting-help/getting-help-with-a-problem"},{"title":"Reporting a Security Issue","href":"/getting-help/reporting-a-security-issue"}]},{"group":"Workflow \u0026 Usage","pages":[{"title":"The Workflow","sidebarTitle":"Overview","href":"/workflow/basic-usage"},{"group":"The Workflow","pages":[{"title":"The Workflow","sidebarTitle":"Overview","href":"/workflow/basic-usage"},{"title":"Finding Edit \u0026 Review Workflow","href":"/workflow/basic-usage/finding-review-workflow"}]}]},{"group":"Coding Style Guide","pages":[{"title":"Overview","href":"/coding-style-guide/style-guide"},{"title":"UI Refresh Design System","sidebarTitle":"UI Refresh","href":"/coding-style-guide/ui-refresh-design-system"},{"group":"Form Layouts \u0026 Design","pages":[{"title":"Form Layouts \u0026 Design","sidebarTitle":"Overview","href":"/coding-style-guide/form-layouts-and-design"},{"title":"Formset Layout \u0026 Design","href":"/coding-style-guide/form-layouts-and-design/formset-layout-and-design"},{"title":"Custom Layout Objects","href":"/coding-style-guide/form-layouts-and-design/custom-layout-objects"}]}]},{"group":"Development","pages":[{"title":"Overview","href":"/development/stack-overview"},{"group":"Stack Overview","pages":[{"title":"Overview","href":"/development/stack-overview"},{"title":"Behind the Scenes","href":"/development/stack-overview/behind-the-scenes"}]},{"group":"Modifying Code","pages":[{"title":"Overview","href":"/development/modifying-code"},{"title":"Modifying Environment Variables","href":"/development/modifying-code/modifying-environment-variables"}]},{"title":"Testing Code","href":"/development/testing-code"},{"group":"Contributing to the Project","pages":[{"title":"Contributing to the Project","sidebarTitle":"Overview","href":"/development/contributing-to-the-project"},{"title":"Pre-Release Checklist","href":"/development/contributing-to-the-project/pre-release-checklist"}]},{"group":"Database Models","pages":[{"title":"Database Models","sidebarTitle":"Overview","href":"/development/database-models"},{"title":"API Models","href":"/development/database-models/api-models"},{"title":"Client \u0026 Project Models","description":"The client and project management application, Rolodex, and related models track everything related to a client and their projects.","href":"/development/database-models/rolodex-models"},{"title":"Configuration Models","href":"/development/database-models/configuration-models"},{"title":"Home \u0026 User Models","description":null,"href":"/development/database-models/home-models"},{"title":"Infrastructure Models","href":"/development/database-models/infrastructure-models"},{"title":"Oplog Models","href":"/development/database-models/oplog-models"},{"title":"Reporting Models","href":"/development/database-models/reporting-models"}]},{"title":"Expected Services \u0026 Processes","href":"/development/expected-services-and-processes"}]}]},{"tab":"GraphQL API","pages":[{"title":"GraphQL API","href":"/features/graphql-api/graphql-api"}]}]},"basePath":"","title":"Configuration Models - Ghostwriter Documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DvzxQbD0.js","DynamicMarkdown-mQG_iQiE.js","zoom-image-lightbox-BFbLClTf.js","lightbox-handle-r17bVUz3.js"]}