app_versions.json 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141
  1. {
  2. "1.2.8": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/scrutiny/1.2.8",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "v0.8.1-omnibus_1.2.8",
  10. "version": "1.2.8",
  11. "app_metadata": {
  12. "annotations": {
  13. "min_scale_version": "24.10.2.2"
  14. },
  15. "app_version": "v0.8.1-omnibus",
  16. "capabilities": [
  17. {
  18. "description": "Scrutiny is able to write records to audit log",
  19. "name": "AUDIT_WRITE"
  20. },
  21. {
  22. "description": "Scrutiny is able to change file ownership arbitrarily",
  23. "name": "CHOWN"
  24. },
  25. {
  26. "description": "Scrutiny is able to bypass file permission checks",
  27. "name": "DAC_OVERRIDE"
  28. },
  29. {
  30. "description": "Scrutiny is able to bypass permission checks for file operations",
  31. "name": "FOWNER"
  32. },
  33. {
  34. "description": "Scrutiny is able to preserve set-user-ID and set-group-ID bits",
  35. "name": "FSETID"
  36. },
  37. {
  38. "description": "Scrutiny is able to send signals to any process",
  39. "name": "KILL"
  40. },
  41. {
  42. "description": "Scrutiny is able to create special files using mknod()",
  43. "name": "MKNOD"
  44. },
  45. {
  46. "description": "Scrutiny is able to bind to privileged ports (< 1024)",
  47. "name": "NET_BIND_SERVICE"
  48. },
  49. {
  50. "description": "Scrutiny is able to use raw and packet sockets",
  51. "name": "NET_RAW"
  52. },
  53. {
  54. "description": "Scrutiny is able to set file capabilities on other files",
  55. "name": "SETFCAP"
  56. },
  57. {
  58. "description": "Scrutiny is able to change group ID of processes",
  59. "name": "SETGID"
  60. },
  61. {
  62. "description": "Scrutiny is able to transfer capabilities between processes",
  63. "name": "SETPCAP"
  64. },
  65. {
  66. "description": "Scrutiny is able to change user ID of processes",
  67. "name": "SETUID"
  68. },
  69. {
  70. "description": "Scrutiny is able to use chroot() system call",
  71. "name": "SYS_CHROOT"
  72. }
  73. ],
  74. "categories": [
  75. "monitoring"
  76. ],
  77. "changelog_url": "https://github.com/AnalogJ/scrutiny/releases",
  78. "date_added": "2024-11-11",
  79. "description": "Scrutiny is tool for Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds",
  80. "home": "https://github.com/AnalogJ/scrutiny",
  81. "host_mounts": [
  82. {
  83. "description": "Scrutiny needs to access the udev device information. (Read Only)",
  84. "host_path": "/run/udev"
  85. },
  86. {
  87. "description": "Scrutiny needs to access the host device information. (Read Only)",
  88. "host_path": "/dev"
  89. }
  90. ],
  91. "icon": "https://media.sys.truenas.net/apps/scrutiny/icons/icon.svg",
  92. "keywords": [
  93. "disk",
  94. "monitoring"
  95. ],
  96. "lib_version": "2.1.49",
  97. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  98. "maintainers": [
  99. {
  100. "email": "dev@ixsystems.com",
  101. "name": "truenas",
  102. "url": "https://www.truenas.com/"
  103. }
  104. ],
  105. "name": "scrutiny",
  106. "run_as_context": [
  107. {
  108. "description": "Scrutiny runs as root user.",
  109. "gid": 0,
  110. "group_name": "root",
  111. "uid": 0,
  112. "user_name": "root"
  113. }
  114. ],
  115. "screenshots": [
  116. "https://media.sys.truenas.net/apps/scrutiny/screenshots/screenshot1.png"
  117. ],
  118. "sources": [
  119. "https://github.com/AnalogJ/scrutiny"
  120. ],
  121. "title": "Scrutiny",
  122. "train": "community",
  123. "version": "1.2.8"
  124. },
  125. "schema": {
  126. "groups": [
  127. {
  128. "name": "Scrutiny Configuration",
  129. "description": "Configure Scrutiny"
  130. },
  131. {
  132. "name": "Network Configuration",
  133. "description": "Configure Network for Scrutiny"
  134. },
  135. {
  136. "name": "Storage Configuration",
  137. "description": "Configure Storage for Scrutiny"
  138. },
  139. {
  140. "name": "Labels Configuration",
  141. "description": "Configure Labels for Scrutiny"
  142. },
  143. {
  144. "name": "Resources Configuration",
  145. "description": "Configure Resources for Scrutiny"
  146. }
  147. ],
  148. "questions": [
  149. {
  150. "variable": "scrutiny",
  151. "label": "",
  152. "group": "Scrutiny Configuration",
  153. "schema": {
  154. "type": "dict",
  155. "attrs": [
  156. {
  157. "variable": "additional_envs",
  158. "label": "Additional Environment Variables",
  159. "schema": {
  160. "type": "list",
  161. "default": [],
  162. "items": [
  163. {
  164. "variable": "env",
  165. "label": "Environment Variable",
  166. "schema": {
  167. "type": "dict",
  168. "attrs": [
  169. {
  170. "variable": "name",
  171. "label": "Name",
  172. "schema": {
  173. "type": "string",
  174. "required": true
  175. }
  176. },
  177. {
  178. "variable": "value",
  179. "label": "Value",
  180. "schema": {
  181. "type": "string"
  182. }
  183. }
  184. ]
  185. }
  186. }
  187. ]
  188. }
  189. }
  190. ]
  191. }
  192. },
  193. {
  194. "variable": "network",
  195. "label": "",
  196. "group": "Network Configuration",
  197. "schema": {
  198. "type": "dict",
  199. "attrs": [
  200. {
  201. "variable": "web_port",
  202. "label": "WebUI Port",
  203. "description": "The port for Scrutiny WebUI",
  204. "schema": {
  205. "type": "dict",
  206. "show_if": [
  207. [
  208. "host_network",
  209. "=",
  210. false
  211. ]
  212. ],
  213. "attrs": [
  214. {
  215. "variable": "bind_mode",
  216. "label": "Port Bind Mode",
  217. "description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
  218. "schema": {
  219. "type": "string",
  220. "default": "published",
  221. "enum": [
  222. {
  223. "value": "published",
  224. "description": "Publish port on the host for external access"
  225. },
  226. {
  227. "value": "exposed",
  228. "description": "Expose port for inter-container communication"
  229. },
  230. {
  231. "value": "",
  232. "description": "None"
  233. }
  234. ]
  235. }
  236. },
  237. {
  238. "variable": "port_number",
  239. "label": "Port Number",
  240. "schema": {
  241. "type": "int",
  242. "show_if": [
  243. [
  244. "bind_mode",
  245. "=",
  246. "published"
  247. ]
  248. ],
  249. "default": 31054,
  250. "min": 1,
  251. "max": 65535,
  252. "required": true
  253. }
  254. },
  255. {
  256. "variable": "host_ips",
  257. "label": "Host IPs",
  258. "description": "IPs on the host to bind this port",
  259. "schema": {
  260. "type": "list",
  261. "show_if": [
  262. [
  263. "bind_mode",
  264. "=",
  265. "published"
  266. ]
  267. ],
  268. "default": [],
  269. "items": [
  270. {
  271. "variable": "host_ip",
  272. "label": "Host IP",
  273. "schema": {
  274. "type": "string",
  275. "required": true,
  276. "$ref": [
  277. "definitions/node_bind_ip"
  278. ]
  279. }
  280. }
  281. ]
  282. }
  283. }
  284. ]
  285. }
  286. },
  287. {
  288. "variable": "influxdb_port",
  289. "label": "InfluxDB Port",
  290. "description": "The port for InfluxDB",
  291. "schema": {
  292. "type": "dict",
  293. "show_if": [
  294. [
  295. "host_network",
  296. "=",
  297. false
  298. ]
  299. ],
  300. "attrs": [
  301. {
  302. "variable": "bind_mode",
  303. "label": "Port Bind Mode",
  304. "description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
  305. "schema": {
  306. "type": "string",
  307. "default": "published",
  308. "enum": [
  309. {
  310. "value": "published",
  311. "description": "Publish port on the host for external access"
  312. },
  313. {
  314. "value": "exposed",
  315. "description": "Expose port for inter-container communication"
  316. },
  317. {
  318. "value": "",
  319. "description": "None"
  320. }
  321. ]
  322. }
  323. },
  324. {
  325. "variable": "port_number",
  326. "label": "Port Number",
  327. "schema": {
  328. "type": "int",
  329. "show_if": [
  330. [
  331. "bind_mode",
  332. "=",
  333. "published"
  334. ]
  335. ],
  336. "default": 31055,
  337. "min": 1,
  338. "max": 65535,
  339. "required": true
  340. }
  341. },
  342. {
  343. "variable": "host_ips",
  344. "label": "Host IPs",
  345. "description": "IPs on the host to bind this port",
  346. "schema": {
  347. "type": "list",
  348. "show_if": [
  349. [
  350. "bind_mode",
  351. "=",
  352. "published"
  353. ]
  354. ],
  355. "default": [],
  356. "items": [
  357. {
  358. "variable": "host_ip",
  359. "label": "Host IP",
  360. "schema": {
  361. "type": "string",
  362. "required": true,
  363. "$ref": [
  364. "definitions/node_bind_ip"
  365. ]
  366. }
  367. }
  368. ]
  369. }
  370. }
  371. ]
  372. }
  373. },
  374. {
  375. "variable": "host_network",
  376. "label": "Host Network",
  377. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  378. "schema": {
  379. "type": "boolean",
  380. "default": false
  381. }
  382. }
  383. ]
  384. }
  385. },
  386. {
  387. "variable": "storage",
  388. "label": "",
  389. "group": "Storage Configuration",
  390. "schema": {
  391. "type": "dict",
  392. "attrs": [
  393. {
  394. "variable": "config",
  395. "label": "Scrutiny Config Storage",
  396. "description": "The path to store Scrutiny Config.",
  397. "schema": {
  398. "type": "dict",
  399. "attrs": [
  400. {
  401. "variable": "type",
  402. "label": "Type",
  403. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  404. "schema": {
  405. "type": "string",
  406. "required": true,
  407. "default": "ix_volume",
  408. "enum": [
  409. {
  410. "value": "host_path",
  411. "description": "Host Path (Path that already exists on the system)"
  412. },
  413. {
  414. "value": "ix_volume",
  415. "description": "ixVolume (Dataset created automatically by the system)"
  416. }
  417. ]
  418. }
  419. },
  420. {
  421. "variable": "ix_volume_config",
  422. "label": "ixVolume Configuration",
  423. "description": "The configuration for the ixVolume dataset.",
  424. "schema": {
  425. "type": "dict",
  426. "show_if": [
  427. [
  428. "type",
  429. "=",
  430. "ix_volume"
  431. ]
  432. ],
  433. "$ref": [
  434. "normalize/ix_volume"
  435. ],
  436. "attrs": [
  437. {
  438. "variable": "acl_enable",
  439. "label": "Enable ACL",
  440. "description": "Enable ACL for the storage.",
  441. "schema": {
  442. "type": "boolean",
  443. "default": false
  444. }
  445. },
  446. {
  447. "variable": "dataset_name",
  448. "label": "Dataset Name",
  449. "description": "The name of the dataset to use for storage.",
  450. "schema": {
  451. "type": "string",
  452. "required": true,
  453. "hidden": true,
  454. "default": "config"
  455. }
  456. },
  457. {
  458. "variable": "acl_entries",
  459. "label": "ACL Configuration",
  460. "schema": {
  461. "type": "dict",
  462. "show_if": [
  463. [
  464. "acl_enable",
  465. "=",
  466. true
  467. ]
  468. ],
  469. "attrs": []
  470. }
  471. }
  472. ]
  473. }
  474. },
  475. {
  476. "variable": "host_path_config",
  477. "label": "Host Path Configuration",
  478. "schema": {
  479. "type": "dict",
  480. "show_if": [
  481. [
  482. "type",
  483. "=",
  484. "host_path"
  485. ]
  486. ],
  487. "attrs": [
  488. {
  489. "variable": "acl_enable",
  490. "label": "Enable ACL",
  491. "description": "Enable ACL for the storage.",
  492. "schema": {
  493. "type": "boolean",
  494. "default": false
  495. }
  496. },
  497. {
  498. "variable": "acl",
  499. "label": "ACL Configuration",
  500. "schema": {
  501. "type": "dict",
  502. "show_if": [
  503. [
  504. "acl_enable",
  505. "=",
  506. true
  507. ]
  508. ],
  509. "attrs": [],
  510. "$ref": [
  511. "normalize/acl"
  512. ]
  513. }
  514. },
  515. {
  516. "variable": "path",
  517. "label": "Host Path",
  518. "description": "The host path to use for storage.",
  519. "schema": {
  520. "type": "hostpath",
  521. "show_if": [
  522. [
  523. "acl_enable",
  524. "=",
  525. false
  526. ]
  527. ],
  528. "required": true
  529. }
  530. }
  531. ]
  532. }
  533. }
  534. ]
  535. }
  536. },
  537. {
  538. "variable": "influxdb",
  539. "label": "Scrutiny InfluxDB Storage",
  540. "description": "The path to store Scrutiny InfluxDB.",
  541. "schema": {
  542. "type": "dict",
  543. "attrs": [
  544. {
  545. "variable": "type",
  546. "label": "Type",
  547. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  548. "schema": {
  549. "type": "string",
  550. "required": true,
  551. "default": "ix_volume",
  552. "enum": [
  553. {
  554. "value": "host_path",
  555. "description": "Host Path (Path that already exists on the system)"
  556. },
  557. {
  558. "value": "ix_volume",
  559. "description": "ixVolume (Dataset created automatically by the system)"
  560. }
  561. ]
  562. }
  563. },
  564. {
  565. "variable": "ix_volume_config",
  566. "label": "ixVolume Configuration",
  567. "description": "The configuration for the ixVolume dataset.",
  568. "schema": {
  569. "type": "dict",
  570. "show_if": [
  571. [
  572. "type",
  573. "=",
  574. "ix_volume"
  575. ]
  576. ],
  577. "$ref": [
  578. "normalize/ix_volume"
  579. ],
  580. "attrs": [
  581. {
  582. "variable": "acl_enable",
  583. "label": "Enable ACL",
  584. "description": "Enable ACL for the storage.",
  585. "schema": {
  586. "type": "boolean",
  587. "default": false
  588. }
  589. },
  590. {
  591. "variable": "dataset_name",
  592. "label": "Dataset Name",
  593. "description": "The name of the dataset to use for storage.",
  594. "schema": {
  595. "type": "string",
  596. "required": true,
  597. "hidden": true,
  598. "default": "influxdb"
  599. }
  600. },
  601. {
  602. "variable": "acl_entries",
  603. "label": "ACL Configuration",
  604. "schema": {
  605. "type": "dict",
  606. "show_if": [
  607. [
  608. "acl_enable",
  609. "=",
  610. true
  611. ]
  612. ],
  613. "attrs": []
  614. }
  615. }
  616. ]
  617. }
  618. },
  619. {
  620. "variable": "host_path_config",
  621. "label": "Host Path Configuration",
  622. "schema": {
  623. "type": "dict",
  624. "show_if": [
  625. [
  626. "type",
  627. "=",
  628. "host_path"
  629. ]
  630. ],
  631. "attrs": [
  632. {
  633. "variable": "acl_enable",
  634. "label": "Enable ACL",
  635. "description": "Enable ACL for the storage.",
  636. "schema": {
  637. "type": "boolean",
  638. "default": false
  639. }
  640. },
  641. {
  642. "variable": "acl",
  643. "label": "ACL Configuration",
  644. "schema": {
  645. "type": "dict",
  646. "show_if": [
  647. [
  648. "acl_enable",
  649. "=",
  650. true
  651. ]
  652. ],
  653. "attrs": [],
  654. "$ref": [
  655. "normalize/acl"
  656. ]
  657. }
  658. },
  659. {
  660. "variable": "path",
  661. "label": "Host Path",
  662. "description": "The host path to use for storage.",
  663. "schema": {
  664. "type": "hostpath",
  665. "show_if": [
  666. [
  667. "acl_enable",
  668. "=",
  669. false
  670. ]
  671. ],
  672. "required": true
  673. }
  674. }
  675. ]
  676. }
  677. }
  678. ]
  679. }
  680. },
  681. {
  682. "variable": "additional_storage",
  683. "label": "Additional Storage",
  684. "schema": {
  685. "type": "list",
  686. "default": [],
  687. "items": [
  688. {
  689. "variable": "storageEntry",
  690. "label": "Storage Entry",
  691. "schema": {
  692. "type": "dict",
  693. "attrs": [
  694. {
  695. "variable": "type",
  696. "label": "Type",
  697. "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 as a volume.\n",
  698. "schema": {
  699. "type": "string",
  700. "required": true,
  701. "default": "ix_volume",
  702. "enum": [
  703. {
  704. "value": "host_path",
  705. "description": "Host Path (Path that already exists on the system)"
  706. },
  707. {
  708. "value": "ix_volume",
  709. "description": "ixVolume (Dataset created automatically by the system)"
  710. },
  711. {
  712. "value": "cifs",
  713. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  714. }
  715. ]
  716. }
  717. },
  718. {
  719. "variable": "read_only",
  720. "label": "Read Only",
  721. "description": "Mount the volume as read only.",
  722. "schema": {
  723. "type": "boolean",
  724. "default": false
  725. }
  726. },
  727. {
  728. "variable": "mount_path",
  729. "label": "Mount Path",
  730. "description": "The path inside the container to mount the storage.",
  731. "schema": {
  732. "type": "path",
  733. "required": true
  734. }
  735. },
  736. {
  737. "variable": "host_path_config",
  738. "label": "Host Path Configuration",
  739. "schema": {
  740. "type": "dict",
  741. "show_if": [
  742. [
  743. "type",
  744. "=",
  745. "host_path"
  746. ]
  747. ],
  748. "attrs": [
  749. {
  750. "variable": "acl_enable",
  751. "label": "Enable ACL",
  752. "description": "Enable ACL for the storage.",
  753. "schema": {
  754. "type": "boolean",
  755. "default": false
  756. }
  757. },
  758. {
  759. "variable": "acl",
  760. "label": "ACL Configuration",
  761. "schema": {
  762. "type": "dict",
  763. "show_if": [
  764. [
  765. "acl_enable",
  766. "=",
  767. true
  768. ]
  769. ],
  770. "attrs": [],
  771. "$ref": [
  772. "normalize/acl"
  773. ]
  774. }
  775. },
  776. {
  777. "variable": "path",
  778. "label": "Host Path",
  779. "description": "The host path to use for storage.",
  780. "schema": {
  781. "type": "hostpath",
  782. "show_if": [
  783. [
  784. "acl_enable",
  785. "=",
  786. false
  787. ]
  788. ],
  789. "required": true
  790. }
  791. }
  792. ]
  793. }
  794. },
  795. {
  796. "variable": "ix_volume_config",
  797. "label": "ixVolume Configuration",
  798. "description": "The configuration for the ixVolume dataset.",
  799. "schema": {
  800. "type": "dict",
  801. "show_if": [
  802. [
  803. "type",
  804. "=",
  805. "ix_volume"
  806. ]
  807. ],
  808. "$ref": [
  809. "normalize/ix_volume"
  810. ],
  811. "attrs": [
  812. {
  813. "variable": "acl_enable",
  814. "label": "Enable ACL",
  815. "description": "Enable ACL for the storage.",
  816. "schema": {
  817. "type": "boolean",
  818. "default": false
  819. }
  820. },
  821. {
  822. "variable": "dataset_name",
  823. "label": "Dataset Name",
  824. "description": "The name of the dataset to use for storage.",
  825. "schema": {
  826. "type": "string",
  827. "required": true,
  828. "default": "storage_entry"
  829. }
  830. },
  831. {
  832. "variable": "acl_entries",
  833. "label": "ACL Configuration",
  834. "schema": {
  835. "type": "dict",
  836. "show_if": [
  837. [
  838. "acl_enable",
  839. "=",
  840. true
  841. ]
  842. ],
  843. "attrs": [],
  844. "$ref": [
  845. "normalize/acl"
  846. ]
  847. }
  848. }
  849. ]
  850. }
  851. },
  852. {
  853. "variable": "cifs_config",
  854. "label": "SMB Configuration",
  855. "description": "The configuration for the SMB dataset.",
  856. "schema": {
  857. "type": "dict",
  858. "show_if": [
  859. [
  860. "type",
  861. "=",
  862. "cifs"
  863. ]
  864. ],
  865. "attrs": [
  866. {
  867. "variable": "server",
  868. "label": "Server",
  869. "description": "The server to mount the SMB share.",
  870. "schema": {
  871. "type": "string",
  872. "required": true
  873. }
  874. },
  875. {
  876. "variable": "path",
  877. "label": "Path",
  878. "description": "The path to mount the SMB share.",
  879. "schema": {
  880. "type": "string",
  881. "required": true
  882. }
  883. },
  884. {
  885. "variable": "username",
  886. "label": "Username",
  887. "description": "The username to use for the SMB share.",
  888. "schema": {
  889. "type": "string",
  890. "required": true
  891. }
  892. },
  893. {
  894. "variable": "password",
  895. "label": "Password",
  896. "description": "The password to use for the SMB share.",
  897. "schema": {
  898. "type": "string",
  899. "required": true,
  900. "private": true
  901. }
  902. },
  903. {
  904. "variable": "domain",
  905. "label": "Domain",
  906. "description": "The domain to use for the SMB share.",
  907. "schema": {
  908. "type": "string"
  909. }
  910. }
  911. ]
  912. }
  913. }
  914. ]
  915. }
  916. }
  917. ]
  918. }
  919. }
  920. ]
  921. }
  922. },
  923. {
  924. "variable": "labels",
  925. "label": "",
  926. "group": "Labels Configuration",
  927. "schema": {
  928. "type": "list",
  929. "default": [],
  930. "items": [
  931. {
  932. "variable": "label",
  933. "label": "Label",
  934. "schema": {
  935. "type": "dict",
  936. "attrs": [
  937. {
  938. "variable": "key",
  939. "label": "Key",
  940. "schema": {
  941. "type": "string",
  942. "required": true
  943. }
  944. },
  945. {
  946. "variable": "value",
  947. "label": "Value",
  948. "schema": {
  949. "type": "string",
  950. "required": true
  951. }
  952. },
  953. {
  954. "variable": "containers",
  955. "label": "Containers",
  956. "description": "Containers where the label should be applied",
  957. "schema": {
  958. "type": "list",
  959. "items": [
  960. {
  961. "variable": "container",
  962. "label": "Container",
  963. "schema": {
  964. "type": "string",
  965. "required": true,
  966. "enum": [
  967. {
  968. "value": "scrutiny",
  969. "description": "scrutiny"
  970. }
  971. ]
  972. }
  973. }
  974. ]
  975. }
  976. }
  977. ]
  978. }
  979. }
  980. ]
  981. }
  982. },
  983. {
  984. "variable": "resources",
  985. "label": "",
  986. "group": "Resources Configuration",
  987. "schema": {
  988. "type": "dict",
  989. "attrs": [
  990. {
  991. "variable": "limits",
  992. "label": "Limits",
  993. "schema": {
  994. "type": "dict",
  995. "attrs": [
  996. {
  997. "variable": "cpus",
  998. "label": "CPUs",
  999. "description": "CPUs limit for Scrutiny.",
  1000. "schema": {
  1001. "type": "int",
  1002. "default": 2,
  1003. "required": true
  1004. }
  1005. },
  1006. {
  1007. "variable": "memory",
  1008. "label": "Memory (in MB)",
  1009. "description": "Memory limit for Scrutiny.",
  1010. "schema": {
  1011. "type": "int",
  1012. "default": 4096,
  1013. "required": true
  1014. }
  1015. }
  1016. ]
  1017. }
  1018. }
  1019. ]
  1020. }
  1021. }
  1022. ]
  1023. },
  1024. "readme": "<h1>Scrutiny</h1> <p><a href=\"https://github.com/AnalogJ/scrutiny\">Scrutiny</a> - Hard Drive S.M.A.R.T Monitoring, Historical Trends &amp; Real World Failure Thresholds</p> <p>Scrutiny is tool for Hard Drive S.M.A.R.T Monitoring, Historical Trends &amp; Real World Failure Thresholds</p>",
  1025. "changelog": null,
  1026. "chart_metadata": {
  1027. "annotations": {
  1028. "min_scale_version": "24.10.2.2"
  1029. },
  1030. "app_version": "v0.8.1-omnibus",
  1031. "capabilities": [
  1032. {
  1033. "description": "Scrutiny is able to write records to audit log",
  1034. "name": "AUDIT_WRITE"
  1035. },
  1036. {
  1037. "description": "Scrutiny is able to change file ownership arbitrarily",
  1038. "name": "CHOWN"
  1039. },
  1040. {
  1041. "description": "Scrutiny is able to bypass file permission checks",
  1042. "name": "DAC_OVERRIDE"
  1043. },
  1044. {
  1045. "description": "Scrutiny is able to bypass permission checks for file operations",
  1046. "name": "FOWNER"
  1047. },
  1048. {
  1049. "description": "Scrutiny is able to preserve set-user-ID and set-group-ID bits",
  1050. "name": "FSETID"
  1051. },
  1052. {
  1053. "description": "Scrutiny is able to send signals to any process",
  1054. "name": "KILL"
  1055. },
  1056. {
  1057. "description": "Scrutiny is able to create special files using mknod()",
  1058. "name": "MKNOD"
  1059. },
  1060. {
  1061. "description": "Scrutiny is able to bind to privileged ports (< 1024)",
  1062. "name": "NET_BIND_SERVICE"
  1063. },
  1064. {
  1065. "description": "Scrutiny is able to use raw and packet sockets",
  1066. "name": "NET_RAW"
  1067. },
  1068. {
  1069. "description": "Scrutiny is able to set file capabilities on other files",
  1070. "name": "SETFCAP"
  1071. },
  1072. {
  1073. "description": "Scrutiny is able to change group ID of processes",
  1074. "name": "SETGID"
  1075. },
  1076. {
  1077. "description": "Scrutiny is able to transfer capabilities between processes",
  1078. "name": "SETPCAP"
  1079. },
  1080. {
  1081. "description": "Scrutiny is able to change user ID of processes",
  1082. "name": "SETUID"
  1083. },
  1084. {
  1085. "description": "Scrutiny is able to use chroot() system call",
  1086. "name": "SYS_CHROOT"
  1087. }
  1088. ],
  1089. "categories": [
  1090. "monitoring"
  1091. ],
  1092. "changelog_url": "https://github.com/AnalogJ/scrutiny/releases",
  1093. "date_added": "2024-11-11",
  1094. "description": "Scrutiny is tool for Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds",
  1095. "home": "https://github.com/AnalogJ/scrutiny",
  1096. "host_mounts": [
  1097. {
  1098. "description": "Scrutiny needs to access the udev device information. (Read Only)",
  1099. "host_path": "/run/udev"
  1100. },
  1101. {
  1102. "description": "Scrutiny needs to access the host device information. (Read Only)",
  1103. "host_path": "/dev"
  1104. }
  1105. ],
  1106. "icon": "https://media.sys.truenas.net/apps/scrutiny/icons/icon.svg",
  1107. "keywords": [
  1108. "disk",
  1109. "monitoring"
  1110. ],
  1111. "lib_version": "2.1.49",
  1112. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  1113. "maintainers": [
  1114. {
  1115. "email": "dev@ixsystems.com",
  1116. "name": "truenas",
  1117. "url": "https://www.truenas.com/"
  1118. }
  1119. ],
  1120. "name": "scrutiny",
  1121. "run_as_context": [
  1122. {
  1123. "description": "Scrutiny runs as root user.",
  1124. "gid": 0,
  1125. "group_name": "root",
  1126. "uid": 0,
  1127. "user_name": "root"
  1128. }
  1129. ],
  1130. "screenshots": [
  1131. "https://media.sys.truenas.net/apps/scrutiny/screenshots/screenshot1.png"
  1132. ],
  1133. "sources": [
  1134. "https://github.com/AnalogJ/scrutiny"
  1135. ],
  1136. "title": "Scrutiny",
  1137. "train": "community",
  1138. "version": "1.2.8"
  1139. }
  1140. }
  1141. }