app_versions.json 71 KB

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