app_versions.json 178 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329
  1. {
  2. "1.2.11": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/piwigo/1.2.11",
  7. "last_update": "2025-03-05 14:27:33",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "normalize/acl"
  11. ],
  12. "human_version": "15.4.0_1.2.11",
  13. "version": "1.2.11",
  14. "chart_metadata": {
  15. "name": "piwigo",
  16. "description": "Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.",
  17. "annotations": {
  18. "title": "Piwigo"
  19. },
  20. "type": "application",
  21. "version": "1.2.11",
  22. "apiVersion": "v2",
  23. "appVersion": "15.4.0",
  24. "kubeVersion": ">=1.16.0-0",
  25. "maintainers": [
  26. {
  27. "name": "truenas",
  28. "url": "https://www.truenas.com/",
  29. "email": "dev@ixsystems.com"
  30. }
  31. ],
  32. "dependencies": [
  33. {
  34. "name": "common",
  35. "repository": "file://../../../common",
  36. "version": "1.2.9"
  37. }
  38. ],
  39. "home": "https://piwigo.org",
  40. "icon": "https://media.sys.truenas.net/apps/piwigo/icons/icon.svg",
  41. "sources": [
  42. "https://hub.docker.com/r/linuxserver/piwigo",
  43. "https://github.com/truenas/charts/tree/master/community/piwigo"
  44. ],
  45. "keywords": [
  46. "gallery",
  47. "photo"
  48. ]
  49. },
  50. "app_metadata": {
  51. "runAsContext": [
  52. {
  53. "userName": "root",
  54. "groupName": "root",
  55. "gid": 0,
  56. "uid": 0,
  57. "description": "Piwigo run as root user"
  58. }
  59. ],
  60. "capabilities": [
  61. {
  62. "name": "CHOWN",
  63. "description": "Piwigo is able to chown files."
  64. },
  65. {
  66. "name": "DAC_OVERRIDE",
  67. "description": "Piwigo is able to bypass permission checks."
  68. },
  69. {
  70. "name": "FOWNER",
  71. "description": "Piwigo is able bypass permission checks for it's sub-processes."
  72. },
  73. {
  74. "name": "NET_BIND_SERVICE",
  75. "description": "Piwigo requires this ability to bind to port 80 within the container."
  76. },
  77. {
  78. "name": "SETGID",
  79. "description": "Piwigo is able to set group ID for it's sub-processes."
  80. },
  81. {
  82. "name": "SETUID",
  83. "description": "Piwigo is able to set user ID for it's sub-processes."
  84. }
  85. ],
  86. "hostMounts": []
  87. },
  88. "schema": {
  89. "groups": [
  90. {
  91. "name": "Piwigo Configuration",
  92. "description": "Configure Piwigo"
  93. },
  94. {
  95. "name": "User and Group Configuration",
  96. "description": "Configure User and Group for Piwigo"
  97. },
  98. {
  99. "name": "Network Configuration",
  100. "description": "Configure Network for Piwigo"
  101. },
  102. {
  103. "name": "Storage Configuration",
  104. "description": "Configure Storage for Piwigo"
  105. },
  106. {
  107. "name": "Resources Configuration",
  108. "description": "Configure Resources for Piwigo"
  109. }
  110. ],
  111. "portals": {
  112. "web_portal": {
  113. "protocols": [
  114. "$kubernetes-resource_configmap_portal_protocol"
  115. ],
  116. "host": [
  117. "$kubernetes-resource_configmap_portal_host"
  118. ],
  119. "ports": [
  120. "$kubernetes-resource_configmap_portal_port"
  121. ],
  122. "path": "$kubernetes-resource_configmap_portal_path"
  123. }
  124. },
  125. "questions": [
  126. {
  127. "variable": "piwiConfig",
  128. "label": "",
  129. "group": "Piwigo Configuration",
  130. "schema": {
  131. "type": "dict",
  132. "attrs": [
  133. {
  134. "variable": "adminName",
  135. "label": "Admin Name",
  136. "description": "The admin name for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
  137. "schema": {
  138. "type": "string",
  139. "required": true,
  140. "immutable": true,
  141. "default": ""
  142. }
  143. },
  144. {
  145. "variable": "adminMail",
  146. "label": "Admin Mail",
  147. "description": "The admin mail for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
  148. "schema": {
  149. "type": "string",
  150. "required": true,
  151. "immutable": true,
  152. "default": ""
  153. }
  154. },
  155. {
  156. "variable": "adminPass",
  157. "label": "Admin Password",
  158. "description": "The admin password for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
  159. "schema": {
  160. "type": "string",
  161. "required": true,
  162. "immutable": true,
  163. "password": true,
  164. "default": ""
  165. }
  166. },
  167. {
  168. "variable": "language",
  169. "label": "Language",
  170. "description": "The language for Piwigo.</br>\nOnly used when Piwigo is first installed.\n",
  171. "schema": {
  172. "type": "string",
  173. "required": true,
  174. "immutable": true,
  175. "default": "en_UK",
  176. "enum": [
  177. {
  178. "value": "af_ZA",
  179. "description": "Afrikaans [ZA]"
  180. },
  181. {
  182. "value": "es_AR",
  183. "description": "Argentina [AR]"
  184. },
  185. {
  186. "value": "az_AZ",
  187. "description": "Az\u0259rbaycanca [AZ]"
  188. },
  189. {
  190. "value": "id_ID",
  191. "description": "Bahasa Indonesia [ID]"
  192. },
  193. {
  194. "value": "pt_BR",
  195. "description": "Brasil [BR]"
  196. },
  197. {
  198. "value": "br_FR",
  199. "description": "Brezhoneg [FR]"
  200. },
  201. {
  202. "value": "ca_ES",
  203. "description": "Catal\u00e0 [CA]"
  204. },
  205. {
  206. "value": "da_DK",
  207. "description": "Dansk [DK]"
  208. },
  209. {
  210. "value": "de_DE",
  211. "description": "Deutsch [DE]"
  212. },
  213. {
  214. "value": "dv_MV",
  215. "description": "Dhivehi [MV]"
  216. },
  217. {
  218. "value": "en_GB",
  219. "description": "English [GB]"
  220. },
  221. {
  222. "value": "en_UK",
  223. "description": "English [UK]"
  224. },
  225. {
  226. "value": "en_US",
  227. "description": "English [US]"
  228. },
  229. {
  230. "value": "es_ES",
  231. "description": "Espa\u00f1ol [ES]"
  232. },
  233. {
  234. "value": "eo_EO",
  235. "description": "Esperanto [EO]"
  236. },
  237. {
  238. "value": "et_EE",
  239. "description": "Estonian [EE]"
  240. },
  241. {
  242. "value": "eu_ES",
  243. "description": "Euskara [ES]"
  244. },
  245. {
  246. "value": "fi_FI",
  247. "description": "Finnish [FI]"
  248. },
  249. {
  250. "value": "fr_FR",
  251. "description": "Fran\u00e7ais [FR]"
  252. },
  253. {
  254. "value": "fr_CA",
  255. "description": "Fran\u00e7ais [QC]"
  256. },
  257. {
  258. "value": "ga_IE",
  259. "description": "Gaeilge [IE]"
  260. },
  261. {
  262. "value": "gl_ES",
  263. "description": "Galego [ES]"
  264. },
  265. {
  266. "value": "hr_HR",
  267. "description": "Hrvatski [HR]"
  268. },
  269. {
  270. "value": "it_IT",
  271. "description": "Italiano [IT]"
  272. },
  273. {
  274. "value": "lv_LV",
  275. "description": "Latvie\u0161u [LV]"
  276. },
  277. {
  278. "value": "lt_LT",
  279. "description": "Lietuviu [LT]"
  280. },
  281. {
  282. "value": "lb_LU",
  283. "description": "L\u00ebtzebuergesch [LU]"
  284. },
  285. {
  286. "value": "hu_HU",
  287. "description": "Magyar [HU]"
  288. },
  289. {
  290. "value": "ms_MY",
  291. "description": "Malay [MY]"
  292. },
  293. {
  294. "value": "es_MX",
  295. "description": "M\u00e9xico [MX]"
  296. },
  297. {
  298. "value": "nl_NL",
  299. "description": "Nederlands [NL]"
  300. },
  301. {
  302. "value": "nb_NO",
  303. "description": "Norsk bokm\u00e5l [NO]"
  304. },
  305. {
  306. "value": "nn_NO",
  307. "description": "Norwegian nynorsk [NO]"
  308. },
  309. {
  310. "value": "pl_PL",
  311. "description": "Polski [PL]"
  312. },
  313. {
  314. "value": "pt_PT",
  315. "description": "Portugu\u00eas [PT]"
  316. },
  317. {
  318. "value": "ro_RO",
  319. "description": "Rom\u00e2n\u0103 [RO]"
  320. },
  321. {
  322. "value": "sk_SK",
  323. "description": "Slovensky [SK]"
  324. },
  325. {
  326. "value": "sl_SI",
  327. "description": "Sloven\u0161cina [SI]"
  328. },
  329. {
  330. "value": "sh_RS",
  331. "description": "Srpski [SR]"
  332. },
  333. {
  334. "value": "sv_SE",
  335. "description": "Svenska [SE]"
  336. },
  337. {
  338. "value": "vi_VN",
  339. "description": "Ti\u1ebfng Vi\u1ec7t [VN]"
  340. },
  341. {
  342. "value": "tr_TR",
  343. "description": "T\u00fcrk\u00e7e [TR]"
  344. },
  345. {
  346. "value": "wo_SN",
  347. "description": "Wolof [SN]"
  348. },
  349. {
  350. "value": "is_IS",
  351. "description": "\u00cdslenska [IS]"
  352. },
  353. {
  354. "value": "cs_CZ",
  355. "description": "\u010cesky [CZ]"
  356. },
  357. {
  358. "value": "el_GR",
  359. "description": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac [GR]"
  360. },
  361. {
  362. "value": "bg_BG",
  363. "description": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 [BG]"
  364. },
  365. {
  366. "value": "mk_MK",
  367. "description": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 [MK]"
  368. },
  369. {
  370. "value": "mn_MN",
  371. "description": "\u041c\u043e\u043d\u0433\u043e\u043b [MN]"
  372. },
  373. {
  374. "value": "ru_RU",
  375. "description": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439 [RU]"
  376. },
  377. {
  378. "value": "sr_RS",
  379. "description": "\u0421\u0440\u043f\u0441\u043a\u0438 [SR]"
  380. },
  381. {
  382. "value": "uk_UA",
  383. "description": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430 [UA]"
  384. },
  385. {
  386. "value": "he_IL",
  387. "description": "\u05e2\u05d1\u05e8\u05d9\u05ea [IL]"
  388. },
  389. {
  390. "value": "ar_EG",
  391. "description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0645\u0635"
  392. },
  393. {
  394. "value": "ar_SA",
  395. "description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 [AR]"
  396. },
  397. {
  398. "value": "ar_MA",
  399. "description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 [MA]"
  400. },
  401. {
  402. "value": "fa_IR",
  403. "description": "\u067e\u0627\u0631\u0633\u06cc [IR]"
  404. },
  405. {
  406. "value": "kok_IN",
  407. "description": "\u0915\u094b\u0902\u0915\u0923\u0940 [IN]"
  408. },
  409. {
  410. "value": "bn_IN",
  411. "description": "\u09ac\u09be\u0982\u09b2\u09be[IN]"
  412. },
  413. {
  414. "value": "gu_IN",
  415. "description": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0[IN]"
  416. },
  417. {
  418. "value": "ta_IN",
  419. "description": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd [IN]"
  420. },
  421. {
  422. "value": "kn_IN",
  423. "description": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1 [IN]"
  424. },
  425. {
  426. "value": "th_TH",
  427. "description": "\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22 [TH]"
  428. },
  429. {
  430. "value": "ka_GE",
  431. "description": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 [GE]"
  432. },
  433. {
  434. "value": "km_KH",
  435. "description": "\u1781\u17d2\u1798\u17c2\u179a [KH]"
  436. },
  437. {
  438. "value": "zh_TW",
  439. "description": "\u4e2d\u6587 (\u7e41\u9ad4) [TW]"
  440. },
  441. {
  442. "value": "zh_HK",
  443. "description": "\u4e2d\u6587 (\u9999\u6e2f) [HK]"
  444. },
  445. {
  446. "value": "ja_JP",
  447. "description": "\u65e5\u672c\u8a9e [JP]"
  448. },
  449. {
  450. "value": "zh_CN",
  451. "description": "\u7b80\u4f53\u4e2d\u6587 [CN]"
  452. },
  453. {
  454. "value": "ko_KR",
  455. "description": "\ud55c\uad6d\uc5b4 [KR]"
  456. }
  457. ]
  458. }
  459. },
  460. {
  461. "variable": "additionalEnvs",
  462. "label": "Additional Environment Variables",
  463. "description": "Configure additional environment variables for Piwigo.",
  464. "schema": {
  465. "type": "list",
  466. "default": [],
  467. "items": [
  468. {
  469. "variable": "env",
  470. "label": "Environment Variable",
  471. "schema": {
  472. "type": "dict",
  473. "attrs": [
  474. {
  475. "variable": "name",
  476. "label": "Name",
  477. "schema": {
  478. "type": "string",
  479. "required": true
  480. }
  481. },
  482. {
  483. "variable": "value",
  484. "label": "Value",
  485. "schema": {
  486. "type": "string",
  487. "required": true
  488. }
  489. }
  490. ]
  491. }
  492. }
  493. ]
  494. }
  495. }
  496. ]
  497. }
  498. },
  499. {
  500. "variable": "piwiID",
  501. "label": "",
  502. "group": "User and Group Configuration",
  503. "schema": {
  504. "type": "dict",
  505. "attrs": [
  506. {
  507. "variable": "user",
  508. "label": "User ID",
  509. "description": "The user id that Piwigo files will be owned by.",
  510. "schema": {
  511. "type": "int",
  512. "min": 2,
  513. "default": 568,
  514. "required": true
  515. }
  516. },
  517. {
  518. "variable": "group",
  519. "label": "Group ID",
  520. "description": "The group id that Piwigo files will be owned by.",
  521. "schema": {
  522. "type": "int",
  523. "min": 2,
  524. "default": 568,
  525. "required": true
  526. }
  527. }
  528. ]
  529. }
  530. },
  531. {
  532. "variable": "piwiNetwork",
  533. "label": "",
  534. "group": "Network Configuration",
  535. "schema": {
  536. "type": "dict",
  537. "attrs": [
  538. {
  539. "variable": "webPort",
  540. "label": "Web Port",
  541. "description": "The port for the Piwigo WebUI.",
  542. "schema": {
  543. "type": "int",
  544. "default": 30066,
  545. "min": 9000,
  546. "max": 65535,
  547. "required": true
  548. }
  549. }
  550. ]
  551. }
  552. },
  553. {
  554. "variable": "piwiStorage",
  555. "label": "",
  556. "group": "Storage Configuration",
  557. "schema": {
  558. "type": "dict",
  559. "attrs": [
  560. {
  561. "variable": "config",
  562. "label": "Piwigo Configuration Storage",
  563. "description": "The path to store Piwigo configuration.",
  564. "schema": {
  565. "type": "dict",
  566. "attrs": [
  567. {
  568. "variable": "type",
  569. "label": "Type",
  570. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  571. "schema": {
  572. "type": "string",
  573. "required": true,
  574. "immutable": true,
  575. "default": "ixVolume",
  576. "enum": [
  577. {
  578. "value": "hostPath",
  579. "description": "Host Path (Path that already exists on the system)"
  580. },
  581. {
  582. "value": "ixVolume",
  583. "description": "ixVolume (Dataset created automatically by the system)"
  584. }
  585. ]
  586. }
  587. },
  588. {
  589. "variable": "ixVolumeConfig",
  590. "label": "ixVolume Configuration",
  591. "description": "The configuration for the ixVolume dataset.",
  592. "schema": {
  593. "type": "dict",
  594. "show_if": [
  595. [
  596. "type",
  597. "=",
  598. "ixVolume"
  599. ]
  600. ],
  601. "$ref": [
  602. "normalize/ixVolume"
  603. ],
  604. "attrs": [
  605. {
  606. "variable": "aclEnable",
  607. "label": "Enable ACL",
  608. "description": "Enable ACL for the dataset.",
  609. "schema": {
  610. "type": "boolean",
  611. "default": false
  612. }
  613. },
  614. {
  615. "variable": "datasetName",
  616. "label": "Dataset Name",
  617. "description": "The name of the dataset to use for storage.",
  618. "schema": {
  619. "type": "string",
  620. "required": true,
  621. "immutable": true,
  622. "hidden": true,
  623. "default": "config"
  624. }
  625. },
  626. {
  627. "variable": "aclEntries",
  628. "label": "ACL Configuration",
  629. "schema": {
  630. "type": "dict",
  631. "show_if": [
  632. [
  633. "aclEnable",
  634. "=",
  635. true
  636. ]
  637. ],
  638. "attrs": [
  639. {
  640. "variable": "path",
  641. "label": "Path",
  642. "description": "Path to perform ACL",
  643. "schema": {
  644. "type": "string",
  645. "hidden": true
  646. }
  647. },
  648. {
  649. "variable": "entries",
  650. "label": "ACL Entries",
  651. "description": "ACL Entries",
  652. "schema": {
  653. "type": "list",
  654. "items": [
  655. {
  656. "variable": "aclEntry",
  657. "label": "ACL Entry",
  658. "schema": {
  659. "type": "dict",
  660. "attrs": [
  661. {
  662. "variable": "id_type",
  663. "label": "ID Type",
  664. "schema": {
  665. "type": "string",
  666. "enum": [
  667. {
  668. "value": "USER",
  669. "description": "Entry is for a USER"
  670. },
  671. {
  672. "value": "GROUP",
  673. "description": "Entry is for a GROUP"
  674. }
  675. ],
  676. "default": "USER"
  677. }
  678. },
  679. {
  680. "variable": "id",
  681. "label": "ID",
  682. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  683. "schema": {
  684. "type": "int",
  685. "required": true,
  686. "min": 0
  687. }
  688. },
  689. {
  690. "variable": "access",
  691. "label": "Access",
  692. "schema": {
  693. "type": "string",
  694. "enum": [
  695. {
  696. "value": "READ",
  697. "description": "Read Access"
  698. },
  699. {
  700. "value": "MODIFY",
  701. "description": "Modify Access"
  702. },
  703. {
  704. "value": "FULL_CONTROL",
  705. "description": "FULL_CONTROL Access"
  706. }
  707. ]
  708. }
  709. }
  710. ]
  711. }
  712. }
  713. ]
  714. }
  715. }
  716. ]
  717. }
  718. }
  719. ]
  720. }
  721. },
  722. {
  723. "variable": "hostPathConfig",
  724. "label": "Host Path Configuration",
  725. "schema": {
  726. "type": "dict",
  727. "show_if": [
  728. [
  729. "type",
  730. "=",
  731. "hostPath"
  732. ]
  733. ],
  734. "attrs": [
  735. {
  736. "variable": "aclEnable",
  737. "label": "Enable ACL",
  738. "description": "Enable ACL for the dataset.",
  739. "schema": {
  740. "type": "boolean",
  741. "default": false
  742. }
  743. },
  744. {
  745. "variable": "acl",
  746. "label": "ACL Configuration",
  747. "schema": {
  748. "type": "dict",
  749. "show_if": [
  750. [
  751. "aclEnable",
  752. "=",
  753. true
  754. ]
  755. ],
  756. "attrs": [
  757. {
  758. "variable": "path",
  759. "label": "Host Path",
  760. "description": "Host Path to perform ACL",
  761. "schema": {
  762. "type": "hostpath",
  763. "required": true,
  764. "empty": false
  765. }
  766. },
  767. {
  768. "variable": "entries",
  769. "label": "ACL Entries",
  770. "description": "ACL Entries",
  771. "schema": {
  772. "type": "list",
  773. "items": [
  774. {
  775. "variable": "aclEntry",
  776. "label": "ACL Entry",
  777. "schema": {
  778. "type": "dict",
  779. "attrs": [
  780. {
  781. "variable": "id_type",
  782. "label": "ID Type",
  783. "schema": {
  784. "type": "string",
  785. "enum": [
  786. {
  787. "value": "USER",
  788. "description": "Entry is for a USER"
  789. },
  790. {
  791. "value": "GROUP",
  792. "description": "Entry is for a GROUP"
  793. }
  794. ],
  795. "default": "USER"
  796. }
  797. },
  798. {
  799. "variable": "id",
  800. "label": "ID",
  801. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  802. "schema": {
  803. "type": "int",
  804. "required": true,
  805. "min": 0
  806. }
  807. },
  808. {
  809. "variable": "access",
  810. "label": "Access",
  811. "schema": {
  812. "type": "string",
  813. "enum": [
  814. {
  815. "value": "READ",
  816. "description": "Read Access"
  817. },
  818. {
  819. "value": "MODIFY",
  820. "description": "Modify Access"
  821. },
  822. {
  823. "value": "FULL_CONTROL",
  824. "description": "FULL_CONTROL Access"
  825. }
  826. ]
  827. }
  828. }
  829. ]
  830. }
  831. }
  832. ]
  833. }
  834. },
  835. {
  836. "variable": "options",
  837. "label": "ACL Options",
  838. "schema": {
  839. "type": "dict",
  840. "attrs": [
  841. {
  842. "variable": "force",
  843. "label": "Force Flag",
  844. "description": "Enabling `Force` applies ACL even if the path has existing data",
  845. "schema": {
  846. "type": "boolean",
  847. "default": false
  848. }
  849. }
  850. ]
  851. }
  852. }
  853. ],
  854. "$ref": [
  855. "normalize/acl"
  856. ]
  857. }
  858. },
  859. {
  860. "variable": "hostPath",
  861. "label": "Host Path",
  862. "description": "The host path to use for storage.",
  863. "schema": {
  864. "type": "hostpath",
  865. "show_if": [
  866. [
  867. "aclEnable",
  868. "=",
  869. false
  870. ]
  871. ],
  872. "required": true
  873. }
  874. }
  875. ]
  876. }
  877. }
  878. ]
  879. }
  880. },
  881. {
  882. "variable": "gallery",
  883. "label": "Piwigo Gallery Storage",
  884. "description": "The path to store Piwigo gallery.",
  885. "schema": {
  886. "type": "dict",
  887. "attrs": [
  888. {
  889. "variable": "type",
  890. "label": "Type",
  891. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  892. "schema": {
  893. "type": "string",
  894. "required": true,
  895. "immutable": true,
  896. "default": "ixVolume",
  897. "enum": [
  898. {
  899. "value": "hostPath",
  900. "description": "Host Path (Path that already exists on the system)"
  901. },
  902. {
  903. "value": "ixVolume",
  904. "description": "ixVolume (Dataset created automatically by the system)"
  905. }
  906. ]
  907. }
  908. },
  909. {
  910. "variable": "ixVolumeConfig",
  911. "label": "ixVolume Configuration",
  912. "description": "The configuration for the ixVolume dataset.",
  913. "schema": {
  914. "type": "dict",
  915. "show_if": [
  916. [
  917. "type",
  918. "=",
  919. "ixVolume"
  920. ]
  921. ],
  922. "$ref": [
  923. "normalize/ixVolume"
  924. ],
  925. "attrs": [
  926. {
  927. "variable": "aclEnable",
  928. "label": "Enable ACL",
  929. "description": "Enable ACL for the dataset.",
  930. "schema": {
  931. "type": "boolean",
  932. "default": false
  933. }
  934. },
  935. {
  936. "variable": "datasetName",
  937. "label": "Dataset Name",
  938. "description": "The name of the dataset to use for storage.",
  939. "schema": {
  940. "type": "string",
  941. "required": true,
  942. "immutable": true,
  943. "hidden": true,
  944. "default": "gallery"
  945. }
  946. },
  947. {
  948. "variable": "aclEntries",
  949. "label": "ACL Configuration",
  950. "schema": {
  951. "type": "dict",
  952. "show_if": [
  953. [
  954. "aclEnable",
  955. "=",
  956. true
  957. ]
  958. ],
  959. "attrs": [
  960. {
  961. "variable": "path",
  962. "label": "Path",
  963. "description": "Path to perform ACL",
  964. "schema": {
  965. "type": "string",
  966. "hidden": true
  967. }
  968. },
  969. {
  970. "variable": "entries",
  971. "label": "ACL Entries",
  972. "description": "ACL Entries",
  973. "schema": {
  974. "type": "list",
  975. "items": [
  976. {
  977. "variable": "aclEntry",
  978. "label": "ACL Entry",
  979. "schema": {
  980. "type": "dict",
  981. "attrs": [
  982. {
  983. "variable": "id_type",
  984. "label": "ID Type",
  985. "schema": {
  986. "type": "string",
  987. "enum": [
  988. {
  989. "value": "USER",
  990. "description": "Entry is for a USER"
  991. },
  992. {
  993. "value": "GROUP",
  994. "description": "Entry is for a GROUP"
  995. }
  996. ],
  997. "default": "USER"
  998. }
  999. },
  1000. {
  1001. "variable": "id",
  1002. "label": "ID",
  1003. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1004. "schema": {
  1005. "type": "int",
  1006. "required": true,
  1007. "min": 0
  1008. }
  1009. },
  1010. {
  1011. "variable": "access",
  1012. "label": "Access",
  1013. "schema": {
  1014. "type": "string",
  1015. "enum": [
  1016. {
  1017. "value": "READ",
  1018. "description": "Read Access"
  1019. },
  1020. {
  1021. "value": "MODIFY",
  1022. "description": "Modify Access"
  1023. },
  1024. {
  1025. "value": "FULL_CONTROL",
  1026. "description": "FULL_CONTROL Access"
  1027. }
  1028. ]
  1029. }
  1030. }
  1031. ]
  1032. }
  1033. }
  1034. ]
  1035. }
  1036. }
  1037. ]
  1038. }
  1039. }
  1040. ]
  1041. }
  1042. },
  1043. {
  1044. "variable": "hostPathConfig",
  1045. "label": "Host Path Configuration",
  1046. "schema": {
  1047. "type": "dict",
  1048. "show_if": [
  1049. [
  1050. "type",
  1051. "=",
  1052. "hostPath"
  1053. ]
  1054. ],
  1055. "attrs": [
  1056. {
  1057. "variable": "aclEnable",
  1058. "label": "Enable ACL",
  1059. "description": "Enable ACL for the dataset.",
  1060. "schema": {
  1061. "type": "boolean",
  1062. "default": false
  1063. }
  1064. },
  1065. {
  1066. "variable": "acl",
  1067. "label": "ACL Configuration",
  1068. "schema": {
  1069. "type": "dict",
  1070. "show_if": [
  1071. [
  1072. "aclEnable",
  1073. "=",
  1074. true
  1075. ]
  1076. ],
  1077. "attrs": [
  1078. {
  1079. "variable": "path",
  1080. "label": "Host Path",
  1081. "description": "Host Path to perform ACL",
  1082. "schema": {
  1083. "type": "hostpath",
  1084. "required": true,
  1085. "empty": false
  1086. }
  1087. },
  1088. {
  1089. "variable": "entries",
  1090. "label": "ACL Entries",
  1091. "description": "ACL Entries",
  1092. "schema": {
  1093. "type": "list",
  1094. "items": [
  1095. {
  1096. "variable": "aclEntry",
  1097. "label": "ACL Entry",
  1098. "schema": {
  1099. "type": "dict",
  1100. "attrs": [
  1101. {
  1102. "variable": "id_type",
  1103. "label": "ID Type",
  1104. "schema": {
  1105. "type": "string",
  1106. "enum": [
  1107. {
  1108. "value": "USER",
  1109. "description": "Entry is for a USER"
  1110. },
  1111. {
  1112. "value": "GROUP",
  1113. "description": "Entry is for a GROUP"
  1114. }
  1115. ],
  1116. "default": "USER"
  1117. }
  1118. },
  1119. {
  1120. "variable": "id",
  1121. "label": "ID",
  1122. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1123. "schema": {
  1124. "type": "int",
  1125. "required": true,
  1126. "min": 0
  1127. }
  1128. },
  1129. {
  1130. "variable": "access",
  1131. "label": "Access",
  1132. "schema": {
  1133. "type": "string",
  1134. "enum": [
  1135. {
  1136. "value": "READ",
  1137. "description": "Read Access"
  1138. },
  1139. {
  1140. "value": "MODIFY",
  1141. "description": "Modify Access"
  1142. },
  1143. {
  1144. "value": "FULL_CONTROL",
  1145. "description": "FULL_CONTROL Access"
  1146. }
  1147. ]
  1148. }
  1149. }
  1150. ]
  1151. }
  1152. }
  1153. ]
  1154. }
  1155. },
  1156. {
  1157. "variable": "options",
  1158. "label": "ACL Options",
  1159. "schema": {
  1160. "type": "dict",
  1161. "attrs": [
  1162. {
  1163. "variable": "force",
  1164. "label": "Force Flag",
  1165. "description": "Enabling `Force` applies ACL even if the path has existing data",
  1166. "schema": {
  1167. "type": "boolean",
  1168. "default": false
  1169. }
  1170. }
  1171. ]
  1172. }
  1173. }
  1174. ],
  1175. "$ref": [
  1176. "normalize/acl"
  1177. ]
  1178. }
  1179. },
  1180. {
  1181. "variable": "hostPath",
  1182. "label": "Host Path",
  1183. "description": "The host path to use for storage.",
  1184. "schema": {
  1185. "type": "hostpath",
  1186. "show_if": [
  1187. [
  1188. "aclEnable",
  1189. "=",
  1190. false
  1191. ]
  1192. ],
  1193. "required": true
  1194. }
  1195. }
  1196. ]
  1197. }
  1198. }
  1199. ]
  1200. }
  1201. },
  1202. {
  1203. "variable": "mariadbData",
  1204. "label": "Piwigo MariaDB Data Storage",
  1205. "description": "The path to store Piwigo MariaDB Data.",
  1206. "schema": {
  1207. "type": "dict",
  1208. "attrs": [
  1209. {
  1210. "variable": "type",
  1211. "label": "Type",
  1212. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  1213. "schema": {
  1214. "type": "string",
  1215. "required": true,
  1216. "immutable": true,
  1217. "default": "ixVolume",
  1218. "enum": [
  1219. {
  1220. "value": "hostPath",
  1221. "description": "Host Path (Path that already exists on the system)"
  1222. },
  1223. {
  1224. "value": "ixVolume",
  1225. "description": "ixVolume (Dataset created automatically by the system)"
  1226. }
  1227. ]
  1228. }
  1229. },
  1230. {
  1231. "variable": "ixVolumeConfig",
  1232. "label": "ixVolume Configuration",
  1233. "description": "The configuration for the ixVolume dataset.",
  1234. "schema": {
  1235. "type": "dict",
  1236. "hidden": true,
  1237. "show_if": [
  1238. [
  1239. "type",
  1240. "=",
  1241. "ixVolume"
  1242. ]
  1243. ],
  1244. "$ref": [
  1245. "normalize/ixVolume"
  1246. ],
  1247. "attrs": [
  1248. {
  1249. "variable": "aclEnable",
  1250. "label": "Enable ACL",
  1251. "description": "Enable ACL for the dataset.",
  1252. "schema": {
  1253. "type": "boolean",
  1254. "hidden": true,
  1255. "default": false
  1256. }
  1257. },
  1258. {
  1259. "variable": "datasetName",
  1260. "label": "Dataset Name",
  1261. "description": "The name of the dataset to use for storage.",
  1262. "schema": {
  1263. "type": "string",
  1264. "required": true,
  1265. "immutable": true,
  1266. "hidden": true,
  1267. "default": "mariadbData"
  1268. }
  1269. },
  1270. {
  1271. "variable": "aclEntries",
  1272. "label": "ACL Configuration",
  1273. "schema": {
  1274. "type": "dict",
  1275. "show_if": [
  1276. [
  1277. "aclEnable",
  1278. "=",
  1279. true
  1280. ]
  1281. ],
  1282. "attrs": [
  1283. {
  1284. "variable": "path",
  1285. "label": "Path",
  1286. "description": "Path to perform ACL",
  1287. "schema": {
  1288. "type": "string",
  1289. "hidden": true
  1290. }
  1291. },
  1292. {
  1293. "variable": "entries",
  1294. "label": "ACL Entries",
  1295. "description": "ACL Entries",
  1296. "schema": {
  1297. "type": "list",
  1298. "items": [
  1299. {
  1300. "variable": "aclEntry",
  1301. "label": "ACL Entry",
  1302. "schema": {
  1303. "type": "dict",
  1304. "attrs": [
  1305. {
  1306. "variable": "id_type",
  1307. "label": "ID Type",
  1308. "schema": {
  1309. "type": "string",
  1310. "enum": [
  1311. {
  1312. "value": "USER",
  1313. "description": "Entry is for a USER"
  1314. },
  1315. {
  1316. "value": "GROUP",
  1317. "description": "Entry is for a GROUP"
  1318. }
  1319. ],
  1320. "default": "USER"
  1321. }
  1322. },
  1323. {
  1324. "variable": "id",
  1325. "label": "ID",
  1326. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1327. "schema": {
  1328. "type": "int",
  1329. "required": true,
  1330. "min": 0
  1331. }
  1332. },
  1333. {
  1334. "variable": "access",
  1335. "label": "Access",
  1336. "schema": {
  1337. "type": "string",
  1338. "enum": [
  1339. {
  1340. "value": "READ",
  1341. "description": "Read Access"
  1342. },
  1343. {
  1344. "value": "MODIFY",
  1345. "description": "Modify Access"
  1346. },
  1347. {
  1348. "value": "FULL_CONTROL",
  1349. "description": "FULL_CONTROL Access"
  1350. }
  1351. ]
  1352. }
  1353. }
  1354. ]
  1355. }
  1356. }
  1357. ]
  1358. }
  1359. }
  1360. ]
  1361. }
  1362. }
  1363. ]
  1364. }
  1365. },
  1366. {
  1367. "variable": "hostPathConfig",
  1368. "label": "Host Path Configuration",
  1369. "schema": {
  1370. "type": "dict",
  1371. "show_if": [
  1372. [
  1373. "type",
  1374. "=",
  1375. "hostPath"
  1376. ]
  1377. ],
  1378. "attrs": [
  1379. {
  1380. "variable": "aclEnable",
  1381. "label": "Enable ACL",
  1382. "description": "Enable ACL for the dataset.",
  1383. "schema": {
  1384. "type": "boolean",
  1385. "hidden": true,
  1386. "default": false
  1387. }
  1388. },
  1389. {
  1390. "variable": "acl",
  1391. "label": "ACL Configuration",
  1392. "schema": {
  1393. "type": "dict",
  1394. "show_if": [
  1395. [
  1396. "aclEnable",
  1397. "=",
  1398. true
  1399. ]
  1400. ],
  1401. "attrs": [
  1402. {
  1403. "variable": "path",
  1404. "label": "Host Path",
  1405. "description": "Host Path to perform ACL",
  1406. "schema": {
  1407. "type": "hostpath",
  1408. "required": true,
  1409. "empty": false
  1410. }
  1411. },
  1412. {
  1413. "variable": "entries",
  1414. "label": "ACL Entries",
  1415. "description": "ACL Entries",
  1416. "schema": {
  1417. "type": "list",
  1418. "items": [
  1419. {
  1420. "variable": "aclEntry",
  1421. "label": "ACL Entry",
  1422. "schema": {
  1423. "type": "dict",
  1424. "attrs": [
  1425. {
  1426. "variable": "id_type",
  1427. "label": "ID Type",
  1428. "schema": {
  1429. "type": "string",
  1430. "enum": [
  1431. {
  1432. "value": "USER",
  1433. "description": "Entry is for a USER"
  1434. },
  1435. {
  1436. "value": "GROUP",
  1437. "description": "Entry is for a GROUP"
  1438. }
  1439. ],
  1440. "default": "USER"
  1441. }
  1442. },
  1443. {
  1444. "variable": "id",
  1445. "label": "ID",
  1446. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1447. "schema": {
  1448. "type": "int",
  1449. "required": true,
  1450. "min": 0
  1451. }
  1452. },
  1453. {
  1454. "variable": "access",
  1455. "label": "Access",
  1456. "schema": {
  1457. "type": "string",
  1458. "enum": [
  1459. {
  1460. "value": "READ",
  1461. "description": "Read Access"
  1462. },
  1463. {
  1464. "value": "MODIFY",
  1465. "description": "Modify Access"
  1466. },
  1467. {
  1468. "value": "FULL_CONTROL",
  1469. "description": "FULL_CONTROL Access"
  1470. }
  1471. ]
  1472. }
  1473. }
  1474. ]
  1475. }
  1476. }
  1477. ]
  1478. }
  1479. },
  1480. {
  1481. "variable": "options",
  1482. "label": "ACL Options",
  1483. "schema": {
  1484. "type": "dict",
  1485. "attrs": [
  1486. {
  1487. "variable": "force",
  1488. "label": "Force Flag",
  1489. "description": "Enabling `Force` applies ACL even if the path has existing data",
  1490. "schema": {
  1491. "type": "boolean",
  1492. "default": false
  1493. }
  1494. }
  1495. ]
  1496. }
  1497. }
  1498. ],
  1499. "$ref": [
  1500. "normalize/acl"
  1501. ]
  1502. }
  1503. },
  1504. {
  1505. "variable": "hostPath",
  1506. "label": "Host Path",
  1507. "description": "The host path to use for storage.",
  1508. "schema": {
  1509. "type": "hostpath",
  1510. "show_if": [
  1511. [
  1512. "aclEnable",
  1513. "=",
  1514. false
  1515. ]
  1516. ],
  1517. "required": true
  1518. }
  1519. }
  1520. ]
  1521. }
  1522. }
  1523. ]
  1524. }
  1525. },
  1526. {
  1527. "variable": "mariadbBackup",
  1528. "label": "Piwigo MariaDB Backup Storage",
  1529. "description": "The path to store Piwigo MariaDB Backup.",
  1530. "schema": {
  1531. "type": "dict",
  1532. "attrs": [
  1533. {
  1534. "variable": "type",
  1535. "label": "Type",
  1536. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  1537. "schema": {
  1538. "type": "string",
  1539. "required": true,
  1540. "immutable": true,
  1541. "default": "ixVolume",
  1542. "enum": [
  1543. {
  1544. "value": "hostPath",
  1545. "description": "Host Path (Path that already exists on the system)"
  1546. },
  1547. {
  1548. "value": "ixVolume",
  1549. "description": "ixVolume (Dataset created automatically by the system)"
  1550. }
  1551. ]
  1552. }
  1553. },
  1554. {
  1555. "variable": "ixVolumeConfig",
  1556. "label": "ixVolume Configuration",
  1557. "description": "The configuration for the ixVolume dataset.",
  1558. "schema": {
  1559. "type": "dict",
  1560. "hidden": true,
  1561. "show_if": [
  1562. [
  1563. "type",
  1564. "=",
  1565. "ixVolume"
  1566. ]
  1567. ],
  1568. "$ref": [
  1569. "normalize/ixVolume"
  1570. ],
  1571. "attrs": [
  1572. {
  1573. "variable": "aclEnable",
  1574. "label": "Enable ACL",
  1575. "description": "Enable ACL for the dataset.",
  1576. "schema": {
  1577. "type": "boolean",
  1578. "hidden": true,
  1579. "default": false
  1580. }
  1581. },
  1582. {
  1583. "variable": "datasetName",
  1584. "label": "Dataset Name",
  1585. "description": "The name of the dataset to use for storage.",
  1586. "schema": {
  1587. "type": "string",
  1588. "required": true,
  1589. "immutable": true,
  1590. "hidden": true,
  1591. "default": "mariadbBackup"
  1592. }
  1593. },
  1594. {
  1595. "variable": "aclEntries",
  1596. "label": "ACL Configuration",
  1597. "schema": {
  1598. "type": "dict",
  1599. "show_if": [
  1600. [
  1601. "aclEnable",
  1602. "=",
  1603. true
  1604. ]
  1605. ],
  1606. "attrs": [
  1607. {
  1608. "variable": "path",
  1609. "label": "Path",
  1610. "description": "Path to perform ACL",
  1611. "schema": {
  1612. "type": "string",
  1613. "hidden": true
  1614. }
  1615. },
  1616. {
  1617. "variable": "entries",
  1618. "label": "ACL Entries",
  1619. "description": "ACL Entries",
  1620. "schema": {
  1621. "type": "list",
  1622. "items": [
  1623. {
  1624. "variable": "aclEntry",
  1625. "label": "ACL Entry",
  1626. "schema": {
  1627. "type": "dict",
  1628. "attrs": [
  1629. {
  1630. "variable": "id_type",
  1631. "label": "ID Type",
  1632. "schema": {
  1633. "type": "string",
  1634. "enum": [
  1635. {
  1636. "value": "USER",
  1637. "description": "Entry is for a USER"
  1638. },
  1639. {
  1640. "value": "GROUP",
  1641. "description": "Entry is for a GROUP"
  1642. }
  1643. ],
  1644. "default": "USER"
  1645. }
  1646. },
  1647. {
  1648. "variable": "id",
  1649. "label": "ID",
  1650. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1651. "schema": {
  1652. "type": "int",
  1653. "required": true,
  1654. "min": 0
  1655. }
  1656. },
  1657. {
  1658. "variable": "access",
  1659. "label": "Access",
  1660. "schema": {
  1661. "type": "string",
  1662. "enum": [
  1663. {
  1664. "value": "READ",
  1665. "description": "Read Access"
  1666. },
  1667. {
  1668. "value": "MODIFY",
  1669. "description": "Modify Access"
  1670. },
  1671. {
  1672. "value": "FULL_CONTROL",
  1673. "description": "FULL_CONTROL Access"
  1674. }
  1675. ]
  1676. }
  1677. }
  1678. ]
  1679. }
  1680. }
  1681. ]
  1682. }
  1683. }
  1684. ]
  1685. }
  1686. }
  1687. ]
  1688. }
  1689. },
  1690. {
  1691. "variable": "hostPathConfig",
  1692. "label": "Host Path Configuration",
  1693. "schema": {
  1694. "type": "dict",
  1695. "show_if": [
  1696. [
  1697. "type",
  1698. "=",
  1699. "hostPath"
  1700. ]
  1701. ],
  1702. "attrs": [
  1703. {
  1704. "variable": "aclEnable",
  1705. "label": "Enable ACL",
  1706. "description": "Enable ACL for the dataset.",
  1707. "schema": {
  1708. "type": "boolean",
  1709. "hidden": true,
  1710. "default": false
  1711. }
  1712. },
  1713. {
  1714. "variable": "acl",
  1715. "label": "ACL Configuration",
  1716. "schema": {
  1717. "type": "dict",
  1718. "show_if": [
  1719. [
  1720. "aclEnable",
  1721. "=",
  1722. true
  1723. ]
  1724. ],
  1725. "attrs": [
  1726. {
  1727. "variable": "path",
  1728. "label": "Host Path",
  1729. "description": "Host Path to perform ACL",
  1730. "schema": {
  1731. "type": "hostpath",
  1732. "required": true,
  1733. "empty": false
  1734. }
  1735. },
  1736. {
  1737. "variable": "entries",
  1738. "label": "ACL Entries",
  1739. "description": "ACL Entries",
  1740. "schema": {
  1741. "type": "list",
  1742. "items": [
  1743. {
  1744. "variable": "aclEntry",
  1745. "label": "ACL Entry",
  1746. "schema": {
  1747. "type": "dict",
  1748. "attrs": [
  1749. {
  1750. "variable": "id_type",
  1751. "label": "ID Type",
  1752. "schema": {
  1753. "type": "string",
  1754. "enum": [
  1755. {
  1756. "value": "USER",
  1757. "description": "Entry is for a USER"
  1758. },
  1759. {
  1760. "value": "GROUP",
  1761. "description": "Entry is for a GROUP"
  1762. }
  1763. ],
  1764. "default": "USER"
  1765. }
  1766. },
  1767. {
  1768. "variable": "id",
  1769. "label": "ID",
  1770. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1771. "schema": {
  1772. "type": "int",
  1773. "required": true,
  1774. "min": 0
  1775. }
  1776. },
  1777. {
  1778. "variable": "access",
  1779. "label": "Access",
  1780. "schema": {
  1781. "type": "string",
  1782. "enum": [
  1783. {
  1784. "value": "READ",
  1785. "description": "Read Access"
  1786. },
  1787. {
  1788. "value": "MODIFY",
  1789. "description": "Modify Access"
  1790. },
  1791. {
  1792. "value": "FULL_CONTROL",
  1793. "description": "FULL_CONTROL Access"
  1794. }
  1795. ]
  1796. }
  1797. }
  1798. ]
  1799. }
  1800. }
  1801. ]
  1802. }
  1803. },
  1804. {
  1805. "variable": "options",
  1806. "label": "ACL Options",
  1807. "schema": {
  1808. "type": "dict",
  1809. "attrs": [
  1810. {
  1811. "variable": "force",
  1812. "label": "Force Flag",
  1813. "description": "Enabling `Force` applies ACL even if the path has existing data",
  1814. "schema": {
  1815. "type": "boolean",
  1816. "default": false
  1817. }
  1818. }
  1819. ]
  1820. }
  1821. }
  1822. ],
  1823. "$ref": [
  1824. "normalize/acl"
  1825. ]
  1826. }
  1827. },
  1828. {
  1829. "variable": "hostPath",
  1830. "label": "Host Path",
  1831. "description": "The host path to use for storage.",
  1832. "schema": {
  1833. "type": "hostpath",
  1834. "show_if": [
  1835. [
  1836. "aclEnable",
  1837. "=",
  1838. false
  1839. ]
  1840. ],
  1841. "required": true
  1842. }
  1843. }
  1844. ]
  1845. }
  1846. }
  1847. ]
  1848. }
  1849. },
  1850. {
  1851. "variable": "additionalStorages",
  1852. "label": "Additional Storage",
  1853. "description": "Additional storage for Piwigo.",
  1854. "schema": {
  1855. "type": "list",
  1856. "default": [],
  1857. "items": [
  1858. {
  1859. "variable": "storageEntry",
  1860. "label": "Storage Entry",
  1861. "schema": {
  1862. "type": "dict",
  1863. "attrs": [
  1864. {
  1865. "variable": "type",
  1866. "label": "Type",
  1867. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n",
  1868. "schema": {
  1869. "type": "string",
  1870. "required": true,
  1871. "default": "ixVolume",
  1872. "immutable": true,
  1873. "enum": [
  1874. {
  1875. "value": "hostPath",
  1876. "description": "Host Path (Path that already exists on the system)"
  1877. },
  1878. {
  1879. "value": "ixVolume",
  1880. "description": "ixVolume (Dataset created automatically by the system)"
  1881. },
  1882. {
  1883. "value": "smb-pv-pvc",
  1884. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  1885. }
  1886. ]
  1887. }
  1888. },
  1889. {
  1890. "variable": "readOnly",
  1891. "label": "Read Only",
  1892. "description": "Mount the volume as read only.",
  1893. "schema": {
  1894. "type": "boolean",
  1895. "default": false
  1896. }
  1897. },
  1898. {
  1899. "variable": "mountPath",
  1900. "label": "Mount Path",
  1901. "description": "The path inside the container to mount the storage.",
  1902. "schema": {
  1903. "type": "path",
  1904. "required": true
  1905. }
  1906. },
  1907. {
  1908. "variable": "hostPathConfig",
  1909. "label": "Host Path Configuration",
  1910. "schema": {
  1911. "type": "dict",
  1912. "show_if": [
  1913. [
  1914. "type",
  1915. "=",
  1916. "hostPath"
  1917. ]
  1918. ],
  1919. "attrs": [
  1920. {
  1921. "variable": "aclEnable",
  1922. "label": "Enable ACL",
  1923. "description": "Enable ACL for the dataset.",
  1924. "schema": {
  1925. "type": "boolean",
  1926. "default": false
  1927. }
  1928. },
  1929. {
  1930. "variable": "acl",
  1931. "label": "ACL Configuration",
  1932. "schema": {
  1933. "type": "dict",
  1934. "show_if": [
  1935. [
  1936. "aclEnable",
  1937. "=",
  1938. true
  1939. ]
  1940. ],
  1941. "attrs": [
  1942. {
  1943. "variable": "path",
  1944. "label": "Host Path",
  1945. "description": "Host Path to perform ACL",
  1946. "schema": {
  1947. "type": "hostpath",
  1948. "required": true,
  1949. "empty": false
  1950. }
  1951. },
  1952. {
  1953. "variable": "entries",
  1954. "label": "ACL Entries",
  1955. "description": "ACL Entries",
  1956. "schema": {
  1957. "type": "list",
  1958. "items": [
  1959. {
  1960. "variable": "aclEntry",
  1961. "label": "ACL Entry",
  1962. "schema": {
  1963. "type": "dict",
  1964. "attrs": [
  1965. {
  1966. "variable": "id_type",
  1967. "label": "ID Type",
  1968. "schema": {
  1969. "type": "string",
  1970. "enum": [
  1971. {
  1972. "value": "USER",
  1973. "description": "Entry is for a USER"
  1974. },
  1975. {
  1976. "value": "GROUP",
  1977. "description": "Entry is for a GROUP"
  1978. }
  1979. ],
  1980. "default": "USER"
  1981. }
  1982. },
  1983. {
  1984. "variable": "id",
  1985. "label": "ID",
  1986. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1987. "schema": {
  1988. "type": "int",
  1989. "required": true,
  1990. "min": 0
  1991. }
  1992. },
  1993. {
  1994. "variable": "access",
  1995. "label": "Access",
  1996. "schema": {
  1997. "type": "string",
  1998. "enum": [
  1999. {
  2000. "value": "READ",
  2001. "description": "Read Access"
  2002. },
  2003. {
  2004. "value": "MODIFY",
  2005. "description": "Modify Access"
  2006. },
  2007. {
  2008. "value": "FULL_CONTROL",
  2009. "description": "FULL_CONTROL Access"
  2010. }
  2011. ]
  2012. }
  2013. }
  2014. ]
  2015. }
  2016. }
  2017. ]
  2018. }
  2019. },
  2020. {
  2021. "variable": "options",
  2022. "label": "ACL Options",
  2023. "schema": {
  2024. "type": "dict",
  2025. "attrs": [
  2026. {
  2027. "variable": "force",
  2028. "label": "Force Flag",
  2029. "description": "Enabling `Force` applies ACL even if the path has existing data",
  2030. "schema": {
  2031. "type": "boolean",
  2032. "default": false
  2033. }
  2034. }
  2035. ]
  2036. }
  2037. }
  2038. ],
  2039. "$ref": [
  2040. "normalize/acl"
  2041. ]
  2042. }
  2043. },
  2044. {
  2045. "variable": "hostPath",
  2046. "label": "Host Path",
  2047. "description": "The host path to use for storage.",
  2048. "schema": {
  2049. "type": "hostpath",
  2050. "show_if": [
  2051. [
  2052. "aclEnable",
  2053. "=",
  2054. false
  2055. ]
  2056. ],
  2057. "required": true
  2058. }
  2059. }
  2060. ]
  2061. }
  2062. },
  2063. {
  2064. "variable": "ixVolumeConfig",
  2065. "label": "ixVolume Configuration",
  2066. "description": "The configuration for the ixVolume dataset.",
  2067. "schema": {
  2068. "type": "dict",
  2069. "show_if": [
  2070. [
  2071. "type",
  2072. "=",
  2073. "ixVolume"
  2074. ]
  2075. ],
  2076. "$ref": [
  2077. "normalize/ixVolume"
  2078. ],
  2079. "attrs": [
  2080. {
  2081. "variable": "aclEnable",
  2082. "label": "Enable ACL",
  2083. "description": "Enable ACL for the dataset.",
  2084. "schema": {
  2085. "type": "boolean",
  2086. "default": false
  2087. }
  2088. },
  2089. {
  2090. "variable": "datasetName",
  2091. "label": "Dataset Name",
  2092. "description": "The name of the dataset to use for storage.",
  2093. "schema": {
  2094. "type": "string",
  2095. "required": true,
  2096. "immutable": true,
  2097. "default": "storage_entry"
  2098. }
  2099. },
  2100. {
  2101. "variable": "aclEntries",
  2102. "label": "ACL Configuration",
  2103. "schema": {
  2104. "type": "dict",
  2105. "show_if": [
  2106. [
  2107. "aclEnable",
  2108. "=",
  2109. true
  2110. ]
  2111. ],
  2112. "attrs": [
  2113. {
  2114. "variable": "path",
  2115. "label": "Path",
  2116. "description": "Path to perform ACL",
  2117. "schema": {
  2118. "type": "string",
  2119. "hidden": true
  2120. }
  2121. },
  2122. {
  2123. "variable": "entries",
  2124. "label": "ACL Entries",
  2125. "description": "ACL Entries",
  2126. "schema": {
  2127. "type": "list",
  2128. "items": [
  2129. {
  2130. "variable": "aclEntry",
  2131. "label": "ACL Entry",
  2132. "schema": {
  2133. "type": "dict",
  2134. "attrs": [
  2135. {
  2136. "variable": "id_type",
  2137. "label": "ID Type",
  2138. "schema": {
  2139. "type": "string",
  2140. "enum": [
  2141. {
  2142. "value": "USER",
  2143. "description": "Entry is for a USER"
  2144. },
  2145. {
  2146. "value": "GROUP",
  2147. "description": "Entry is for a GROUP"
  2148. }
  2149. ],
  2150. "default": "USER"
  2151. }
  2152. },
  2153. {
  2154. "variable": "id",
  2155. "label": "ID",
  2156. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  2157. "schema": {
  2158. "type": "int",
  2159. "required": true,
  2160. "min": 0
  2161. }
  2162. },
  2163. {
  2164. "variable": "access",
  2165. "label": "Access",
  2166. "schema": {
  2167. "type": "string",
  2168. "enum": [
  2169. {
  2170. "value": "READ",
  2171. "description": "Read Access"
  2172. },
  2173. {
  2174. "value": "MODIFY",
  2175. "description": "Modify Access"
  2176. },
  2177. {
  2178. "value": "FULL_CONTROL",
  2179. "description": "FULL_CONTROL Access"
  2180. }
  2181. ]
  2182. }
  2183. }
  2184. ]
  2185. }
  2186. }
  2187. ]
  2188. }
  2189. }
  2190. ]
  2191. }
  2192. }
  2193. ]
  2194. }
  2195. },
  2196. {
  2197. "variable": "smbConfig",
  2198. "label": "SMB Share Configuration",
  2199. "description": "The configuration for the SMB Share.",
  2200. "schema": {
  2201. "type": "dict",
  2202. "show_if": [
  2203. [
  2204. "type",
  2205. "=",
  2206. "smb-pv-pvc"
  2207. ]
  2208. ],
  2209. "attrs": [
  2210. {
  2211. "variable": "server",
  2212. "label": "Server",
  2213. "description": "The server for the SMB share.",
  2214. "schema": {
  2215. "type": "string",
  2216. "required": true
  2217. }
  2218. },
  2219. {
  2220. "variable": "share",
  2221. "label": "Share",
  2222. "description": "The share name for the SMB share.",
  2223. "schema": {
  2224. "type": "string",
  2225. "required": true
  2226. }
  2227. },
  2228. {
  2229. "variable": "domain",
  2230. "label": "Domain (Optional)",
  2231. "description": "The domain for the SMB share.",
  2232. "schema": {
  2233. "type": "string"
  2234. }
  2235. },
  2236. {
  2237. "variable": "username",
  2238. "label": "Username",
  2239. "description": "The username for the SMB share.",
  2240. "schema": {
  2241. "type": "string",
  2242. "required": true
  2243. }
  2244. },
  2245. {
  2246. "variable": "password",
  2247. "label": "Password",
  2248. "description": "The password for the SMB share.",
  2249. "schema": {
  2250. "type": "string",
  2251. "required": true,
  2252. "private": true
  2253. }
  2254. },
  2255. {
  2256. "variable": "size",
  2257. "label": "Size (in Gi)",
  2258. "description": "The size of the volume quota.",
  2259. "schema": {
  2260. "type": "int",
  2261. "required": true,
  2262. "min": 1,
  2263. "default": 1
  2264. }
  2265. }
  2266. ]
  2267. }
  2268. }
  2269. ]
  2270. }
  2271. }
  2272. ]
  2273. }
  2274. }
  2275. ]
  2276. }
  2277. },
  2278. {
  2279. "variable": "resources",
  2280. "label": "",
  2281. "group": "Resources Configuration",
  2282. "schema": {
  2283. "type": "dict",
  2284. "attrs": [
  2285. {
  2286. "variable": "limits",
  2287. "label": "Limits",
  2288. "schema": {
  2289. "type": "dict",
  2290. "attrs": [
  2291. {
  2292. "variable": "cpu",
  2293. "label": "CPU",
  2294. "description": "CPU limit for Piwigo.",
  2295. "schema": {
  2296. "type": "string",
  2297. "max_length": 6,
  2298. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  2299. "valid_chars_error": "Valid CPU limit formats are</br>\n- Plain Integer - eg. 1</br>\n- Float - eg. 0.5</br>\n- Milicpu - eg. 500m\n",
  2300. "default": "4000m",
  2301. "required": true
  2302. }
  2303. },
  2304. {
  2305. "variable": "memory",
  2306. "label": "Memory",
  2307. "description": "Memory limit for Piwigo.",
  2308. "schema": {
  2309. "type": "string",
  2310. "max_length": 12,
  2311. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  2312. "valid_chars_error": "Valid Memory limit formats are</br>\n- Suffixed with E/P/T/G/M/K - eg. 1G</br>\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>\n- Plain Integer in bytes - eg. 1024</br>\n- Exponent - eg. 134e6\n",
  2313. "default": "8Gi",
  2314. "required": true
  2315. }
  2316. }
  2317. ]
  2318. }
  2319. }
  2320. ]
  2321. }
  2322. }
  2323. ]
  2324. },
  2325. "app_readme": "<h1>Piwigo</h1>\n<p><a href=\"https://piwigo.org/\">Piwigo</a> is a photo gallery software for the web that comes with powerful features to\npublish and manage your collection of pictures.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>mariadb</code> directories.\nAfterwards <code>mariadb</code> will start as a <strong>non</strong>-root user (<code>999</code>).&gt;\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to\napply the correct permissions to the <code>mariadb</code> <strong>backups</strong> directory.\nContainer that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>mariadb</code> data directories.</p>\n</blockquote>",
  2326. "detailed_readme": "<h1>Piwigo</h1>\n<p><a href=\"https://piwigo.org/\">Piwigo</a> is a photo gallery software for the web that comes with powerful features to\npublish and manage your collection of pictures.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>mariadb</code> directories.\nAfterwards <code>mariadb</code> will start as a <strong>non</strong>-root user (<code>999</code>).&gt;\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to\napply the correct permissions to the <code>mariadb</code> <strong>backups</strong> directory.\nContainer that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>mariadb</code> data directories.</p>\n</blockquote>",
  2327. "changelog": null
  2328. }
  2329. }