diff --git a/404.html b/404.html index f2bfaf0..819b8a8 100644 --- a/404.html +++ b/404.html @@ -7,7 +7,7 @@ - + diff --git a/API/index.html b/API/index.html index b27d0d1..aed502b 100644 --- a/API/index.html +++ b/API/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/DATABASE/index.html b/Advanced Configuration/DATABASE/index.html index 6e234eb..b4bba9b 100644 --- a/Advanced Configuration/DATABASE/index.html +++ b/Advanced Configuration/DATABASE/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/Endpoint or Feature Customisation/index.html b/Advanced Configuration/Endpoint or Feature Customisation/index.html index ce5a5da..821dbed 100644 --- a/Advanced Configuration/Endpoint or Feature Customisation/index.html +++ b/Advanced Configuration/Endpoint or Feature Customisation/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/External Database/index.html b/Advanced Configuration/External Database/index.html index e2299bc..d50046c 100644 --- a/Advanced Configuration/External Database/index.html +++ b/Advanced Configuration/External Database/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/Folder Scanning/index.html b/Advanced Configuration/Folder Scanning/index.html index e3f9e16..f5fc4c7 100644 --- a/Advanced Configuration/Folder Scanning/index.html +++ b/Advanced Configuration/Folder Scanning/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/How to add configurations/index.html b/Advanced Configuration/How to add configurations/index.html index ac92a81..790da12 100644 --- a/Advanced Configuration/How to add configurations/index.html +++ b/Advanced Configuration/How to add configurations/index.html @@ -7,7 +7,7 @@ - + @@ -22,8 +22,8 @@ This file is located in the /configs directory and follows standard YAML formatting

Environment variables are also supported and would override the settings file For example in the settings.yml you have

-
system:
enableLogin: 'true'
-

To have this via an environment variable you would have SYSTEM_ENABLELOGIN

+
security:
enableLogin: 'true'
+

To have this via an environment variable you would have SECURITY_ENABLELOGIN

The Current list of settings is

security:
enableLogin: false # set to 'true' to enable login
csrfDisabled: true # Set to 'true' to disable CSRF protection (not recommended for production)
loginAttemptCount: 5 # lock user account after 5 tries
loginResetTimeMinutes: 120 # lock account for 2 hours after x attempts
# initialLogin:
# username: "admin" # Initial username for the first login
# password: "stirling" # Initial password for the first login
# oauth2:
# enabled: false # set to 'true' to enable login (Note: enableLogin must also be 'true' for this to work)
# issuer: "" # set to any provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) end-point
# clientId: "" # Client ID from your provider
# clientSecret: "" # Client Secret from your provider
# autoCreateUser: false # set to 'true' to allow auto-creation of non-existing users
# useAsUsername: "email" # Default is 'email'; custom fields can be used as the username
# scopes: "openid, profile, email" # Specify the scopes for which the application will request permissions
# provider: "google" # Set this to your OAuth provider's name, e.g., 'google' or 'keycloak'
# client:
# google:
# clientId: "" # Client ID for Google OAuth2
# clientSecret: "" # Client Secret for Google OAuth2
# scopes: "https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile" # Scopes for Google OAuth2
# useAsUsername: "email" # Field to use as the username for Google OAuth2
# github:
# clientId: "" # Client ID for GitHub OAuth2
# clientSecret: "" # Client Secret for GitHub OAuth2
# scopes: "read:user" # Scope for GitHub OAuth2
# useAsUsername: "login" # Field to use as the username for GitHub OAuth2
# keycloak:
# issuer: "http://192.168.0.123:8888/realms/stirling-pdf" # URL of the Keycloak realm's OpenID Connect Discovery endpoint
# clientId: "stirling-pdf" # Client ID for Keycloak OAuth2
# clientSecret: "" # Client Secret for Keycloak OAuth2
# scopes: "openid, profile, email" # Scopes for Keycloak OAuth2
# useAsUsername: "email" # Field to use as the username for Keycloak OAuth2

system:
defaultLocale: 'en-US' # Set the default language (e.g. 'de-DE', 'fr-FR', etc)
googlevisibility: false # 'true' to allow Google visibility (via robots.txt), 'false' to disallow
enableAlphaFunctionality: false # Set to enable functionality which might need more testing before it fully goes live (This feature might make no changes)
showUpdate: true # see when a new update is available
showUpdateOnlyAdmin: false # Only admins can see when a new update is available, depending on showUpdate it must be set to 'true'
customHTMLFiles: false # enable to have files placed in /customFiles/templates override the existing template html files

ui:
appName: null # Application's visible name
homeDescription: null # Short description or tagline shown on homepage.
appNameNavbar: null # Name displayed on the navigation bar

endpoints:
toRemove: [] # List endpoints to disable (e.g. ['img-to-pdf', 'remove-pages'])
groupsToRemove: [] # List groups to disable (e.g. ['LibreOffice'])

metrics:
enabled: true # 'true' to enable Info APIs (`/api/*`) endpoints, 'false' to disable

There is an additional config file /configs/custom_settings.yml were users familiar with java and spring application.properties can input their own settings on-top of Stirling-PDFs existing ones

diff --git a/Advanced Configuration/OCR/index.html b/Advanced Configuration/OCR/index.html index 8e9c6e0..bc78e5a 100644 --- a/Advanced Configuration/OCR/index.html +++ b/Advanced Configuration/OCR/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/Other Customisations/index.html b/Advanced Configuration/Other Customisations/index.html index 4dfe9fd..a07b0a6 100644 --- a/Advanced Configuration/Other Customisations/index.html +++ b/Advanced Configuration/Other Customisations/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/Pipeline/index.html b/Advanced Configuration/Pipeline/index.html index 0b0b633..aac1de7 100644 --- a/Advanced Configuration/Pipeline/index.html +++ b/Advanced Configuration/Pipeline/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/Sign with custom files/index.html b/Advanced Configuration/Sign with custom files/index.html index 3c4acca..918cdd0 100644 --- a/Advanced Configuration/Sign with custom files/index.html +++ b/Advanced Configuration/Sign with custom files/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/Single Sign-On Configuration/index.html b/Advanced Configuration/Single Sign-On Configuration/index.html index 8be4794..251570a 100644 --- a/Advanced Configuration/Single Sign-On Configuration/index.html +++ b/Advanced Configuration/Single Sign-On Configuration/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/System and Security/index.html b/Advanced Configuration/System and Security/index.html index c9859a1..baeb9a9 100644 --- a/Advanced Configuration/System and Security/index.html +++ b/Advanced Configuration/System and Security/index.html @@ -7,7 +7,7 @@ - + diff --git a/Advanced Configuration/UI Customisation/index.html b/Advanced Configuration/UI Customisation/index.html index 09176a3..bad426d 100644 --- a/Advanced Configuration/UI Customisation/index.html +++ b/Advanced Configuration/UI Customisation/index.html @@ -7,7 +7,7 @@ - + diff --git a/Contribute/Code/index.html b/Contribute/Code/index.html index e4fa040..5101f96 100644 --- a/Contribute/Code/index.html +++ b/Contribute/Code/index.html @@ -7,7 +7,7 @@ - + diff --git a/Contribute/Language/index.html b/Contribute/Language/index.html index 6f85f8c..96443ec 100644 --- a/Contribute/Language/index.html +++ b/Contribute/Language/index.html @@ -7,7 +7,7 @@ - + diff --git a/Enterprise Edition/index.html b/Enterprise Edition/index.html index a5f08ca..d01c360 100644 --- a/Enterprise Edition/index.html +++ b/Enterprise Edition/index.html @@ -7,7 +7,7 @@ - + diff --git a/FAQ/index.html b/FAQ/index.html index e73d140..77be146 100644 --- a/FAQ/index.html +++ b/FAQ/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/Convert/index.html b/Functionality/Convert/index.html index 6d32ef6..22ff451 100644 --- a/Functionality/Convert/index.html +++ b/Functionality/Convert/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/Features Pipeline/index.html b/Functionality/Features Pipeline/index.html index 96f2803..97dfb39 100644 --- a/Functionality/Features Pipeline/index.html +++ b/Functionality/Features Pipeline/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/Miscellaneous/index.html b/Functionality/Miscellaneous/index.html index 7aa8be9..b97f0f3 100644 --- a/Functionality/Miscellaneous/index.html +++ b/Functionality/Miscellaneous/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/Page-Operations/index.html b/Functionality/Page-Operations/index.html index b6992b6..cc4a058 100644 --- a/Functionality/Page-Operations/index.html +++ b/Functionality/Page-Operations/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/Page-Operations/redact/index.html b/Functionality/Page-Operations/redact/index.html index a5929cf..7035bd7 100644 --- a/Functionality/Page-Operations/redact/index.html +++ b/Functionality/Page-Operations/redact/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/Security/index.html b/Functionality/Security/index.html index 3a20c62..54470c4 100644 --- a/Functionality/Security/index.html +++ b/Functionality/Security/index.html @@ -7,7 +7,7 @@ - + diff --git a/Functionality/The Technologies/index.html b/Functionality/The Technologies/index.html index 83a21c9..99e7109 100644 --- a/Functionality/The Technologies/index.html +++ b/Functionality/The Technologies/index.html @@ -7,7 +7,7 @@ - + diff --git a/Installation/Docker Install/index.html b/Installation/Docker Install/index.html index 296f757..ffc2bdd 100644 --- a/Installation/Docker Install/index.html +++ b/Installation/Docker Install/index.html @@ -7,7 +7,7 @@ - + diff --git a/Installation/Mac Installation/index.html b/Installation/Mac Installation/index.html index 30c8540..080a81a 100644 --- a/Installation/Mac Installation/index.html +++ b/Installation/Mac Installation/index.html @@ -7,7 +7,7 @@ - + diff --git a/Installation/Path Structure/index.html b/Installation/Path Structure/index.html index 50beb38..25dcaa7 100644 --- a/Installation/Path Structure/index.html +++ b/Installation/Path Structure/index.html @@ -7,7 +7,7 @@ - + diff --git a/Installation/Unix Installation/index.html b/Installation/Unix Installation/index.html index 1ebfabb..b187498 100644 --- a/Installation/Unix Installation/index.html +++ b/Installation/Unix Installation/index.html @@ -7,7 +7,7 @@ - + diff --git a/Installation/Versions/index.html b/Installation/Versions/index.html index 6c282db..c7e32e7 100644 --- a/Installation/Versions/index.html +++ b/Installation/Versions/index.html @@ -7,7 +7,7 @@ - + diff --git a/Installation/Windows Installation/index.html b/Installation/Windows Installation/index.html index 8dc7c6f..2b73844 100644 --- a/Installation/Windows Installation/index.html +++ b/Installation/Windows Installation/index.html @@ -7,7 +7,7 @@ - + diff --git a/assets/js/0656e72b.0cba503e.js b/assets/js/0656e72b.0cba503e.js new file mode 100644 index 0000000..f63377a --- /dev/null +++ b/assets/js/0656e72b.0cba503e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[3864],{4334:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"Advanced Configuration/How to add configurations","title":"How to add Configurations","description":"Stirling PDF allows easy customization of the app.","source":"@site/docs/Advanced Configuration/How to add configurations.md","sourceDirName":"Advanced Configuration","slug":"/Advanced Configuration/How to add configurations","permalink":"/Advanced Configuration/How to add configurations","draft":false,"unlisted":false,"editUrl":"https://github.com/Stirling-Tools/Stirling-Tools.github.io/tree/main/docs/Advanced Configuration/How to add configurations.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Frequently Asked Questions","permalink":"/FAQ"},"next":{"title":"Login, System and Security","permalink":"/Advanced Configuration/System and Security"}}');var i=t(4848),r=t(8453),s=t(1470),a=t(9365);const l={sidebar_position:1},c="How to add Configurations",u={},d=[{value:"Extra notes",id:"extra-notes",level:4},{value:"Environment only parameters",id:"environment-only-parameters",level:3},{value:"Local",id:"local",level:3},{value:"Docker Configuration",id:"docker-configuration",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"how-to-add-configurations",children:"How to add Configurations"})}),"\n",(0,i.jsx)(n.p,{children:"Stirling PDF allows easy customization of the app.\nIncludes things like"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Custom application name"}),"\n",(0,i.jsx)(n.li,{children:"Custom slogans, icons, HTML, images CSS etc (via file overrides)"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["There are two options for this, either using the generated settings file ",(0,i.jsx)(n.code,{children:"settings.yml"}),"\nThis file is located in the ",(0,i.jsx)(n.code,{children:"/configs"})," directory and follows standard YAML formatting"]}),"\n",(0,i.jsx)(n.p,{children:"Environment variables are also supported and would override the settings file\nFor example in the settings.yml you have"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"security:\n enableLogin: 'true'\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To have this via an environment variable you would have ",(0,i.jsx)(n.code,{children:"SECURITY_ENABLELOGIN"})]}),"\n",(0,i.jsx)(n.p,{children:"The Current list of settings is"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'security:\n enableLogin: false # set to \'true\' to enable login\n csrfDisabled: true # Set to \'true\' to disable CSRF protection (not recommended for production)\n loginAttemptCount: 5 # lock user account after 5 tries\n loginResetTimeMinutes: 120 # lock account for 2 hours after x attempts\n# initialLogin:\n# username: "admin" # Initial username for the first login\n# password: "stirling" # Initial password for the first login\n# oauth2:\n# enabled: false # set to \'true\' to enable login (Note: enableLogin must also be \'true\' for this to work)\n# issuer: "" # set to any provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) end-point\n# clientId: "" # Client ID from your provider\n# clientSecret: "" # Client Secret from your provider\n# autoCreateUser: false # set to \'true\' to allow auto-creation of non-existing users\n# useAsUsername: "email" # Default is \'email\'; custom fields can be used as the username\n# scopes: "openid, profile, email" # Specify the scopes for which the application will request permissions\n# provider: "google" # Set this to your OAuth provider\'s name, e.g., \'google\' or \'keycloak\'\n# client:\n# google:\n# clientId: "" # Client ID for Google OAuth2\n# clientSecret: "" # Client Secret for Google OAuth2\n# scopes: "https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile" # Scopes for Google OAuth2\n# useAsUsername: "email" # Field to use as the username for Google OAuth2\n# github:\n# clientId: "" # Client ID for GitHub OAuth2\n# clientSecret: "" # Client Secret for GitHub OAuth2\n# scopes: "read:user" # Scope for GitHub OAuth2\n# useAsUsername: "login" # Field to use as the username for GitHub OAuth2\n# keycloak:\n# issuer: "http://192.168.0.123:8888/realms/stirling-pdf" # URL of the Keycloak realm\'s OpenID Connect Discovery endpoint\n# clientId: "stirling-pdf" # Client ID for Keycloak OAuth2\n# clientSecret: "" # Client Secret for Keycloak OAuth2\n# scopes: "openid, profile, email" # Scopes for Keycloak OAuth2\n# useAsUsername: "email" # Field to use as the username for Keycloak OAuth2\n\nsystem:\n defaultLocale: \'en-US\' # Set the default language (e.g. \'de-DE\', \'fr-FR\', etc)\n googlevisibility: false # \'true\' to allow Google visibility (via robots.txt), \'false\' to disallow\n enableAlphaFunctionality: false # Set to enable functionality which might need more testing before it fully goes live (This feature might make no changes)\n showUpdate: true # see when a new update is available\n showUpdateOnlyAdmin: false # Only admins can see when a new update is available, depending on showUpdate it must be set to \'true\'\n customHTMLFiles: false # enable to have files placed in /customFiles/templates override the existing template html files\n\nui:\n appName: null # Application\'s visible name\n homeDescription: null # Short description or tagline shown on homepage.\n appNameNavbar: null # Name displayed on the navigation bar\n\nendpoints:\n toRemove: [] # List endpoints to disable (e.g. [\'img-to-pdf\', \'remove-pages\'])\n groupsToRemove: [] # List groups to disable (e.g. [\'LibreOffice\'])\n\nmetrics:\n enabled: true # \'true\' to enable Info APIs (`/api/*`) endpoints, \'false\' to disable\n'})}),"\n",(0,i.jsxs)(n.p,{children:["There is an additional config file ",(0,i.jsx)(n.code,{children:"/configs/custom_settings.yml"})," were users familiar with java and spring application.properties can input their own settings on-top of Stirling-PDFs existing ones"]}),"\n",(0,i.jsx)(n.h4,{id:"extra-notes",children:"Extra notes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Endpoints. Currently, the endpoints ENDPOINTS_TO_REMOVE and GROUPS_TO_REMOVE can include comma separate lists of endpoints and groups to disable as example ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages would disable both image-to-pdf and remove pages, GROUPS_TO_REMOVE=LibreOffice Would disable all things that use LibreOffice. You can see a list of all endpoints and groups ",(0,i.jsx)(n.a,{href:"https://github.com/Stirling-Tools/Stirling-PDF/blob/main/Endpoint-groups.md",children:"here"})]}),"\n",(0,i.jsx)(n.li,{children:"customStaticFilePath. Customise static files such as the app logo by placing files in the /customFiles/static/ directory. An example of customising app logo is placing a /customFiles/static/favicon.svg to override current SVG. This can be used to change any images/icons/css/fonts/js etc in Stirling-PDF"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"environment-only-parameters",children:"Environment only parameters"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SYSTEM_ROOTURIPATH"})," ie set to ",(0,i.jsx)(n.code,{children:"/pdf-app"})," to Set the application's root URI to ",(0,i.jsx)(n.code,{children:"localhost:8080/pdf-app"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SYSTEM_CONNECTIONTIMEOUTMINUTES"})," to set custom connection timeout values"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"DOCKER_ENABLE_SECURITY"})," to tell docker to download security jar (required as true for auth login)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"INSTALL_BOOK_AND_ADVANCED_HTML_OPS"})," to download calibre onto stirling-pdf enabling pdf to/from book and advanced html conversion"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"LANGS"})," to define custom font libraries to install for use for document conversions"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"local",children:"Local"}),"\n",(0,i.jsx)(n.p,{children:"If running Java directly outside of docker, you can set these environment variables before starting the app:"}),"\n",(0,i.jsxs)(s.A,{groupId:"operating-systems",children:[(0,i.jsx)(a.A,{value:"unix",label:"Unix",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'export UI_APP_NAME="Stirling PDF"\n'})})}),(0,i.jsx)(a.A,{value:"cmd",label:"Windows (CMD)",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-batch",children:"set UI_APP_NAME=Stirling PDF\n"})})}),(0,i.jsx)(a.A,{value:"powershell",label:"Windows (PowerShell)",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-powershell",children:'$env:UI_APP_NAME = "Stirling PDF"\n'})})})]}),"\n",(0,i.jsx)(n.h2,{id:"docker-configuration",children:"Docker Configuration"}),"\n",(0,i.jsx)(n.p,{children:"If using Docker, you can set environment variables via either Docker run or Docker Compose as part of your installation.\nSimply add these to the end of your script/file:"}),"\n",(0,i.jsxs)(s.A,{groupId:"docker-config",children:[(0,i.jsx)(a.A,{value:"docker-run",label:"Docker Run",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e "UI_APP_NAME=Stirling PDF" \\\n-e "UI_HOME_DESCRIPTION=Your locally hosted one-stop-shop for all your PDF needs." \\\n-e "UI_APP_NAVBAR_NAME=Stirling PDF" \\\n'})})}),(0,i.jsx)(a.A,{value:"docker-compose",label:"Docker Compose",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"environment:\n UI_APP_NAME: Stirling PDF\n UI_HOME_DESCRIPTION: Your locally hosted one-stop-shop for all your PDF needs.\n UI_APP_NAVBAR_NAME: Stirling PDF\n"})})})]})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},9365:(e,n,t)=>{t.d(n,{A:()=>s});t(6540);var o=t(4164);const i={tabItem:"tabItem_Ymn6"};var r=t(4848);function s(e){let{children:n,hidden:t,className:s}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,o.A)(i.tabItem,s),hidden:t,children:n})}},1470:(e,n,t)=>{t.d(n,{A:()=>j});var o=t(6540),i=t(4164),r=t(3104),s=t(6347),a=t(205),l=t(7485),c=t(1682),u=t(679);function d(e){return o.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,o.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:o,default:i}}=e;return{value:n,label:t,attributes:o,default:i}}))}(t);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const i=(0,s.W6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l.aZ)(r),(0,o.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[s,l]=(0,o.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const o=t.find((e=>e.default))??t[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r}))),[c,d]=f({queryString:t,groupId:i}),[m,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,u.Dv)(t);return[i,(0,o.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:i}),b=(()=>{const e=c??m;return p({value:e,tabValues:r})?e:null})();(0,a.A)((()=>{b&&l(b)}),[b]);return{selectedValue:s,selectValue:(0,o.useCallback)((e=>{if(!p({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);l(e),d(e),g(e)}),[d,g,r]),tabValues:r}}var g=t(2303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=t(4848);function x(e){let{className:n,block:t,selectedValue:o,selectValue:s,tabValues:a}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,r.a_)(),u=e=>{const n=e.currentTarget,t=l.indexOf(n),i=a[t].value;i!==o&&(c(n),s(i))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":t},n),children:a.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,ref:e=>l.push(e),onKeyDown:d,onClick:u,...r,className:(0,i.A)("tabs__item",b.tabItem,r?.className,{"tabs__item--active":o===n}),children:t??n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,o.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function A(e){const n=m(e);return(0,v.jsxs)("div",{className:(0,i.A)("tabs-container",b.tabList),children:[(0,v.jsx)(x,{...n,...e}),(0,v.jsx)(y,{...n,...e})]})}function j(e){const n=(0,g.A)();return(0,v.jsx)(A,{...e,children:d(e.children)},String(n))}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var o=t(6540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0656e72b.f1bba526.js b/assets/js/0656e72b.f1bba526.js deleted file mode 100644 index 46b2dfd..0000000 --- a/assets/js/0656e72b.f1bba526.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[3864],{4334:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"Advanced Configuration/How to add configurations","title":"How to add Configurations","description":"Stirling PDF allows easy customization of the app.","source":"@site/docs/Advanced Configuration/How to add configurations.md","sourceDirName":"Advanced Configuration","slug":"/Advanced Configuration/How to add configurations","permalink":"/Advanced Configuration/How to add configurations","draft":false,"unlisted":false,"editUrl":"https://github.com/Stirling-Tools/Stirling-Tools.github.io/tree/main/docs/Advanced Configuration/How to add configurations.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Frequently Asked Questions","permalink":"/FAQ"},"next":{"title":"Login, System and Security","permalink":"/Advanced Configuration/System and Security"}}');var i=t(4848),r=t(8453),s=t(1470),a=t(9365);const l={sidebar_position:1},c="How to add Configurations",u={},d=[{value:"Extra notes",id:"extra-notes",level:4},{value:"Environment only parameters",id:"environment-only-parameters",level:3},{value:"Local",id:"local",level:3},{value:"Docker Configuration",id:"docker-configuration",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"how-to-add-configurations",children:"How to add Configurations"})}),"\n",(0,i.jsx)(n.p,{children:"Stirling PDF allows easy customization of the app.\nIncludes things like"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Custom application name"}),"\n",(0,i.jsx)(n.li,{children:"Custom slogans, icons, HTML, images CSS etc (via file overrides)"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["There are two options for this, either using the generated settings file ",(0,i.jsx)(n.code,{children:"settings.yml"}),"\nThis file is located in the ",(0,i.jsx)(n.code,{children:"/configs"})," directory and follows standard YAML formatting"]}),"\n",(0,i.jsx)(n.p,{children:"Environment variables are also supported and would override the settings file\nFor example in the settings.yml you have"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"system:\n enableLogin: 'true'\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To have this via an environment variable you would have ",(0,i.jsx)(n.code,{children:"SYSTEM_ENABLELOGIN"})]}),"\n",(0,i.jsx)(n.p,{children:"The Current list of settings is"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'security:\n enableLogin: false # set to \'true\' to enable login\n csrfDisabled: true # Set to \'true\' to disable CSRF protection (not recommended for production)\n loginAttemptCount: 5 # lock user account after 5 tries\n loginResetTimeMinutes: 120 # lock account for 2 hours after x attempts\n# initialLogin:\n# username: "admin" # Initial username for the first login\n# password: "stirling" # Initial password for the first login\n# oauth2:\n# enabled: false # set to \'true\' to enable login (Note: enableLogin must also be \'true\' for this to work)\n# issuer: "" # set to any provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) end-point\n# clientId: "" # Client ID from your provider\n# clientSecret: "" # Client Secret from your provider\n# autoCreateUser: false # set to \'true\' to allow auto-creation of non-existing users\n# useAsUsername: "email" # Default is \'email\'; custom fields can be used as the username\n# scopes: "openid, profile, email" # Specify the scopes for which the application will request permissions\n# provider: "google" # Set this to your OAuth provider\'s name, e.g., \'google\' or \'keycloak\'\n# client:\n# google:\n# clientId: "" # Client ID for Google OAuth2\n# clientSecret: "" # Client Secret for Google OAuth2\n# scopes: "https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile" # Scopes for Google OAuth2\n# useAsUsername: "email" # Field to use as the username for Google OAuth2\n# github:\n# clientId: "" # Client ID for GitHub OAuth2\n# clientSecret: "" # Client Secret for GitHub OAuth2\n# scopes: "read:user" # Scope for GitHub OAuth2\n# useAsUsername: "login" # Field to use as the username for GitHub OAuth2\n# keycloak:\n# issuer: "http://192.168.0.123:8888/realms/stirling-pdf" # URL of the Keycloak realm\'s OpenID Connect Discovery endpoint\n# clientId: "stirling-pdf" # Client ID for Keycloak OAuth2\n# clientSecret: "" # Client Secret for Keycloak OAuth2\n# scopes: "openid, profile, email" # Scopes for Keycloak OAuth2\n# useAsUsername: "email" # Field to use as the username for Keycloak OAuth2\n\nsystem:\n defaultLocale: \'en-US\' # Set the default language (e.g. \'de-DE\', \'fr-FR\', etc)\n googlevisibility: false # \'true\' to allow Google visibility (via robots.txt), \'false\' to disallow\n enableAlphaFunctionality: false # Set to enable functionality which might need more testing before it fully goes live (This feature might make no changes)\n showUpdate: true # see when a new update is available\n showUpdateOnlyAdmin: false # Only admins can see when a new update is available, depending on showUpdate it must be set to \'true\'\n customHTMLFiles: false # enable to have files placed in /customFiles/templates override the existing template html files\n\nui:\n appName: null # Application\'s visible name\n homeDescription: null # Short description or tagline shown on homepage.\n appNameNavbar: null # Name displayed on the navigation bar\n\nendpoints:\n toRemove: [] # List endpoints to disable (e.g. [\'img-to-pdf\', \'remove-pages\'])\n groupsToRemove: [] # List groups to disable (e.g. [\'LibreOffice\'])\n\nmetrics:\n enabled: true # \'true\' to enable Info APIs (`/api/*`) endpoints, \'false\' to disable\n'})}),"\n",(0,i.jsxs)(n.p,{children:["There is an additional config file ",(0,i.jsx)(n.code,{children:"/configs/custom_settings.yml"})," were users familiar with java and spring application.properties can input their own settings on-top of Stirling-PDFs existing ones"]}),"\n",(0,i.jsx)(n.h4,{id:"extra-notes",children:"Extra notes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Endpoints. Currently, the endpoints ENDPOINTS_TO_REMOVE and GROUPS_TO_REMOVE can include comma separate lists of endpoints and groups to disable as example ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages would disable both image-to-pdf and remove pages, GROUPS_TO_REMOVE=LibreOffice Would disable all things that use LibreOffice. You can see a list of all endpoints and groups ",(0,i.jsx)(n.a,{href:"https://github.com/Stirling-Tools/Stirling-PDF/blob/main/Endpoint-groups.md",children:"here"})]}),"\n",(0,i.jsx)(n.li,{children:"customStaticFilePath. Customise static files such as the app logo by placing files in the /customFiles/static/ directory. An example of customising app logo is placing a /customFiles/static/favicon.svg to override current SVG. This can be used to change any images/icons/css/fonts/js etc in Stirling-PDF"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"environment-only-parameters",children:"Environment only parameters"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SYSTEM_ROOTURIPATH"})," ie set to ",(0,i.jsx)(n.code,{children:"/pdf-app"})," to Set the application's root URI to ",(0,i.jsx)(n.code,{children:"localhost:8080/pdf-app"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SYSTEM_CONNECTIONTIMEOUTMINUTES"})," to set custom connection timeout values"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"DOCKER_ENABLE_SECURITY"})," to tell docker to download security jar (required as true for auth login)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"INSTALL_BOOK_AND_ADVANCED_HTML_OPS"})," to download calibre onto stirling-pdf enabling pdf to/from book and advanced html conversion"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"LANGS"})," to define custom font libraries to install for use for document conversions"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"local",children:"Local"}),"\n",(0,i.jsx)(n.p,{children:"If running Java directly outside of docker, you can set these environment variables before starting the app:"}),"\n",(0,i.jsxs)(s.A,{groupId:"operating-systems",children:[(0,i.jsx)(a.A,{value:"unix",label:"Unix",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'export UI_APP_NAME="Stirling PDF"\n'})})}),(0,i.jsx)(a.A,{value:"cmd",label:"Windows (CMD)",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-batch",children:"set UI_APP_NAME=Stirling PDF\n"})})}),(0,i.jsx)(a.A,{value:"powershell",label:"Windows (PowerShell)",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-powershell",children:'$env:UI_APP_NAME = "Stirling PDF"\n'})})})]}),"\n",(0,i.jsx)(n.h2,{id:"docker-configuration",children:"Docker Configuration"}),"\n",(0,i.jsx)(n.p,{children:"If using Docker, you can set environment variables via either Docker run or Docker Compose as part of your installation.\nSimply add these to the end of your script/file:"}),"\n",(0,i.jsxs)(s.A,{groupId:"docker-config",children:[(0,i.jsx)(a.A,{value:"docker-run",label:"Docker Run",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e "UI_APP_NAME=Stirling PDF" \\\n-e "UI_HOME_DESCRIPTION=Your locally hosted one-stop-shop for all your PDF needs." \\\n-e "UI_APP_NAVBAR_NAME=Stirling PDF" \\\n'})})}),(0,i.jsx)(a.A,{value:"docker-compose",label:"Docker Compose",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"environment:\n UI_APP_NAME: Stirling PDF\n UI_HOME_DESCRIPTION: Your locally hosted one-stop-shop for all your PDF needs.\n UI_APP_NAVBAR_NAME: Stirling PDF\n"})})})]})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},9365:(e,n,t)=>{t.d(n,{A:()=>s});t(6540);var o=t(4164);const i={tabItem:"tabItem_Ymn6"};var r=t(4848);function s(e){let{children:n,hidden:t,className:s}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,o.A)(i.tabItem,s),hidden:t,children:n})}},1470:(e,n,t)=>{t.d(n,{A:()=>j});var o=t(6540),i=t(4164),r=t(3104),s=t(6347),a=t(205),l=t(7485),c=t(1682),u=t(679);function d(e){return o.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,o.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:o,default:i}}=e;return{value:n,label:t,attributes:o,default:i}}))}(t);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const i=(0,s.W6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l.aZ)(r),(0,o.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[s,l]=(0,o.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const o=t.find((e=>e.default))??t[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r}))),[c,d]=f({queryString:t,groupId:i}),[m,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,u.Dv)(t);return[i,(0,o.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:i}),b=(()=>{const e=c??m;return p({value:e,tabValues:r})?e:null})();(0,a.A)((()=>{b&&l(b)}),[b]);return{selectedValue:s,selectValue:(0,o.useCallback)((e=>{if(!p({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);l(e),d(e),g(e)}),[d,g,r]),tabValues:r}}var g=t(2303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=t(4848);function x(e){let{className:n,block:t,selectedValue:o,selectValue:s,tabValues:a}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,r.a_)(),u=e=>{const n=e.currentTarget,t=l.indexOf(n),i=a[t].value;i!==o&&(c(n),s(i))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":t},n),children:a.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,ref:e=>l.push(e),onKeyDown:d,onClick:u,...r,className:(0,i.A)("tabs__item",b.tabItem,r?.className,{"tabs__item--active":o===n}),children:t??n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,o.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function A(e){const n=m(e);return(0,v.jsxs)("div",{className:(0,i.A)("tabs-container",b.tabList),children:[(0,v.jsx)(x,{...n,...e}),(0,v.jsx)(y,{...n,...e})]})}function j(e){const n=(0,g.A)();return(0,v.jsx)(A,{...e,children:d(e.children)},String(n))}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var o=t(6540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.610120df.js b/assets/js/runtime~main.9192af7c.js similarity index 98% rename from assets/js/runtime~main.610120df.js rename to assets/js/runtime~main.9192af7c.js index 46efc1d..52bbf0b 100644 --- a/assets/js/runtime~main.610120df.js +++ b/assets/js/runtime~main.9192af7c.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,r,b,c={},d={};function f(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return c[e].call(t.exports,t,t.exports,f),t.exports}f.m=c,e=[],f.O=(a,t,r,b)=>{if(!t){var c=1/0;for(i=0;i=b)&&Object.keys(f.O).every((e=>f.O[e](t[o])))?t.splice(o--,1):(d=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[t,r,b]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var b=Object.create(null);f.r(b);var c={};a=a||[null,t({}),t([]),t(t)];for(var d=2&r&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,f.d(b,c),b},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({207:"e9896d96",681:"4b9e34a4",720:"ed74b81d",852:"e1a5646c",957:"c141421f",1188:"eb8c4f14",1505:"8bcc1ac5",1567:"22dd74f7",1569:"528c22b2",2138:"1a4e3797",2862:"df20d1e7",2921:"88502af0",3149:"186bd3b4",3703:"30b7df4b",3864:"0656e72b",4208:"ceb59201",4279:"df203c0f",4334:"1eb960ea",4637:"86bc5002",4787:"3720c009",5200:"7422c883",5401:"ab803a6a",5742:"aba21aa0",5774:"195f1085",5794:"9fb582a2",5876:"0ebd984c",6969:"14eb3368",7074:"1b769307",7098:"a7bd4aaa",7506:"58585d64",7512:"c8229a80",7741:"dc9785ac",7778:"e4b9287f",7813:"d6ba1c29",7885:"311251d9",8008:"2de70c33",8123:"cf0e67a8",8187:"63fd087b",8213:"72982baa",8401:"17896441",8422:"05406345",8605:"ad127535",8782:"ffeab816",9048:"a94703ab",9174:"59af61a6",9315:"ad895e75",9334:"3c339e32",9647:"5e95c892"}[e]||e)+"."+{207:"65b08dd5",416:"b3671cb8",681:"3b8e0c18",720:"255f2791",852:"dc7c2784",957:"a8bd9081",1188:"a16eaa66",1505:"8d339227",1567:"628cf7ac",1569:"5eee21c6",2138:"7152470f",2237:"95397a9c",2862:"f4acbf09",2921:"a0d5d7f2",3149:"3b9d3e47",3703:"408cfdaa",3864:"f1bba526",4208:"ce4a07e2",4279:"1279ac63",4334:"9ce45ab7",4637:"4c41eab9",4787:"66d1aa08",5200:"86d237ba",5401:"09d3d3c7",5742:"88370a23",5774:"1695ac34",5794:"4c2eba65",5876:"81f1bafa",6969:"6ea04eb9",7074:"8ac9dd4d",7098:"f14e60ee",7506:"f0bff832",7512:"edcbea96",7741:"dfa472f0",7778:"82ec8080",7813:"5c172b4a",7885:"27a34104",8008:"e227761a",8123:"afa7a795",8158:"488414a2",8187:"183ae190",8213:"55486a88",8401:"c99ad17f",8422:"47d59ca7",8605:"a0c1c3e2",8782:"ea8ddad9",8913:"852f52c7",9048:"9632a520",9174:"9592dc33",9315:"4e458b15",9334:"28968855",9647:"02afc16c"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b="my-website:",f.l=(e,a,t,c)=>{if(r[e])r[e].push(a);else{var d,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var b=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),b&&b.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=l.bind(null,d.onerror),d.onload=l.bind(null,d.onload),o&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"8401",e9896d96:"207","4b9e34a4":"681",ed74b81d:"720",e1a5646c:"852",c141421f:"957",eb8c4f14:"1188","8bcc1ac5":"1505","22dd74f7":"1567","528c22b2":"1569","1a4e3797":"2138",df20d1e7:"2862","88502af0":"2921","186bd3b4":"3149","30b7df4b":"3703","0656e72b":"3864",ceb59201:"4208",df203c0f:"4279","1eb960ea":"4334","86bc5002":"4637","3720c009":"4787","7422c883":"5200",ab803a6a:"5401",aba21aa0:"5742","195f1085":"5774","9fb582a2":"5794","0ebd984c":"5876","14eb3368":"6969","1b769307":"7074",a7bd4aaa:"7098","58585d64":"7506",c8229a80:"7512",dc9785ac:"7741",e4b9287f:"7778",d6ba1c29:"7813","311251d9":"7885","2de70c33":"8008",cf0e67a8:"8123","63fd087b":"8187","72982baa":"8213","05406345":"8422",ad127535:"8605",ffeab816:"8782",a94703ab:"9048","59af61a6":"9174",ad895e75:"9315","3c339e32":"9334","5e95c892":"9647"}[e]||e,f.p+f.u(e)},(()=>{var e={5354:0,1869:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((t,b)=>r=e[a]=[t,b]));t.push(r[2]=b);var c=f.p+f.u(a),d=new Error;f.l(c,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var b=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",d.name="ChunkLoadError",d.type=b,d.request=c,r[1](d)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,b,c=t[0],d=t[1],o=t[2],n=0;if(c.some((a=>0!==e[a]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(o)var i=o(f)}for(a&&a(t);n{"use strict";var e,a,t,r,b,c={},d={};function f(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return c[e].call(t.exports,t,t.exports,f),t.exports}f.m=c,e=[],f.O=(a,t,r,b)=>{if(!t){var c=1/0;for(i=0;i=b)&&Object.keys(f.O).every((e=>f.O[e](t[o])))?t.splice(o--,1):(d=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[t,r,b]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var b=Object.create(null);f.r(b);var c={};a=a||[null,t({}),t([]),t(t)];for(var d=2&r&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,f.d(b,c),b},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({207:"e9896d96",681:"4b9e34a4",720:"ed74b81d",852:"e1a5646c",957:"c141421f",1188:"eb8c4f14",1505:"8bcc1ac5",1567:"22dd74f7",1569:"528c22b2",2138:"1a4e3797",2862:"df20d1e7",2921:"88502af0",3149:"186bd3b4",3703:"30b7df4b",3864:"0656e72b",4208:"ceb59201",4279:"df203c0f",4334:"1eb960ea",4637:"86bc5002",4787:"3720c009",5200:"7422c883",5401:"ab803a6a",5742:"aba21aa0",5774:"195f1085",5794:"9fb582a2",5876:"0ebd984c",6969:"14eb3368",7074:"1b769307",7098:"a7bd4aaa",7506:"58585d64",7512:"c8229a80",7741:"dc9785ac",7778:"e4b9287f",7813:"d6ba1c29",7885:"311251d9",8008:"2de70c33",8123:"cf0e67a8",8187:"63fd087b",8213:"72982baa",8401:"17896441",8422:"05406345",8605:"ad127535",8782:"ffeab816",9048:"a94703ab",9174:"59af61a6",9315:"ad895e75",9334:"3c339e32",9647:"5e95c892"}[e]||e)+"."+{207:"65b08dd5",416:"b3671cb8",681:"3b8e0c18",720:"255f2791",852:"dc7c2784",957:"a8bd9081",1188:"a16eaa66",1505:"8d339227",1567:"628cf7ac",1569:"5eee21c6",2138:"7152470f",2237:"95397a9c",2862:"f4acbf09",2921:"a0d5d7f2",3149:"3b9d3e47",3703:"408cfdaa",3864:"0cba503e",4208:"ce4a07e2",4279:"1279ac63",4334:"9ce45ab7",4637:"4c41eab9",4787:"66d1aa08",5200:"86d237ba",5401:"09d3d3c7",5742:"88370a23",5774:"1695ac34",5794:"4c2eba65",5876:"81f1bafa",6969:"6ea04eb9",7074:"8ac9dd4d",7098:"f14e60ee",7506:"f0bff832",7512:"edcbea96",7741:"dfa472f0",7778:"82ec8080",7813:"5c172b4a",7885:"27a34104",8008:"e227761a",8123:"afa7a795",8158:"488414a2",8187:"183ae190",8213:"55486a88",8401:"c99ad17f",8422:"47d59ca7",8605:"a0c1c3e2",8782:"ea8ddad9",8913:"852f52c7",9048:"9632a520",9174:"9592dc33",9315:"4e458b15",9334:"28968855",9647:"02afc16c"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b="my-website:",f.l=(e,a,t,c)=>{if(r[e])r[e].push(a);else{var d,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var b=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),b&&b.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=l.bind(null,d.onerror),d.onload=l.bind(null,d.onload),o&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"8401",e9896d96:"207","4b9e34a4":"681",ed74b81d:"720",e1a5646c:"852",c141421f:"957",eb8c4f14:"1188","8bcc1ac5":"1505","22dd74f7":"1567","528c22b2":"1569","1a4e3797":"2138",df20d1e7:"2862","88502af0":"2921","186bd3b4":"3149","30b7df4b":"3703","0656e72b":"3864",ceb59201:"4208",df203c0f:"4279","1eb960ea":"4334","86bc5002":"4637","3720c009":"4787","7422c883":"5200",ab803a6a:"5401",aba21aa0:"5742","195f1085":"5774","9fb582a2":"5794","0ebd984c":"5876","14eb3368":"6969","1b769307":"7074",a7bd4aaa:"7098","58585d64":"7506",c8229a80:"7512",dc9785ac:"7741",e4b9287f:"7778",d6ba1c29:"7813","311251d9":"7885","2de70c33":"8008",cf0e67a8:"8123","63fd087b":"8187","72982baa":"8213","05406345":"8422",ad127535:"8605",ffeab816:"8782",a94703ab:"9048","59af61a6":"9174",ad895e75:"9315","3c339e32":"9334","5e95c892":"9647"}[e]||e,f.p+f.u(e)},(()=>{var e={5354:0,1869:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((t,b)=>r=e[a]=[t,b]));t.push(r[2]=b);var c=f.p+f.u(a),d=new Error;f.l(c,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var b=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",d.name="ChunkLoadError",d.type=b,d.request=c,r[1](d)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,b,c=t[0],d=t[1],o=t[2],n=0;if(c.some((a=>0!==e[a]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(o)var i=o(f)}for(a&&a(t);n - + diff --git a/index.html b/index.html index d15f897..390358c 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - + diff --git a/search/index.html b/search/index.html index c3ba308..af785b5 100644 --- a/search/index.html +++ b/search/index.html @@ -7,7 +7,7 @@ - + diff --git a/tags/api/index.html b/tags/api/index.html index 24fd3c4..e7edd6f 100644 --- a/tags/api/index.html +++ b/tags/api/index.html @@ -7,7 +7,7 @@ - + diff --git a/tags/enterprise/index.html b/tags/enterprise/index.html index e2ae23c..8971aa5 100644 --- a/tags/enterprise/index.html +++ b/tags/enterprise/index.html @@ -7,7 +7,7 @@ - + diff --git a/tags/index.html b/tags/index.html index 60d8d09..6470a6a 100644 --- a/tags/index.html +++ b/tags/index.html @@ -7,7 +7,7 @@ - + diff --git a/tags/premium/index.html b/tags/premium/index.html index 1b93e6f..90eee1e 100644 --- a/tags/premium/index.html +++ b/tags/premium/index.html @@ -7,7 +7,7 @@ - + diff --git a/tags/pro/index.html b/tags/pro/index.html index 2bfc0de..ccab16b 100644 --- a/tags/pro/index.html +++ b/tags/pro/index.html @@ -7,7 +7,7 @@ - +