# Include{groups}
portals:
  open:
# Include{portalLink}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}

# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
# Include{containerBasic}
# Include{containerAdvanced}

  - variable: privatebin
    group: "App Configuration"
    label: "PrivateBin Custom Configuration"
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: main
          label: "Main Configuration"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: name
                label: "name"
                description: "Set a project name to be displayed on the website"
                schema:
                  type: string
                  default: ""
              - variable: basepath
                label: "basepath"
                description: "The full URL, with the domain name and directories that point to the PrivateBin files. This URL is essential to allow Opengraph images to be displayed on social networks."
                schema:
                  type: string
                  default: ""
              - variable: discussion
                label: "discussion"
                description: "Enable or disable the discussion feature"
                schema:
                  type: boolean
                  default: true
              - variable: opendiscussion
                label: "opendiscussion"
                description: "Preselect the discussion feature"
                schema:
                  type: boolean
                  default: false
              - variable: password
                label: "password"
                description: "Enable or disable the password feature"
                schema:
                  type: boolean
                  default: true
              - variable: fileupload
                label: "fileupload"
                description: "Enable or disable the file upload feature"
                schema:
                  type: boolean
                  default: false
              - variable: burnafterreadingselected
                label: "burnafterreadingselected"
                description: "Preselect the burn-after-reading feature"
                schema:
                  type: boolean
                  default: false
              - variable: defaultformatter
                label: "defaultformatter"
                description: "Which display mode to preselect by default"
                schema:
                  type: string
                  default: "plaintext"
                  required: true
                  enum:
                    - value: "plaintext"
                      description: "Plain Text"
                    - value: "syntaxhighlighting"
                      description: "Source Code"
                    - value: "markdown"
                      description: "Markdown"
              - variable: syntaxhighlightingtheme
                label: "syntaxhighlightingtheme"
                description: "Set a syntax highlighting theme"
                schema:
                  type: string
                  default: ""
                  enum:
                    - value: ""
                      description: "PrivateBin Default"
                    - value: "desert"
                      description: "Desert"
                    - value: "doxy"
                      description: "Doxy"
                    - value: "prettify"
                      description: "Default"
                    - value: "sons-of-obsidian"
                      description: "Sons-Of-Obsidian"
                    - value: "sunburst"
                      description: "Sunburst"
              - variable: sizelimit
                label: "sizelimit"
                description: "Size limit per paste or comment in bytes"
                schema:
                  type: int
                  default: 10485760
                  required: true
              - variable: template
                label: "template"
                description: "Template to use"
                schema:
                  type: string
                  default: "bootstrap"
                  required: true
                  enum:
                    - value: "bootstrap"
                      description: "bootstrap"
                    - value: "bootstrap-page"
                      description: "bootstrap-page"
                    - value: "bootstrap-dark"
                      description: "bootstrap-dark"
                    - value: "bootstrap-dark-page"
                      description: "bootstrap-dark-page"
                    - value: "bootstrap-compact"
                      description: "bootstrap-compact"
                    - value: "bootstrap-compact-page"
                      description: "bootstrap-compact-page"
                    - value: "page"
                      description: "page"
              - variable: info
                label: "info"
                description: "Info text to display. Use single, instead of double quotes for HTML attributes."
                schema:
                  type: string
                  default: ""
              - variable: notice
                label: "notice"
                description: "Notice to display"
                schema:
                  type: string
                  default: ""
              - variable: languageselection
                label: "languageselection"
                description: "By default PrivateBin will guess the visitors language based on the browsers settings. Optionally you can enable the language selection menu, which uses a session cookie to store the choice until the browser is closed."
                schema:
                  type: boolean
                  default: false
              - variable: languagedefault
                label: "languagedefault"
                description: "Set the language your installs defaults to, defaults to English. If this is set and language selection is disabled, this will be the only language."
                schema:
                  type: string
                  default: ""
              - variable: urlshortener
                label: "urlshortener"
                description: "URL shortener address to offer after a new paste is created. It is suggested to only use this with self-hosted shorteners as this will leak the pastes encryption key."
                schema:
                  type: string
                  default: ""
              - variable: qrcode
                label: "qrcode"
                description: "Let users create a QR code for sharing the paste URL with one click. It works both when a new paste is created and when you view a paste."
                schema:
                  type: string
                  default: ""
                  enum:
                    - value: ""
                      description: "PrivateBin Default"
                    - value: "true"
                      description: "true"
                    - value: "false"
                      description: "false"
              - variable: icon
                label: "icon"
                description: "IP based icons are a weak mechanism to detect if a comment was from. a different user when the same username was used in a comment. It might be used to get the IP of a non anonymous comment poster if the server salt is leaked and a SHA256 HMAC rainbow table is generated for all (relevant) IPs."
                schema:
                  type: string
                  default: ""
                  enum:
                    - value: ""
                      description: "PrivateBin Default"
                    - value: "none"
                      description: "none"
                    - value: "vizhash"
                      description: "vizhash"
                    - value: "identicon"
                      description: "identicon"
              - variable: cspheader
                label: "cspheader"
                description: "Content Security Policy headers allow a website to restrict what sources are allowed to be accessed in its context. You need to change this if you added custom scripts from third-party domains to your templates, e.g. tracking scripts or run your site behind certain DDoS-protection services. Check the documentation at https://content-security-policy.com/"
                schema:
                  type: string
                  default: ""
              - variable: zerobincompatibility
                label: "zerobincompatibility"
                description: "Stay compatible with PrivateBin Alpha 0.19, less secure. f enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of sha256 in HMAC for the deletion token."
                schema:
                  type: string
                  default: ""
                  enum:
                    - value: ""
                      description: "PrivateBin Default"
                    - value: "true"
                      description: "true"
                    - value: "false"
                      description: "false"
              - variable: httpwarning
                label: "httpwarning"
                description: "Enable or disable the warning message when the site is served over an insecure connection (insecure HTTP instead of HTTPS). Secure transport methods like Tor and I2P domains are automatically whitelisted. It is **strongly discouraged** to disable this."
                schema:
                  type: string
                  default: ""
                  enum:
                    - value: ""
                      description: "PrivateBin Default"
                    - value: "true"
                      description: "true"
                    - value: "false"
                      description: "false"
              - variable: compression
                label: "compression"
                description: "Pick compression algorithm or disable it. Only applies to pastes/comments created after changing the setting."
                schema:
                  type: string
                  default: ""
                  enum:
                    - value: ""
                      description: "PrivateBin Default"
                    - value: "none"
                      description: "none"
                    - value: "zlib"
                      description: "zlib"
        - variable: expire
          label: "Expire Configuration"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: default
                label: "default"
                description: "Expire value that is selected per default"
                schema:
                  type: string
                  default: "1week"
                  required: true
                  enum:
                    - value: "5min"
                      description: "5min"
                    - value: "10min"
                      description: "10min"
                    - value: "1hour"
                      description: "1hour"
                    - value: "1day"
                      description: "1day"
                    - value: "1week"
                      description: "1week"
                    - value: "1month"
                      description: "1month"
                    - value: "1year"
                      description: "1year"
                    - value: "never"
                      description: "never"
        - variable: traffic
          label: "Traffic Configuration"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: limit
                label: "limit"
                description: "Time limit between calls from the same IP address in seconds"
                schema:
                  type: int
                  default: 10
                  required: true
              - variable: exempted
                label: "exempted"
                description: "Set IPs addresses (v4 or v6) or subnets (CIDR) which are exempted from the rate-limit. Invalid IPs will be ignored. If multiple values are to be exempted, the list needs to be comma separated. Leave unset to disable exemptions."
                schema:
                  type: string
                  default: ""
              - variable: creators
                label: "creators"
                description: "If you want only some source IP addresses (v4 or v6) or subnets (CIDR) to be allowed to create pastes, set these here. Invalid IPs will be ignored. If multiple values are to be exempted, the list needs to be comma separated. Leave unset to allow anyone to create pastes."
                schema:
                  type: string
                  default: ""
              - variable: header
                label: "header"
                description: "If your website runs behind a reverse proxy or load balancer, set the HTTP header containing the visitors IP address, i.e. X_FORWARDED_FOR"
                schema:
                  type: string
                  default: ""
        - variable: purge
          label: "Purge Configuration"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: limit
                label: "limit"
                description: "Minimum time limit between two purgings of expired pastes, it is only triggered when pastes are created"
                schema:
                  type: int
                  default: 300
                  required: true
              - variable: batchsize
                label: "batchsize"
                description: "Maximum amount of expired pastes to delete in one purge. Set this to 0 to disable purging. Set it higher, if you are running a large site."
                schema:
                  type: int
                  default: 10
                  required: true
# Include{containerConfig}
# Include{serviceRoot}
        - variable: main
          label: "Main Service"
          description: "The Primary service on which the healthcheck runs, often the webUI"
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: main
                      label: "Main Service Port Configuration"
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: port
                            label: "Port"
                            description: "This port exposes the container port on the service"
                            schema:
                              type: int
                              default: 10248
                              required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceList}
# Include{ingressRoot}
        - variable: main
          label: "Main Ingress"
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressAdvanced}
# Include{ingressList}
# Include{securityContextRoot}

              - variable: runAsUser
                label: "runAsUser"
                description: "The UserID of the user running the application"
                schema:
                  type: int
                  default: 65534
        - variable: runAsGroup
          label: "runAsGroup"
          description: "The groupID this App of the user running the application"
          schema:
            type: int
            default: 82
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
        - variable: fsGroup
          label: "fsGroup"
          description: "The group that should own ALL storage."
          schema:
            type: int
            default: 82

# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}
