app_versions.json 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  1. {
  2. "1.0.9": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/versitygw/1.0.9",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "v1.0.17_1.0.9",
  10. "version": "1.0.9",
  11. "app_metadata": {
  12. "app_version": "v1.0.17",
  13. "capabilities": [],
  14. "categories": [
  15. "storage"
  16. ],
  17. "changelog_url": "https://github.com/versity/versitygw/releases",
  18. "date_added": "2025-05-07",
  19. "description": "The Versity Gateway serves as a bridge between file based, POSIX, storage systems and applications that rely on S3 object interfaces. It enables applications to interact with file storage using familiar S3 operations like put and get, allowing for easy integration and compatibility.",
  20. "home": "https://github.com/versity/versitygw",
  21. "host_mounts": [],
  22. "icon": "https://media.sys.truenas.net/apps/versitygw/icons/icon.svg",
  23. "keywords": [
  24. "storage",
  25. "object-storage",
  26. "S3",
  27. "versity"
  28. ],
  29. "lib_version": "2.1.49",
  30. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  31. "maintainers": [
  32. {
  33. "email": "dev@ixsystems.com",
  34. "name": "truenas",
  35. "url": "https://www.truenas.com/"
  36. }
  37. ],
  38. "name": "versitygw",
  39. "run_as_context": [
  40. {
  41. "description": "Versity Gateway runs as any non-root user.",
  42. "gid": 568,
  43. "group_name": "versity",
  44. "uid": 568,
  45. "user_name": "versity"
  46. }
  47. ],
  48. "screenshots": [],
  49. "sources": [
  50. "https://github.com/versity/versitygw"
  51. ],
  52. "title": "Versity Gateway",
  53. "train": "community",
  54. "version": "1.0.9"
  55. },
  56. "schema": {
  57. "groups": [
  58. {
  59. "name": "Versity Gateway Configuration",
  60. "description": "Configure Versity Gateway"
  61. },
  62. {
  63. "name": "User and Group Configuration",
  64. "description": "Configure User and Group for Versity Gateway"
  65. },
  66. {
  67. "name": "Network Configuration",
  68. "description": "Configure Network for Versity Gateway"
  69. },
  70. {
  71. "name": "Storage Configuration",
  72. "description": "Configure Storage for Versity Gateway"
  73. },
  74. {
  75. "name": "Labels Configuration",
  76. "description": "Configure Labels for Versity Gateway"
  77. },
  78. {
  79. "name": "Resources Configuration",
  80. "description": "Configure Resources for Versity Gateway"
  81. }
  82. ],
  83. "questions": [
  84. {
  85. "variable": "TZ",
  86. "group": "Versity Gateway Configuration",
  87. "label": "Timezone",
  88. "schema": {
  89. "type": "string",
  90. "default": "Etc/UTC",
  91. "required": true,
  92. "$ref": [
  93. "definitions/timezone"
  94. ]
  95. }
  96. },
  97. {
  98. "variable": "versity",
  99. "label": "",
  100. "group": "Versity Gateway Configuration",
  101. "schema": {
  102. "type": "dict",
  103. "attrs": [
  104. {
  105. "variable": "root_user_access_key",
  106. "label": "Root User Access Key",
  107. "description": "The access key for the root account.",
  108. "schema": {
  109. "type": "string",
  110. "required": true,
  111. "private": true
  112. }
  113. },
  114. {
  115. "variable": "root_user_secret_access_key",
  116. "label": "Root User Secret Access Key",
  117. "description": "The secret access key for the root account.",
  118. "schema": {
  119. "type": "string",
  120. "required": true,
  121. "private": true
  122. }
  123. },
  124. {
  125. "variable": "additional_envs",
  126. "label": "Additional Environment Variables",
  127. "schema": {
  128. "type": "list",
  129. "default": [],
  130. "items": [
  131. {
  132. "variable": "env",
  133. "label": "Environment Variable",
  134. "schema": {
  135. "type": "dict",
  136. "attrs": [
  137. {
  138. "variable": "name",
  139. "label": "Name",
  140. "schema": {
  141. "type": "string",
  142. "required": true
  143. }
  144. },
  145. {
  146. "variable": "value",
  147. "label": "Value",
  148. "schema": {
  149. "type": "string"
  150. }
  151. }
  152. ]
  153. }
  154. }
  155. ]
  156. }
  157. },
  158. {
  159. "variable": "additional_global_flags",
  160. "label": "Additional Global Flags",
  161. "description": "Additional global command-line flags for Versity Gateway.</br>\nIf you are unsure, leave this blank.\n",
  162. "schema": {
  163. "type": "list",
  164. "items": [
  165. {
  166. "variable": "item",
  167. "label": "",
  168. "schema": {
  169. "type": "dict",
  170. "attrs": [
  171. {
  172. "variable": "flag",
  173. "label": "Flag",
  174. "schema": {
  175. "type": "string",
  176. "default": "",
  177. "required": true
  178. }
  179. },
  180. {
  181. "variable": "value",
  182. "label": "Value",
  183. "schema": {
  184. "type": "string",
  185. "default": ""
  186. }
  187. }
  188. ]
  189. }
  190. }
  191. ]
  192. }
  193. },
  194. {
  195. "variable": "additional_posix_flags",
  196. "label": "Additional POSIX Flags",
  197. "description": "Additional command-line flags for the POSIX backend of Versity Gateway.</br>\nIf you are unsure, leave this blank.\n",
  198. "schema": {
  199. "type": "list",
  200. "items": [
  201. {
  202. "variable": "item",
  203. "label": "",
  204. "schema": {
  205. "type": "dict",
  206. "attrs": [
  207. {
  208. "variable": "flag",
  209. "label": "Flag",
  210. "schema": {
  211. "type": "string",
  212. "default": "",
  213. "required": true
  214. }
  215. },
  216. {
  217. "variable": "value",
  218. "label": "Value",
  219. "schema": {
  220. "type": "string",
  221. "default": ""
  222. }
  223. }
  224. ]
  225. }
  226. }
  227. ]
  228. }
  229. }
  230. ]
  231. }
  232. },
  233. {
  234. "variable": "run_as",
  235. "label": "",
  236. "group": "User and Group Configuration",
  237. "schema": {
  238. "type": "dict",
  239. "attrs": [
  240. {
  241. "variable": "user",
  242. "label": "User ID",
  243. "description": "The user id that Versity Gateway files will be owned by.",
  244. "schema": {
  245. "type": "int",
  246. "min": 568,
  247. "default": 568,
  248. "required": true
  249. }
  250. },
  251. {
  252. "variable": "group",
  253. "label": "Group ID",
  254. "description": "The group id that Versity Gateway files will be owned by.",
  255. "schema": {
  256. "type": "int",
  257. "min": 568,
  258. "default": 568,
  259. "required": true
  260. }
  261. }
  262. ]
  263. }
  264. },
  265. {
  266. "variable": "network",
  267. "label": "",
  268. "group": "Network Configuration",
  269. "schema": {
  270. "type": "dict",
  271. "attrs": [
  272. {
  273. "variable": "api_port",
  274. "label": "API Port",
  275. "description": "The port for Versity Gateway S3 API",
  276. "schema": {
  277. "type": "dict",
  278. "attrs": [
  279. {
  280. "variable": "bind_mode",
  281. "label": "Port Bind Mode",
  282. "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",
  283. "schema": {
  284. "type": "string",
  285. "default": "published",
  286. "enum": [
  287. {
  288. "value": "published",
  289. "description": "Publish port on the host for external access"
  290. },
  291. {
  292. "value": "exposed",
  293. "description": "Expose port for inter-container communication"
  294. },
  295. {
  296. "value": "",
  297. "description": "None"
  298. }
  299. ]
  300. }
  301. },
  302. {
  303. "variable": "port_number",
  304. "label": "Port Number",
  305. "schema": {
  306. "type": "int",
  307. "default": 30157,
  308. "min": 1,
  309. "max": 65535,
  310. "required": true
  311. }
  312. },
  313. {
  314. "variable": "host_ips",
  315. "label": "Host IPs",
  316. "description": "IPs on the host to bind this port",
  317. "schema": {
  318. "type": "list",
  319. "show_if": [
  320. [
  321. "bind_mode",
  322. "=",
  323. "published"
  324. ]
  325. ],
  326. "default": [],
  327. "items": [
  328. {
  329. "variable": "host_ip",
  330. "label": "Host IP",
  331. "schema": {
  332. "type": "string",
  333. "required": true,
  334. "$ref": [
  335. "definitions/node_bind_ip"
  336. ]
  337. }
  338. }
  339. ]
  340. }
  341. }
  342. ]
  343. }
  344. },
  345. {
  346. "variable": "admin_port",
  347. "label": "Admin Port",
  348. "description": "The port for Versity Gateway admin API (defaults to the same as the API port)",
  349. "schema": {
  350. "type": "dict",
  351. "attrs": [
  352. {
  353. "variable": "bind_mode",
  354. "label": "Port Bind Mode",
  355. "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",
  356. "schema": {
  357. "type": "string",
  358. "default": "",
  359. "enum": [
  360. {
  361. "value": "published",
  362. "description": "Publish port on the host for external access"
  363. },
  364. {
  365. "value": "exposed",
  366. "description": "Expose port for inter-container communication"
  367. },
  368. {
  369. "value": "",
  370. "description": "None"
  371. }
  372. ]
  373. }
  374. },
  375. {
  376. "variable": "port_number",
  377. "label": "Port Number",
  378. "schema": {
  379. "type": "int",
  380. "default": 30158,
  381. "min": 1,
  382. "max": 65535,
  383. "required": true
  384. }
  385. },
  386. {
  387. "variable": "host_ips",
  388. "label": "Host IPs",
  389. "description": "IPs on the host to bind this port",
  390. "schema": {
  391. "type": "list",
  392. "show_if": [
  393. [
  394. "bind_mode",
  395. "=",
  396. "published"
  397. ]
  398. ],
  399. "default": [],
  400. "items": [
  401. {
  402. "variable": "host_ip",
  403. "label": "Host IP",
  404. "schema": {
  405. "type": "string",
  406. "required": true,
  407. "$ref": [
  408. "definitions/node_bind_ip"
  409. ]
  410. }
  411. }
  412. ]
  413. }
  414. }
  415. ]
  416. }
  417. },
  418. {
  419. "variable": "host_network",
  420. "label": "Host Network",
  421. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  422. "schema": {
  423. "type": "boolean",
  424. "default": false
  425. }
  426. },
  427. {
  428. "variable": "certificate_id",
  429. "label": "Certificate",
  430. "description": "The certificate to use for Versity Gateway.",
  431. "schema": {
  432. "type": "int",
  433. "null": true,
  434. "$ref": [
  435. "definitions/certificate"
  436. ]
  437. }
  438. },
  439. {
  440. "variable": "admin_certificate_id",
  441. "label": "Admin Certificate",
  442. "description": "The certificate to use for the admin server of Versity Gateway.</br>\nWill be ignored if Admin Port's bind mode is None.\n",
  443. "schema": {
  444. "type": "int",
  445. "null": true,
  446. "$ref": [
  447. "definitions/certificate"
  448. ]
  449. }
  450. }
  451. ]
  452. }
  453. },
  454. {
  455. "variable": "storage",
  456. "label": "",
  457. "group": "Storage Configuration",
  458. "schema": {
  459. "type": "dict",
  460. "attrs": [
  461. {
  462. "variable": "buckets",
  463. "label": "Versity Gateway Bucket Storage",
  464. "description": "The path to store S3 bucket data",
  465. "schema": {
  466. "type": "dict",
  467. "attrs": [
  468. {
  469. "variable": "type",
  470. "label": "Type",
  471. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  472. "schema": {
  473. "type": "string",
  474. "required": true,
  475. "default": "ix_volume",
  476. "enum": [
  477. {
  478. "value": "host_path",
  479. "description": "Host Path (Path that already exists on the system)"
  480. },
  481. {
  482. "value": "ix_volume",
  483. "description": "ixVolume (Dataset created automatically by the system)"
  484. }
  485. ]
  486. }
  487. },
  488. {
  489. "variable": "ix_volume_config",
  490. "label": "ixVolume Configuration",
  491. "description": "The configuration for the ixVolume dataset.",
  492. "schema": {
  493. "type": "dict",
  494. "show_if": [
  495. [
  496. "type",
  497. "=",
  498. "ix_volume"
  499. ]
  500. ],
  501. "$ref": [
  502. "normalize/ix_volume"
  503. ],
  504. "attrs": [
  505. {
  506. "variable": "acl_enable",
  507. "label": "Enable ACL",
  508. "description": "Enable ACL for the storage.",
  509. "schema": {
  510. "type": "boolean",
  511. "default": false
  512. }
  513. },
  514. {
  515. "variable": "dataset_name",
  516. "label": "Dataset Name",
  517. "description": "The name of the dataset to use for storage.",
  518. "schema": {
  519. "type": "string",
  520. "required": true,
  521. "hidden": true,
  522. "default": "buckets"
  523. }
  524. },
  525. {
  526. "variable": "acl_entries",
  527. "label": "ACL Configuration",
  528. "schema": {
  529. "type": "dict",
  530. "show_if": [
  531. [
  532. "acl_enable",
  533. "=",
  534. true
  535. ]
  536. ],
  537. "attrs": []
  538. }
  539. }
  540. ]
  541. }
  542. },
  543. {
  544. "variable": "host_path_config",
  545. "label": "Host Path Configuration",
  546. "schema": {
  547. "type": "dict",
  548. "show_if": [
  549. [
  550. "type",
  551. "=",
  552. "host_path"
  553. ]
  554. ],
  555. "attrs": [
  556. {
  557. "variable": "acl_enable",
  558. "label": "Enable ACL",
  559. "description": "Enable ACL for the storage.",
  560. "schema": {
  561. "type": "boolean",
  562. "default": false
  563. }
  564. },
  565. {
  566. "variable": "acl",
  567. "label": "ACL Configuration",
  568. "schema": {
  569. "type": "dict",
  570. "show_if": [
  571. [
  572. "acl_enable",
  573. "=",
  574. true
  575. ]
  576. ],
  577. "attrs": [],
  578. "$ref": [
  579. "normalize/acl"
  580. ]
  581. }
  582. },
  583. {
  584. "variable": "path",
  585. "label": "Host Path",
  586. "description": "The host path to use for storage.",
  587. "schema": {
  588. "type": "hostpath",
  589. "show_if": [
  590. [
  591. "acl_enable",
  592. "=",
  593. false
  594. ]
  595. ],
  596. "required": true
  597. }
  598. }
  599. ]
  600. }
  601. }
  602. ]
  603. }
  604. },
  605. {
  606. "variable": "additional_storage",
  607. "label": "Additional Storage",
  608. "schema": {
  609. "type": "list",
  610. "default": [],
  611. "items": [
  612. {
  613. "variable": "storageEntry",
  614. "label": "Storage Entry",
  615. "schema": {
  616. "type": "dict",
  617. "attrs": [
  618. {
  619. "variable": "type",
  620. "label": "Type",
  621. "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",
  622. "schema": {
  623. "type": "string",
  624. "required": true,
  625. "default": "ix_volume",
  626. "enum": [
  627. {
  628. "value": "host_path",
  629. "description": "Host Path (Path that already exists on the system)"
  630. },
  631. {
  632. "value": "ix_volume",
  633. "description": "ixVolume (Dataset created automatically by the system)"
  634. },
  635. {
  636. "value": "cifs",
  637. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  638. }
  639. ]
  640. }
  641. },
  642. {
  643. "variable": "read_only",
  644. "label": "Read Only",
  645. "description": "Mount the volume as read only.",
  646. "schema": {
  647. "type": "boolean",
  648. "default": false
  649. }
  650. },
  651. {
  652. "variable": "mount_path",
  653. "label": "Mount Path",
  654. "description": "The path inside the container to mount the storage.",
  655. "schema": {
  656. "type": "path",
  657. "required": true
  658. }
  659. },
  660. {
  661. "variable": "host_path_config",
  662. "label": "Host Path Configuration",
  663. "schema": {
  664. "type": "dict",
  665. "show_if": [
  666. [
  667. "type",
  668. "=",
  669. "host_path"
  670. ]
  671. ],
  672. "attrs": [
  673. {
  674. "variable": "acl_enable",
  675. "label": "Enable ACL",
  676. "description": "Enable ACL for the storage.",
  677. "schema": {
  678. "type": "boolean",
  679. "default": false
  680. }
  681. },
  682. {
  683. "variable": "acl",
  684. "label": "ACL Configuration",
  685. "schema": {
  686. "type": "dict",
  687. "show_if": [
  688. [
  689. "acl_enable",
  690. "=",
  691. true
  692. ]
  693. ],
  694. "attrs": [],
  695. "$ref": [
  696. "normalize/acl"
  697. ]
  698. }
  699. },
  700. {
  701. "variable": "path",
  702. "label": "Host Path",
  703. "description": "The host path to use for storage.",
  704. "schema": {
  705. "type": "hostpath",
  706. "show_if": [
  707. [
  708. "acl_enable",
  709. "=",
  710. false
  711. ]
  712. ],
  713. "required": true
  714. }
  715. }
  716. ]
  717. }
  718. },
  719. {
  720. "variable": "ix_volume_config",
  721. "label": "ixVolume Configuration",
  722. "description": "The configuration for the ixVolume dataset.",
  723. "schema": {
  724. "type": "dict",
  725. "show_if": [
  726. [
  727. "type",
  728. "=",
  729. "ix_volume"
  730. ]
  731. ],
  732. "$ref": [
  733. "normalize/ix_volume"
  734. ],
  735. "attrs": [
  736. {
  737. "variable": "acl_enable",
  738. "label": "Enable ACL",
  739. "description": "Enable ACL for the storage.",
  740. "schema": {
  741. "type": "boolean",
  742. "default": false
  743. }
  744. },
  745. {
  746. "variable": "dataset_name",
  747. "label": "Dataset Name",
  748. "description": "The name of the dataset to use for storage.",
  749. "schema": {
  750. "type": "string",
  751. "required": true,
  752. "default": "storage_entry"
  753. }
  754. },
  755. {
  756. "variable": "acl_entries",
  757. "label": "ACL Configuration",
  758. "schema": {
  759. "type": "dict",
  760. "show_if": [
  761. [
  762. "acl_enable",
  763. "=",
  764. true
  765. ]
  766. ],
  767. "attrs": [],
  768. "$ref": [
  769. "normalize/acl"
  770. ]
  771. }
  772. }
  773. ]
  774. }
  775. },
  776. {
  777. "variable": "cifs_config",
  778. "label": "SMB Configuration",
  779. "description": "The configuration for the SMB dataset.",
  780. "schema": {
  781. "type": "dict",
  782. "show_if": [
  783. [
  784. "type",
  785. "=",
  786. "cifs"
  787. ]
  788. ],
  789. "attrs": [
  790. {
  791. "variable": "server",
  792. "label": "Server",
  793. "description": "The server to mount the SMB share.",
  794. "schema": {
  795. "type": "string",
  796. "required": true
  797. }
  798. },
  799. {
  800. "variable": "path",
  801. "label": "Path",
  802. "description": "The path to mount the SMB share.",
  803. "schema": {
  804. "type": "string",
  805. "required": true
  806. }
  807. },
  808. {
  809. "variable": "username",
  810. "label": "Username",
  811. "description": "The username to use for the SMB share.",
  812. "schema": {
  813. "type": "string",
  814. "required": true
  815. }
  816. },
  817. {
  818. "variable": "password",
  819. "label": "Password",
  820. "description": "The password to use for the SMB share.",
  821. "schema": {
  822. "type": "string",
  823. "required": true,
  824. "private": true
  825. }
  826. },
  827. {
  828. "variable": "domain",
  829. "label": "Domain",
  830. "description": "The domain to use for the SMB share.",
  831. "schema": {
  832. "type": "string"
  833. }
  834. }
  835. ]
  836. }
  837. }
  838. ]
  839. }
  840. }
  841. ]
  842. }
  843. }
  844. ]
  845. }
  846. },
  847. {
  848. "variable": "labels",
  849. "label": "",
  850. "group": "Labels Configuration",
  851. "schema": {
  852. "type": "list",
  853. "default": [],
  854. "items": [
  855. {
  856. "variable": "label",
  857. "label": "Label",
  858. "schema": {
  859. "type": "dict",
  860. "attrs": [
  861. {
  862. "variable": "key",
  863. "label": "Key",
  864. "schema": {
  865. "type": "string",
  866. "required": true
  867. }
  868. },
  869. {
  870. "variable": "value",
  871. "label": "Value",
  872. "schema": {
  873. "type": "string",
  874. "required": true
  875. }
  876. },
  877. {
  878. "variable": "containers",
  879. "label": "Containers",
  880. "description": "Containers where the label should be applied",
  881. "schema": {
  882. "type": "list",
  883. "items": [
  884. {
  885. "variable": "container",
  886. "label": "Container",
  887. "schema": {
  888. "type": "string",
  889. "required": true,
  890. "enum": [
  891. {
  892. "value": "versity",
  893. "description": "versity"
  894. }
  895. ]
  896. }
  897. }
  898. ]
  899. }
  900. }
  901. ]
  902. }
  903. }
  904. ]
  905. }
  906. },
  907. {
  908. "variable": "resources",
  909. "label": "",
  910. "group": "Resources Configuration",
  911. "schema": {
  912. "type": "dict",
  913. "attrs": [
  914. {
  915. "variable": "limits",
  916. "label": "Limits",
  917. "schema": {
  918. "type": "dict",
  919. "attrs": [
  920. {
  921. "variable": "cpus",
  922. "label": "CPUs",
  923. "description": "CPUs limit for Versity Gateway.",
  924. "schema": {
  925. "type": "int",
  926. "default": 2,
  927. "required": true
  928. }
  929. },
  930. {
  931. "variable": "memory",
  932. "label": "Memory (in MB)",
  933. "description": "Memory limit for Versity Gateway.",
  934. "schema": {
  935. "type": "int",
  936. "default": 4096,
  937. "required": true
  938. }
  939. }
  940. ]
  941. }
  942. }
  943. ]
  944. }
  945. }
  946. ]
  947. },
  948. "readme": "<h1>Versity S3 Gateway</h1> <p>The <a href=\"https://github.com/versity/versitygw\">Versity S3 Gateway</a> is a simple to use tool for seamless inline translation between AWS S3 object commands and storage systems.</p>",
  949. "changelog": null,
  950. "chart_metadata": {
  951. "app_version": "v1.0.17",
  952. "capabilities": [],
  953. "categories": [
  954. "storage"
  955. ],
  956. "changelog_url": "https://github.com/versity/versitygw/releases",
  957. "date_added": "2025-05-07",
  958. "description": "The Versity Gateway serves as a bridge between file based, POSIX, storage systems and applications that rely on S3 object interfaces. It enables applications to interact with file storage using familiar S3 operations like put and get, allowing for easy integration and compatibility.",
  959. "home": "https://github.com/versity/versitygw",
  960. "host_mounts": [],
  961. "icon": "https://media.sys.truenas.net/apps/versitygw/icons/icon.svg",
  962. "keywords": [
  963. "storage",
  964. "object-storage",
  965. "S3",
  966. "versity"
  967. ],
  968. "lib_version": "2.1.49",
  969. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  970. "maintainers": [
  971. {
  972. "email": "dev@ixsystems.com",
  973. "name": "truenas",
  974. "url": "https://www.truenas.com/"
  975. }
  976. ],
  977. "name": "versitygw",
  978. "run_as_context": [
  979. {
  980. "description": "Versity Gateway runs as any non-root user.",
  981. "gid": 568,
  982. "group_name": "versity",
  983. "uid": 568,
  984. "user_name": "versity"
  985. }
  986. ],
  987. "screenshots": [],
  988. "sources": [
  989. "https://github.com/versity/versitygw"
  990. ],
  991. "title": "Versity Gateway",
  992. "train": "community",
  993. "version": "1.0.9"
  994. }
  995. }
  996. }