questions.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. groups:
  2. - name: 2FAuth Configuration
  3. description: Configure 2FAuth
  4. - name: Network Configuration
  5. description: Configure Network for 2FAuth
  6. - name: Storage Configuration
  7. description: Configure Storage for 2FAuth
  8. - name: Resources Configuration
  9. description: Configure Resources for 2FAuth
  10. portals:
  11. web_portal:
  12. protocols:
  13. - "$kubernetes-resource_configmap_portal_protocol"
  14. host:
  15. - "$kubernetes-resource_configmap_portal_host"
  16. ports:
  17. - "$kubernetes-resource_configmap_portal_port"
  18. path: "$kubernetes-resource_configmap_portal_path"
  19. questions:
  20. - variable: twofauthConfig
  21. label: ""
  22. group: 2FAuth Configuration
  23. schema:
  24. type: dict
  25. attrs:
  26. - variable: appName
  27. label: App Name
  28. description: The name of the 2FAuth.
  29. schema:
  30. type: string
  31. default: "2FAuth"
  32. required: true
  33. - variable: appUrl
  34. label: App URL
  35. description: |
  36. The URL that 2FAuth will be accessible from.</br>
  37. Example: </br>
  38. http://server.ip:30081</br>
  39. https://2fauth.example.com
  40. schema:
  41. type: uri
  42. default: ""
  43. required: true
  44. - variable: siteOwnerEmail
  45. label: Site Owner Email
  46. description: The email address of the site owner.
  47. schema:
  48. type: string
  49. default: ""
  50. required: true
  51. - variable: authenticationGuard
  52. label: Authentication Guard
  53. description: |
  54. When using 'reverse-proxy-guard' 2FAuth only look for the dedicated headers and skip all
  55. other built-in authentication checks. That means your proxy is fully responsible of the
  56. authentication process, 2FAuth will trust him as long as headers are presents.
  57. schema:
  58. type: string
  59. default: "web-guard"
  60. required: true
  61. enum:
  62. - value: "web-guard"
  63. description: Web Guard
  64. - value: "reverse-proxy-guard"
  65. description: Reverse Proxy Guard
  66. - variable: authProxyHeaderUser
  67. label: Authentication Proxy Header User
  68. description: |
  69. Name of the HTTP headers sent by the reverse proxy that identifies the authenticated
  70. user at proxy level. Check your proxy documentation to find out how these headers are named.
  71. schema:
  72. type: string
  73. default: ""
  74. show_if: [["authenticationGuard", "=", "reverse-proxy-guard"]]
  75. required: true
  76. - variable: authProxyHeaderEmail
  77. label: Authentication Proxy Header Email
  78. description: |
  79. Name of the HTTP headers sent by the reverse proxy that identifies the authenticated
  80. user at proxy level. Check your proxy documentation to find out how these headers are named.
  81. schema:
  82. type: string
  83. default: ""
  84. show_if: [["authenticationGuard", "=", "reverse-proxy-guard"]]
  85. required: true
  86. - variable: webauthnUserVerification
  87. label: WebAuthn User Verification
  88. description: |
  89. Most authenticators and smartphones will ask the user to actively verify
  90. themselves for log in. For example, through a touch plus pin code,
  91. password entry, or biometric recognition (e.g., presenting a fingerprint).
  92. The intent is to distinguish one user from any other.
  93. schema:
  94. type: string
  95. default: "preferred"
  96. required: true
  97. enum:
  98. - value: "preferred"
  99. description: Preferred
  100. - value: "required"
  101. description: Required
  102. - value: "discouraged"
  103. description: Discouraged
  104. - variable: trustedProxies
  105. label: Trusted Proxies
  106. description: The list of proxies IP to trust
  107. schema:
  108. type: list
  109. default: []
  110. items:
  111. - variable: trustedProxy
  112. label: Trusted Proxy
  113. schema:
  114. type: string
  115. required: true
  116. - variable: additionalEnvs
  117. label: Additional Environment Variables
  118. description: Configure additional environment variables for 2FAuth.
  119. schema:
  120. type: list
  121. default: []
  122. items:
  123. - variable: env
  124. label: Environment Variable
  125. schema:
  126. type: dict
  127. attrs:
  128. - variable: name
  129. label: Name
  130. schema:
  131. type: string
  132. required: true
  133. - variable: value
  134. label: Value
  135. schema:
  136. type: string
  137. required: true
  138. - variable: twofauthNetwork
  139. label: ""
  140. group: Network Configuration
  141. schema:
  142. type: dict
  143. attrs:
  144. - variable: webPort
  145. label: Web Port
  146. description: The port for the 2FAuth Web UI.
  147. schema:
  148. type: int
  149. default: 30081
  150. min: 9000
  151. max: 65535
  152. required: true
  153. - variable: hostNetwork
  154. label: Host Network
  155. description: |
  156. Bind to the host network. It's recommended to keep this disabled.</br>
  157. schema:
  158. type: boolean
  159. default: false
  160. - variable: twofauthStorage
  161. label: ""
  162. group: Storage Configuration
  163. schema:
  164. type: dict
  165. attrs:
  166. - variable: config
  167. label: 2FAuth Config Storage
  168. description: The path to store 2FAuth Configuration.
  169. schema:
  170. type: dict
  171. attrs:
  172. - variable: type
  173. label: Type
  174. description: |
  175. ixVolume: Is dataset created automatically by the system.</br>
  176. Host Path: Is a path that already exists on the system.
  177. schema:
  178. type: string
  179. required: true
  180. default: "ixVolume"
  181. enum:
  182. - value: "hostPath"
  183. description: Host Path (Path that already exists on the system)
  184. - value: "ixVolume"
  185. description: ixVolume (Dataset created automatically by the system)
  186. - variable: datasetName
  187. label: Dataset Name
  188. schema:
  189. type: string
  190. show_if: [["type", "=", "ixVolume"]]
  191. required: true
  192. hidden: true
  193. immutable: true
  194. default: "config"
  195. $ref:
  196. - "normalize/ixVolume"
  197. - variable: hostPath
  198. label: Host Path
  199. schema:
  200. type: hostpath
  201. show_if: [["type", "=", "hostPath"]]
  202. immutable: true
  203. required: true
  204. - variable: additionalStorages
  205. label: Additional Storage
  206. description: Additional storage for 2FAuth.
  207. schema:
  208. type: list
  209. default: []
  210. items:
  211. - variable: storageEntry
  212. label: Storage Entry
  213. schema:
  214. type: dict
  215. attrs:
  216. - variable: type
  217. label: Type
  218. description: |
  219. ixVolume: Is dataset created automatically by the system.</br>
  220. Host Path: Is a path that already exists on the system.
  221. schema:
  222. type: string
  223. required: true
  224. default: "ixVolume"
  225. immutable: true
  226. enum:
  227. - value: "hostPath"
  228. description: Host Path (Path that already exists on the system)
  229. - value: "ixVolume"
  230. description: ixVolume (Dataset created automatically by the system)
  231. - value: "smb-pv-pvc"
  232. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  233. - variable: mountPath
  234. label: Mount Path
  235. description: The path inside the container to mount the storage.
  236. schema:
  237. type: path
  238. required: true
  239. - variable: hostPath
  240. label: Host Path
  241. description: The host path to use for storage.
  242. schema:
  243. type: hostpath
  244. show_if: [["type", "=", "hostPath"]]
  245. required: true
  246. - variable: datasetName
  247. label: Dataset Name
  248. description: The name of the dataset to use for storage.
  249. schema:
  250. type: string
  251. show_if: [["type", "=", "ixVolume"]]
  252. required: true
  253. immutable: true
  254. default: "storage_entry"
  255. $ref:
  256. - "normalize/ixVolume"
  257. - variable: server
  258. label: Server
  259. description: The server for the SMB share.
  260. schema:
  261. type: string
  262. show_if: [["type", "=", "smb-pv-pvc"]]
  263. required: true
  264. - variable: share
  265. label: Share
  266. description: The share name for the SMB share.
  267. schema:
  268. type: string
  269. show_if: [["type", "=", "smb-pv-pvc"]]
  270. required: true
  271. - variable: domain
  272. label: Domain (Optional)
  273. description: The domain for the SMB share.
  274. schema:
  275. type: string
  276. show_if: [["type", "=", "smb-pv-pvc"]]
  277. - variable: username
  278. label: Username
  279. description: The username for the SMB share.
  280. schema:
  281. type: string
  282. show_if: [["type", "=", "smb-pv-pvc"]]
  283. required: true
  284. - variable: password
  285. label: Password
  286. description: The password for the SMB share.
  287. schema:
  288. type: string
  289. show_if: [["type", "=", "smb-pv-pvc"]]
  290. required: true
  291. private: true
  292. - variable: size
  293. label: Size (in Gi)
  294. description: The size of the volume quota.
  295. schema:
  296. type: int
  297. show_if: [["type", "=", "smb-pv-pvc"]]
  298. required: true
  299. min: 1
  300. default: 1
  301. - variable: resources
  302. group: Resources Configuration
  303. label: ""
  304. schema:
  305. type: dict
  306. attrs:
  307. - variable: limits
  308. label: Limits
  309. schema:
  310. type: dict
  311. attrs:
  312. - variable: cpu
  313. label: CPU
  314. description: CPU limit for 2FAuth.
  315. schema:
  316. type: string
  317. max_length: 6
  318. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  319. valid_chars_error: |
  320. Valid CPU limit formats are</br>
  321. - Plain Integer - eg. 1</br>
  322. - Float - eg. 0.5</br>
  323. - Milicpu - eg. 500m
  324. default: "4000m"
  325. required: true
  326. - variable: memory
  327. label: Memory
  328. description: Memory limit for 2FAuth.
  329. schema:
  330. type: string
  331. max_length: 12
  332. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  333. valid_chars_error: |
  334. Valid Memory limit formats are</br>
  335. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  336. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  337. - Plain Integer in bytes - eg. 1024</br>
  338. - Exponent - eg. 134e6
  339. default: "8Gi"
  340. required: true