@directus/app 9.12.1 → 9.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/dist/assets/{@directus_extensions-sdk.9a1812c6.entry.js → @directus_extensions-sdk.016f1070.entry.js} +1 -1
  2. package/dist/assets/accounts.40ab36c1.js +1 -0
  3. package/dist/assets/{active-line.b42e95d2.js → active-line.71775521.js} +1 -1
  4. package/dist/assets/activity-log.9449feec.js +1 -0
  5. package/dist/assets/activity.fbd319d5.js +80 -0
  6. package/dist/assets/{apl.a10fee96.js → apl.fabbb08e.js} +1 -1
  7. package/dist/assets/ar-SA.215069dc.js +1 -0
  8. package/dist/assets/architecture.9e90b6f3.js +1 -0
  9. package/dist/assets/{asciiarmor.3440160d.js → asciiarmor.f87dc63a.js} +1 -1
  10. package/dist/assets/{asn.1.bdf78f70.js → asn.1.5dd57608.js} +1 -1
  11. package/dist/assets/{asterisk.88ae33f0.js → asterisk.395cf0ad.js} +1 -1
  12. package/dist/assets/authentication.bc20bce5.js +73 -0
  13. package/dist/assets/{autorefresh.fa8b7b34.js → autorefresh.2c9c0320.js} +1 -1
  14. package/dist/assets/aws.6652a1fd.js +1 -0
  15. package/dist/assets/backing-directus.02c28d29.js +1 -0
  16. package/dist/assets/bg-BG.9288ea83.js +1 -0
  17. package/dist/assets/bn-IN.4127b7a4.js +1 -0
  18. package/dist/assets/{br-FR.1ad76918.js → br-FR.d3564938.js} +1 -1
  19. package/dist/assets/{brainfuck.af40cbfc.js → brainfuck.60536f63.js} +1 -1
  20. package/dist/assets/{ca-ES.365a1fc4.js → ca-ES.f3dfdef6.js} +1 -1
  21. package/dist/assets/cli.6e61515e.js +19 -0
  22. package/dist/assets/cli.863ef0d2.js +4 -0
  23. package/dist/assets/{clike.75f55953.js → clike.74e0448b.js} +1 -1
  24. package/dist/assets/{clojure.f44f8182.js → clojure.8f96f0f7.js} +1 -1
  25. package/dist/assets/cloudron.a348537b.js +1 -0
  26. package/dist/assets/{cmake.dc51a5f4.js → cmake.723ea5dd.js} +1 -1
  27. package/dist/assets/{cobol.bd572fbc.js → cobol.a990507c.js} +1 -1
  28. package/dist/assets/codebase-overview.b46635f9.js +1 -0
  29. package/dist/assets/{coffeescript.903da3d2.js → coffeescript.c826a1f4.js} +1 -1
  30. package/dist/assets/collections.60e4b448.js +2 -0
  31. package/dist/assets/collections.80e4a52c.js +106 -0
  32. package/dist/assets/{commonlisp.0c024da5.js → commonlisp.0f5d3fae.js} +1 -1
  33. package/dist/assets/config-options.8e2d8e17.js +138 -0
  34. package/dist/assets/content.003d7d7c.js +1 -0
  35. package/dist/assets/creating-extensions.9a98925a.js +11 -0
  36. package/dist/assets/{crystal.80f7e1ba.js → crystal.8517c407.js} +1 -1
  37. package/dist/assets/cs-CZ.a3c83b73.js +1 -0
  38. package/dist/assets/{css.eb89b9da.js → css.f2b45d65.js} +1 -1
  39. package/dist/assets/{cypher.f649c40f.js → cypher.0f67a8c4.js} +1 -1
  40. package/dist/assets/{d.3e286089.js → d.d8c5a86d.js} +1 -1
  41. package/dist/assets/{da-DK.88f53a7d.js → da-DK.3c379038.js} +1 -1
  42. package/dist/assets/{dart.5b9bb9bb.js → dart.ff540412.js} +1 -1
  43. package/dist/assets/data-model.086edd1e.js +1 -0
  44. package/dist/assets/data-sharing.27afa5ee.js +1 -0
  45. package/dist/assets/de-DE.350023db.js +1 -0
  46. package/dist/assets/{diff.c63eafa7.js → diff.1b6cf85e.js} +1 -1
  47. package/dist/assets/digitalocean-app-platform.aff2a50b.js +3 -0
  48. package/dist/assets/display-templates.d8e93a19.js +1 -0
  49. package/dist/assets/displays.e528abde.js +49 -0
  50. package/dist/assets/{django.3a6905fc.js → django.b05a00dd.js} +1 -1
  51. package/dist/assets/{docker.e1bb4205.js → docker.6f265c46.js} +7 -7
  52. package/dist/assets/{dockerfile.a9f614c8.js → dockerfile.50e7896f.js} +1 -1
  53. package/dist/assets/documentation.ad1fdaf2.js +1 -0
  54. package/dist/assets/{dtd.5b2d40ab.js → dtd.4f30128b.js} +1 -1
  55. package/dist/assets/{dylan.744cd79f.js → dylan.295f582b.js} +1 -1
  56. package/dist/assets/{ebnf.6637a8f6.js → ebnf.48a4d2a4.js} +1 -1
  57. package/dist/assets/{ecl.cdabfae6.js → ecl.686a8714.js} +1 -1
  58. package/dist/assets/{eiffel.60b61e7f.js → eiffel.ee4a91b5.js} +1 -1
  59. package/dist/assets/{el-GR.98199dde.js → el-GR.103ebf8d.js} +1 -1
  60. package/dist/assets/{elm.74b68fc8.js → elm.3575efea.js} +1 -1
  61. package/dist/assets/email-templates.2bdb87a6.js +2 -0
  62. package/dist/assets/{en-CA.58d818b8.js → en-CA.9ad3a3ab.js} +1 -1
  63. package/dist/assets/{en-GB.74320d21.js → en-GB.c55341c7.js} +1 -1
  64. package/dist/assets/endpoints.2c9172db.js +27 -0
  65. package/dist/assets/{erlang.d6cd5265.js → erlang.2f06eab4.js} +1 -1
  66. package/dist/assets/es-419.10094709.js +1 -0
  67. package/dist/assets/es-CL.7f44ec7c.js +1 -0
  68. package/dist/assets/es-ES.3ff9088e.js +1 -0
  69. package/dist/assets/es-MX.17370b17.js +1 -0
  70. package/dist/assets/{et-EE.9e35920e.js → et-EE.fb46a361.js} +1 -1
  71. package/dist/assets/extensions.8d3df212.js +12 -0
  72. package/dist/assets/{fa-IR.f3dc75f9.js → fa-IR.b864f77c.js} +1 -1
  73. package/dist/assets/{factor.965cfdad.js → factor.59c6a149.js} +1 -1
  74. package/dist/assets/faq.63c79c18.js +2 -0
  75. package/dist/assets/{fcl.e515f605.js → fcl.a6a387b9.js} +1 -1
  76. package/dist/assets/{fi-FI.42afdce0.js → fi-FI.14f31cb4.js} +1 -1
  77. package/dist/assets/fields.715d4591.js +135 -0
  78. package/dist/assets/file-library.a4de4015.js +1 -0
  79. package/dist/assets/files.7c2ccfe2.js +189 -0
  80. package/dist/assets/filter-rules.056b97be.js +76 -0
  81. package/dist/assets/filters.2cb82fd9.js +1 -0
  82. package/dist/assets/flows.38f60cc8.js +172 -0
  83. package/dist/assets/flows.f378a262.js +15 -0
  84. package/dist/assets/{fo-FO.ffe478b0.js → fo-FO.cc444b75.js} +1 -1
  85. package/dist/assets/folders.fa66a5ce.js +132 -0
  86. package/dist/assets/{forth.c62ab807.js → forth.eec0a81d.js} +1 -1
  87. package/dist/assets/{fortran.c0e428c5.js → fortran.b9df31da.js} +1 -1
  88. package/dist/assets/fr-CA.0e824ae4.js +1 -0
  89. package/dist/assets/fr-FR.77a5277c.js +1 -0
  90. package/dist/assets/{gas.fd59e425.js → gas.1bf79f8f.js} +1 -1
  91. package/dist/assets/gcp.6c61b39e.js +60 -0
  92. package/dist/assets/{gfm.8125a8e6.js → gfm.04d0828d.js} +1 -1
  93. package/dist/assets/{gherkin.c9a9f9d2.js → gherkin.f334d646.js} +1 -1
  94. package/dist/assets/github-ci.04483301.js +2 -0
  95. package/dist/assets/glossary.485603d9.js +1 -0
  96. package/dist/assets/glossary.6efd77ad.js +1 -0
  97. package/dist/assets/{go.31390264.js → go.81bbba54.js} +1 -1
  98. package/dist/assets/{groovy.c940d48b.js → groovy.3fb79de5.js} +1 -1
  99. package/dist/assets/{haml.1a456af6.js → haml.9645befc.js} +1 -1
  100. package/dist/assets/{handlebars.d3c0e9e6.js → handlebars.c78fa1ca.js} +1 -1
  101. package/dist/assets/{haskell-literate.06d0d330.js → haskell-literate.ee77a8c9.js} +1 -1
  102. package/dist/assets/{haskell.f83a5b48.js → haskell.0f131af0.js} +1 -1
  103. package/dist/assets/{haxe.cf38bc86.js → haxe.5ecd20ea.js} +1 -1
  104. package/dist/assets/{hi-IN.36e79faa.js → hi-IN.c0703db5.js} +1 -1
  105. package/dist/assets/hooks.f7efe9af.js +60 -0
  106. package/dist/assets/{hr-HR.b1e41c07.js → hr-HR.467388ee.js} +1 -1
  107. package/dist/assets/{htmlembedded.4765ab1f.js → htmlembedded.b9d52c93.js} +1 -1
  108. package/dist/assets/{htmlmixed.a4506ee0.js → htmlmixed.b02b6e2e.js} +1 -1
  109. package/dist/assets/{http.cf2042b8.js → http.705b0cd9.js} +1 -1
  110. package/dist/assets/{hu-HU.9c7ec38f.js → hu-HU.47ab36e8.js} +1 -1
  111. package/dist/assets/id-ID.8089647c.js +1 -0
  112. package/dist/assets/{idl.2b562d7a.js → idl.ee86fe0e.js} +1 -1
  113. package/dist/assets/iis.e068f41a.js +24 -0
  114. package/dist/assets/import-export.d334c127.js +2 -0
  115. package/dist/assets/{index.44b36a96.js → index.0295bc4b.js} +1 -1
  116. package/dist/assets/{index.f6d90b7c.js → index.07257d01.js} +1 -1
  117. package/dist/assets/{index.515f0cb5.js → index.0e101049.js} +1 -1
  118. package/dist/assets/{index.bc3296ff.js → index.10f90411.js} +1 -1
  119. package/dist/assets/{index.17ad666d.js → index.14c720ba.js} +1 -1
  120. package/dist/assets/{index.6687eb7d.js → index.16acfb90.js} +1 -1
  121. package/dist/assets/{index.e9099679.js → index.175a81f8.js} +1 -1
  122. package/dist/assets/index.192147d5.css +1 -0
  123. package/dist/assets/{index.734cf408.js → index.1a65b37a.js} +1 -1
  124. package/dist/assets/{index.76212e14.js → index.1b44d300.js} +1 -1
  125. package/dist/assets/{index.35fb04b2.js → index.20b34242.js} +1 -1
  126. package/dist/assets/{index.b871b7a5.js → index.2598f40b.js} +1 -1
  127. package/dist/assets/{index.5490bf54.js → index.28aa754b.js} +1 -1
  128. package/dist/assets/{index.b955a1be.js → index.2926879f.js} +1 -1
  129. package/dist/assets/{index.ff5502c6.js → index.2ec06d14.js} +1 -1
  130. package/dist/assets/{index.05e20b6f.js → index.399c0d62.js} +1 -1
  131. package/dist/assets/{index.788544c8.js → index.3d4cd218.js} +1 -1
  132. package/dist/assets/{index.bbf0131f.js → index.3eda79ec.js} +1 -1
  133. package/dist/assets/{index.f334ad18.js → index.402d83c0.js} +1 -1
  134. package/dist/assets/{index.48fd0edb.js → index.4100d6f0.js} +1 -1
  135. package/dist/assets/{index.5312378b.js → index.43fa9898.js} +1 -1
  136. package/dist/assets/{index.90aad19e.js → index.456ff0bd.js} +1 -1
  137. package/dist/assets/{index.2ff40292.js → index.4e2109fe.js} +1 -1
  138. package/dist/assets/{index.4de2df6a.js → index.4ef25ded.js} +1 -1
  139. package/dist/assets/{index.c91867d3.js → index.4fbaebb7.js} +1 -1
  140. package/dist/assets/{index.5d10078c.js → index.55a12dfb.js} +1 -1
  141. package/dist/assets/{index.1d927fd3.js → index.56188e3b.js} +1 -1
  142. package/dist/assets/{index.ea326829.js → index.5c54c17f.js} +1 -1
  143. package/dist/assets/{index.f715fb2c.js → index.5f5bf5b9.js} +1 -1
  144. package/dist/assets/{index.064c96df.js → index.60d33aa1.js} +1 -1
  145. package/dist/assets/{index.491a4003.js → index.627523d7.js} +1 -1
  146. package/dist/assets/{index.921bf39b.js → index.63d1f569.js} +1 -1
  147. package/dist/assets/{index.27da0362.js → index.663b73a9.js} +1 -1
  148. package/dist/assets/{index.8c9bb9d2.js → index.6bebaca7.js} +1 -1
  149. package/dist/assets/{index.c219c9fd.js → index.6f0b7179.js} +1 -1
  150. package/dist/assets/{index.895a297f.css → index.6f497914.css} +1 -1
  151. package/dist/assets/{index.f5a62bca.js → index.7249f524.js} +1 -1
  152. package/dist/assets/{index.6752521e.js → index.77260d1d.js} +1 -1
  153. package/dist/assets/{index.5e2cb31c.js → index.7f906cfe.js} +1 -1
  154. package/dist/assets/{index.1a186179.js → index.7fd5e2a0.js} +1 -1
  155. package/dist/assets/{index.e9faa1b7.js → index.7fe984e4.js} +1 -1
  156. package/dist/assets/{index.0a4e8fad.js → index.8493b2e7.js} +1 -1
  157. package/dist/assets/{index.db01bb54.js → index.85b9f847.js} +1 -1
  158. package/dist/assets/{index.629b6c38.js → index.8a9f2874.js} +1 -1
  159. package/dist/assets/{index.859a78cb.js → index.93059741.js} +1 -1
  160. package/dist/assets/{index.f6a5906f.js → index.94cf6fb4.js} +1 -1
  161. package/dist/assets/{index.55f6227c.js → index.98713a56.js} +1 -1
  162. package/dist/assets/{index.009353d9.js → index.98ee194a.js} +1 -1
  163. package/dist/assets/{index.9fbcba2f.js → index.9b60cfa4.js} +1 -1
  164. package/dist/assets/{index.bc32829f.js → index.a3e085ea.js} +1 -1
  165. package/dist/assets/{index.1e0212f9.js → index.a40592f5.js} +1 -1
  166. package/dist/assets/{index.fc7b1181.js → index.a5d15d7f.js} +1 -1
  167. package/dist/assets/{index.71e28483.js → index.a71fa74c.js} +1 -1
  168. package/dist/assets/{index.e39c7e76.js → index.a8aa4628.js} +1 -1
  169. package/dist/assets/{index.9b23cd7f.js → index.a9b73f2c.js} +1 -1
  170. package/dist/assets/{index.fd2a5a74.js → index.a9faa4e8.js} +1 -1
  171. package/dist/assets/{index.ddbad0a0.js → index.af021d8a.js} +1 -1
  172. package/dist/assets/{index.8f901e72.js → index.b43832c6.js} +1 -1
  173. package/dist/assets/{index.44c7ed90.js → index.b5ed5076.js} +1 -1
  174. package/dist/assets/{index.540a1c0d.js → index.b67f8116.js} +1 -1
  175. package/dist/assets/{index.b635a926.js → index.b702042e.js} +1 -1
  176. package/dist/assets/{index.3c7e729b.js → index.bce5f50d.js} +1 -1
  177. package/dist/assets/{index.691d9c7a.js → index.bfd23a9c.js} +1 -1
  178. package/dist/assets/{index.70f6f88a.entry.js → index.c2e31551.entry.js} +226 -230
  179. package/dist/assets/{index.a40a776b.js → index.c2e6211e.js} +1 -1
  180. package/dist/assets/{index.f80921e7.js → index.c35b11e6.js} +1 -1
  181. package/dist/assets/{index.131b4ee8.js → index.c5266851.js} +1 -1
  182. package/dist/assets/{index.b09321f5.js → index.c6e501ec.js} +1 -1
  183. package/dist/assets/{index.ae9b035a.js → index.c9fb33ab.js} +1 -1
  184. package/dist/assets/{index.4ff10039.js → index.cc6496a8.js} +1 -1
  185. package/dist/assets/{index.d911a640.js → index.cda6c2d6.js} +1 -1
  186. package/dist/assets/{index.54a49224.js → index.cef58c9b.js} +1 -1
  187. package/dist/assets/{index.a9473e05.js → index.d060d5f6.js} +1 -1
  188. package/dist/assets/{index.b8baec6c.js → index.d0fe3776.js} +1 -1
  189. package/dist/assets/{index.e7e17448.js → index.d653bbf2.js} +1 -1
  190. package/dist/assets/{index.4533ce42.js → index.d8fe2ade.js} +1 -1
  191. package/dist/assets/{index.ff5a189a.js → index.d9285c22.js} +1 -1
  192. package/dist/assets/{index.bb82940a.js → index.e3dcc63c.js} +1 -1
  193. package/dist/assets/{index.c6ea1824.js → index.e6715953.js} +1 -1
  194. package/dist/assets/{index.08e6475d.js → index.ebb444cf.js} +1 -1
  195. package/dist/assets/{index.a0bc3d71.js → index.ee22568a.js} +1 -1
  196. package/dist/assets/{index.c54243ff.js → index.ef3faba8.js} +1 -1
  197. package/dist/assets/index.f0d32a46.js +26 -0
  198. package/dist/assets/{index.3acd783e.js → index.fa57ca3f.js} +1 -1
  199. package/dist/assets/{input-rich-text-html.2d85a8a3.css → input-rich-text-html.172a38cb.css} +1 -1
  200. package/dist/assets/input-rich-text-html.c72d474e.js +239 -0
  201. package/dist/assets/insights.b3ba896c.js +2 -0
  202. package/dist/assets/installation.2025f88b.js +1 -0
  203. package/dist/assets/interfaces.606c790c.js +46 -0
  204. package/dist/assets/introduction.41a72fb0.js +1 -0
  205. package/dist/assets/introduction.527c3465.js +4 -0
  206. package/dist/assets/introduction.5566b96e.js +90 -0
  207. package/dist/assets/introduction.ecd17b88.js +1 -0
  208. package/dist/assets/it-IT.58422a56.js +1 -0
  209. package/dist/assets/items.d1f658a9.js +1 -0
  210. package/dist/assets/items.d9c6a0b4.js +136 -0
  211. package/dist/assets/ja-JP.84597497.js +1 -0
  212. package/dist/assets/{javascript-hint.29e9b67f.js → javascript-hint.af96cc6a.js} +1 -1
  213. package/dist/assets/{javascript.d2db845f.js → javascript.ed7a2c00.js} +1 -1
  214. package/dist/assets/{jinja2.f97723a0.js → jinja2.541c30d3.js} +1 -1
  215. package/dist/assets/{jsx.3f2b01c1.js → jsx.211ba53b.js} +1 -1
  216. package/dist/assets/{julia.fa920089.js → julia.66e518ec.js} +1 -1
  217. package/dist/assets/ko-KR.9056bd31.js +1 -0
  218. package/dist/assets/{ku-TR.9eee23ff.js → ku-TR.3a07a57e.js} +1 -1
  219. package/dist/assets/layouts.0aa8d645.js +54 -0
  220. package/dist/assets/layouts.14b157dc.js +1 -0
  221. package/dist/assets/{livescript.2ec2e5ab.js → livescript.06428372.js} +1 -1
  222. package/dist/assets/localization.c89061c7.js +1 -0
  223. package/dist/assets/{lt-LT.772aac6e.js → lt-LT.f2d719ff.js} +1 -1
  224. package/dist/assets/{lua.5e0c8497.js → lua.4f86b0e3.js} +1 -1
  225. package/dist/assets/manual.20d730b3.js +12 -0
  226. package/dist/assets/{mark-selection.54726b3f.js → mark-selection.c376d4be.js} +1 -1
  227. package/dist/assets/{match-highlighter.218123e7.js → match-highlighter.75cb1404.js} +1 -1
  228. package/dist/assets/{mathematica.df44764c.js → mathematica.1e1f53c5.js} +1 -1
  229. package/dist/assets/{mbox.491dfb6c.js → mbox.4a5729c3.js} +1 -1
  230. package/dist/assets/migrations.f13ec64d.js +19 -0
  231. package/dist/assets/{mirc.a9dca563.js → mirc.9b793041.js} +1 -1
  232. package/dist/assets/{mllike.0a469a43.js → mllike.4e43f07d.js} +1 -1
  233. package/dist/assets/{mn-MN.ae109212.js → mn-MN.c504a096.js} +1 -1
  234. package/dist/assets/{modelica.306697a8.js → modelica.deb73769.js} +1 -1
  235. package/dist/assets/modules.9b5ee510.js +69 -0
  236. package/dist/assets/{ms-MY.e50ff23a.js → ms-MY.e6553dad.js} +1 -1
  237. package/dist/assets/{mscgen.a45d586b.js → mscgen.48ffdfc0.js} +1 -1
  238. package/dist/assets/{multiplex.26e09ed5.js → multiplex.a2d83d7f.js} +1 -1
  239. package/dist/assets/{mumps.ae29c70e.js → mumps.210b8bdf.js} +1 -1
  240. package/dist/assets/{nginx.52e6bfcd.js → nginx.dbe68b8c.js} +1 -1
  241. package/dist/assets/{nl-NL.b57de112.js → nl-NL.2f00af44.js} +1 -1
  242. package/dist/assets/{no-NO.79458b78.js → no-NO.59f9d425.js} +1 -1
  243. package/dist/assets/notifications.674ee6f9.js +153 -0
  244. package/dist/assets/{nsis.5869c4bd.js → nsis.5576ebf1.js} +1 -1
  245. package/dist/assets/{ntriples.c7dd54df.js → ntriples.07c64718.js} +1 -1
  246. package/dist/assets/{octave.ef49cef7.js → octave.9cb94caa.js} +1 -1
  247. package/dist/assets/operations.46679bea.js +1 -0
  248. package/dist/assets/operations.9995851b.js +169 -0
  249. package/dist/assets/{overlay.9a3d0cba.js → overlay.b1fd0f5a.js} +1 -1
  250. package/dist/assets/overview.3616b560.js +1 -0
  251. package/dist/assets/overview.3c9f8f3d.js +1 -0
  252. package/dist/assets/overview.6438dc44.js +1 -0
  253. package/dist/assets/{oz.6a13c27c.js → oz.4bedbc84.js} +1 -1
  254. package/dist/assets/panels.570ee526.js +65 -0
  255. package/dist/assets/{pascal.77947c82.js → pascal.9f3e47db.js} +1 -1
  256. package/dist/assets/{pegjs.fb3674fc.js → pegjs.38dabda4.js} +1 -1
  257. package/dist/assets/{perl.bd20c5e2.js → perl.d07c357e.js} +1 -1
  258. package/dist/assets/permissions.768d1878.js +178 -0
  259. package/dist/assets/{php.f7000a8d.js → php.a2fb29e5.js} +1 -1
  260. package/dist/assets/{pig.7044156f.js → pig.cc357f9e.js} +1 -1
  261. package/dist/assets/pl-PL.80cfbed6.js +1 -0
  262. package/dist/assets/plesk.b0ee9a9a.js +27 -0
  263. package/dist/assets/{powershell.d6251d29.js → powershell.283f357b.js} +1 -1
  264. package/dist/assets/presets-bookmarks.522baf53.js +1 -0
  265. package/dist/assets/presets.d902ebfa.js +164 -0
  266. package/dist/assets/project-settings.1f95b799.js +1 -0
  267. package/dist/assets/projects.1ea6a392.js +1 -0
  268. package/dist/assets/{properties.21d46a91.js → properties.57480d0c.js} +1 -1
  269. package/dist/assets/{protobuf.0595884b.js → protobuf.c1758733.js} +1 -1
  270. package/dist/assets/pt-BR.40750500.js +1 -0
  271. package/dist/assets/pt-PT.fae0fcc3.js +1 -0
  272. package/dist/assets/{pug.02047604.js → pug.bdcaf1c5.js} +1 -1
  273. package/dist/assets/{puppet.7c07ba75.js → puppet.8b6ff9f4.js} +1 -1
  274. package/dist/assets/{python.fe6c7a24.js → python.987c2ae7.js} +1 -1
  275. package/dist/assets/{q.bfdf1988.js → q.85f4c589.js} +1 -1
  276. package/dist/assets/query.8abea6de.js +152 -0
  277. package/dist/assets/quickstart.75164dd7.js +9 -0
  278. package/dist/assets/quickstart.9985cb15.js +20 -0
  279. package/dist/assets/{r.d6b5ac21.js → r.25d10fd4.js} +1 -1
  280. package/dist/assets/relations.9011b2b5.js +115 -0
  281. package/dist/assets/relationships.cbc9b1c5.js +55 -0
  282. package/dist/assets/resources.25cb1e34.js +1 -0
  283. package/dist/assets/revisions.c90ecb76.js +40 -0
  284. package/dist/assets/{ro-RO.5161835a.js → ro-RO.a1adfb6a.js} +1 -1
  285. package/dist/assets/roles.22f7aa37.js +171 -0
  286. package/dist/assets/{rpm.92483469.js → rpm.8909ead0.js} +1 -1
  287. package/dist/assets/{rst.b2603799.js → rst.4d43ef54.js} +1 -1
  288. package/dist/assets/ru-RU.35703ea4.js +1 -0
  289. package/dist/assets/{ruby.0246dbd5.js → ruby.b7e26986.js} +1 -1
  290. package/dist/assets/running-locally.ce0a8200.js +26 -0
  291. package/dist/assets/{rust.dd8abd8d.js → rust.6984b11a.js} +1 -1
  292. package/dist/assets/{sas.d26b2302.js → sas.91990a72.js} +1 -1
  293. package/dist/assets/{sass.a791aa27.js → sass.898f89c7.js} +1 -1
  294. package/dist/assets/{scheme.ef2b1440.js → scheme.f661c5b8.js} +1 -1
  295. package/dist/assets/sdk.916109ed.js +393 -0
  296. package/dist/assets/security.1963da73.js +1 -0
  297. package/dist/assets/server.afec52fc.js +114 -0
  298. package/dist/assets/settings.835be62f.js +51 -0
  299. package/dist/assets/settings.a02abd85.js +1 -0
  300. package/dist/assets/{shell.2f3bc735.js → shell.af2902da.js} +1 -1
  301. package/dist/assets/{show-hint.6fa4d537.js → show-hint.2d43524d.js} +1 -1
  302. package/dist/assets/{sieve.99fca314.js → sieve.327a81f8.js} +1 -1
  303. package/dist/assets/{simple.0e90a38e.js → simple.4fb4f28d.js} +1 -1
  304. package/dist/assets/{sl-SI.719d987e.js → sl-SI.632899f8.js} +1 -1
  305. package/dist/assets/{slim.92d997b6.js → slim.e97ce531.js} +1 -1
  306. package/dist/assets/{smalltalk.a9b3ffec.js → smalltalk.b9556415.js} +1 -1
  307. package/dist/assets/{smarty.c54a652c.js → smarty.d91926e3.js} +1 -1
  308. package/dist/assets/{solr.1356a877.js → solr.20381d3e.js} +1 -1
  309. package/dist/assets/{soy.e1b19eef.js → soy.a0154260.js} +1 -1
  310. package/dist/assets/{sparql.1335f7a5.js → sparql.36de4d3f.js} +1 -1
  311. package/dist/assets/{spreadsheet.e9096343.js → spreadsheet.00a4877b.js} +1 -1
  312. package/dist/assets/{sql.ac45a460.js → sql.1f7dd82a.js} +1 -1
  313. package/dist/assets/{sr-CS.c513578f.js → sr-CS.2e5b18be.js} +1 -1
  314. package/dist/assets/{sso-examples.b52061be.js → sso-examples.048b39c5.js} +12 -12
  315. package/dist/assets/sso.70be105f.js +22 -0
  316. package/dist/assets/{stex.fb7fd990.js → stex.2b7cb363.js} +1 -1
  317. package/dist/assets/{stylus.d0281b2a.js → stylus.123ca166.js} +1 -1
  318. package/dist/assets/support.fce2dba5.js +1 -0
  319. package/dist/assets/{sv-SE.a70fd097.js → sv-SE.d485ddd3.js} +1 -1
  320. package/dist/assets/{swift.a9fd2d64.js → swift.9ca91d28.js} +1 -1
  321. package/dist/assets/{tcl.8f7bdfb5.js → tcl.1b7f83bd.js} +1 -1
  322. package/dist/assets/teams.44eb670e.js +1 -0
  323. package/dist/assets/{textile.ae199003.js → textile.ee402504.js} +1 -1
  324. package/dist/assets/{th-TH.bdbc4a8c.js → th-TH.1e9ab13f.js} +1 -1
  325. package/dist/assets/themes.e4a7762f.js +5 -0
  326. package/dist/assets/{tiddlywiki.52caa0ed.js → tiddlywiki.67540872.js} +1 -1
  327. package/dist/assets/{tiki.831b9315.js → tiki.fb6dd4a0.js} +1 -1
  328. package/dist/assets/{toml.6f660b6b.js → toml.9c5fe3d8.js} +1 -1
  329. package/dist/assets/{tornado.01563722.js → tornado.c681a8fd.js} +1 -1
  330. package/dist/assets/tr-TR.feb24957.js +1 -0
  331. package/dist/assets/translation-strings.4ed25965.js +1 -0
  332. package/dist/assets/translations.cf2353ca.js +1 -0
  333. package/dist/assets/triggers.05092cdf.js +1 -0
  334. package/dist/assets/{troff.f5f797f2.js → troff.a6f4e798.js} +1 -1
  335. package/dist/assets/{ttcn-cfg.a6927435.js → ttcn-cfg.a0214838.js} +1 -1
  336. package/dist/assets/{ttcn.24c6b925.js → ttcn.4c22a431.js} +1 -1
  337. package/dist/assets/{turtle.d0e831a8.js → turtle.d40e9c31.js} +1 -1
  338. package/dist/assets/{twig.d5e90842.js → twig.d78613df.js} +1 -1
  339. package/dist/assets/ubuntu.35dc97df.js +11 -0
  340. package/dist/assets/uk-UA.0e92f9a4.js +1 -0
  341. package/dist/assets/upgrades-migrations.9218bbe9.js +1 -0
  342. package/dist/assets/use-sync.c0f4dfab.js +28 -0
  343. package/dist/assets/user-directory.3daaa818.js +1 -0
  344. package/dist/assets/users-roles-permissions.6e18f7ca.js +1 -0
  345. package/dist/assets/users.4f11a7c5.js +252 -0
  346. package/dist/assets/utilities.0e0d0ace.js +74 -0
  347. package/dist/assets/{vb.bb33c7a5.js → vb.5adeb8ea.js} +1 -1
  348. package/dist/assets/{vbscript.d8f8d95e.js → vbscript.27937162.js} +1 -1
  349. package/dist/assets/{velocity.26721ec5.js → velocity.581c25aa.js} +1 -1
  350. package/dist/assets/{verilog.24512a86.js → verilog.9f72c282.js} +1 -1
  351. package/dist/assets/{vhdl.6e64552d.js → vhdl.4d290e0b.js} +1 -1
  352. package/dist/assets/{vi-VN.7478a743.js → vi-VN.3e9c985f.js} +1 -1
  353. package/dist/assets/{vue.4450af40.js → vue.cf5a232a.js} +1 -1
  354. package/dist/assets/{wast.79f64b4c.js → wast.16f886c5.js} +1 -1
  355. package/dist/assets/webhooks.00ee297b.js +147 -0
  356. package/dist/assets/webhooks.01ddb390.js +1 -0
  357. package/dist/assets/{webidl.860cea4e.js → webidl.1185b166.js} +1 -1
  358. package/dist/assets/{xquery.23f4fa34.js → xquery.34864271.js} +1 -1
  359. package/dist/assets/{yacas.0d60e6b0.js → yacas.880a270b.js} +1 -1
  360. package/dist/assets/{yaml-frontmatter.70ea956b.js → yaml-frontmatter.4cec6c13.js} +1 -1
  361. package/dist/assets/{yaml.9d5c3ac9.js → yaml.15292258.js} +1 -1
  362. package/dist/assets/{z80.527b7cb8.js → z80.727a7271.js} +1 -1
  363. package/dist/assets/zh-CN.432cf71e.js +1 -0
  364. package/dist/assets/zh-TW.cac20c88.js +1 -0
  365. package/dist/index.html +3 -3
  366. package/package.json +10 -7
  367. package/dist/assets/accounts.08433099.js +0 -1
  368. package/dist/assets/activity-log.fd558c9b.js +0 -1
  369. package/dist/assets/activity.0def80ca.js +0 -80
  370. package/dist/assets/ar-SA.1a6c2c65.js +0 -1
  371. package/dist/assets/authentication.a6f04750.js +0 -73
  372. package/dist/assets/aws.3b1c64af.js +0 -1
  373. package/dist/assets/backing-directus.1ed89e33.js +0 -1
  374. package/dist/assets/bg-BG.0eca7613.js +0 -2
  375. package/dist/assets/bn-IN.1385676c.js +0 -1
  376. package/dist/assets/cli.5153aa86.js +0 -4
  377. package/dist/assets/cli.e8e2526b.js +0 -19
  378. package/dist/assets/cloudron.53c430b8.js +0 -1
  379. package/dist/assets/codebase-overview.e9df94fc.js +0 -1
  380. package/dist/assets/collections.1c745e99.css +0 -1
  381. package/dist/assets/collections.2453db3a.js +0 -106
  382. package/dist/assets/collections.aa896b3f.js +0 -2
  383. package/dist/assets/config-options.b1233b4b.js +0 -138
  384. package/dist/assets/content.1b1e95cf.js +0 -1
  385. package/dist/assets/creating-extensions.bfd7c57c.js +0 -11
  386. package/dist/assets/cs-CZ.6910228b.js +0 -1
  387. package/dist/assets/data-model.0e360572.js +0 -1
  388. package/dist/assets/data-sharing.da96e52e.js +0 -1
  389. package/dist/assets/de-DE.d1197f4c.js +0 -1
  390. package/dist/assets/digitalocean-app-platform.3412cb40.js +0 -3
  391. package/dist/assets/display-templates.915c0c5b.js +0 -1
  392. package/dist/assets/displays.99989c6d.js +0 -49
  393. package/dist/assets/documentation.788d4998.js +0 -1
  394. package/dist/assets/email-templates.1f5ac335.js +0 -2
  395. package/dist/assets/endpoints.aaac7c81.js +0 -27
  396. package/dist/assets/es-419.aa0bf259.js +0 -1
  397. package/dist/assets/es-CL.e42c6c3c.js +0 -1
  398. package/dist/assets/es-ES.5c7e9438.js +0 -1
  399. package/dist/assets/es-MX.956444f4.js +0 -1
  400. package/dist/assets/extensions.34c12005.js +0 -12
  401. package/dist/assets/faq.89e68608.js +0 -2
  402. package/dist/assets/fields.54985585.js +0 -135
  403. package/dist/assets/file-library.3e651030.js +0 -1
  404. package/dist/assets/files.064d5a35.js +0 -187
  405. package/dist/assets/filter-rules.e442e006.js +0 -76
  406. package/dist/assets/filters.3db1b044.js +0 -1
  407. package/dist/assets/folders.0024d3d3.js +0 -132
  408. package/dist/assets/fr-CA.6d6d8d1f.js +0 -1
  409. package/dist/assets/fr-FR.7fa01b32.js +0 -1
  410. package/dist/assets/gcp.627205b5.js +0 -60
  411. package/dist/assets/github-ci.abd39dcc.js +0 -2
  412. package/dist/assets/glossary.75ca2027.js +0 -1
  413. package/dist/assets/glossary.bf083fb1.js +0 -1
  414. package/dist/assets/hooks.eda18b02.js +0 -60
  415. package/dist/assets/id-ID.a0052c00.js +0 -1
  416. package/dist/assets/iis.109e5a8a.js +0 -24
  417. package/dist/assets/import-export.3da878a4.js +0 -2
  418. package/dist/assets/index.40c42250.css +0 -1
  419. package/dist/assets/index.9b42e31d.js +0 -26
  420. package/dist/assets/input-rich-text-html.1550fe06.js +0 -240
  421. package/dist/assets/insights.c8ed7c1c.js +0 -1
  422. package/dist/assets/installation.78c6d9f6.js +0 -1
  423. package/dist/assets/interfaces.9e145c45.js +0 -46
  424. package/dist/assets/introduction.2e6f5c1d.js +0 -90
  425. package/dist/assets/introduction.78a2a844.js +0 -4
  426. package/dist/assets/introduction.7c5efc8a.js +0 -1
  427. package/dist/assets/introduction.d5621d79.js +0 -1
  428. package/dist/assets/it-IT.34d52fbd.js +0 -1
  429. package/dist/assets/items.4205dfa0.js +0 -136
  430. package/dist/assets/items.64ed9295.js +0 -1
  431. package/dist/assets/ja-JP.819a38cf.js +0 -1
  432. package/dist/assets/ko-KR.30f60079.js +0 -1
  433. package/dist/assets/layouts.3c14b583.js +0 -54
  434. package/dist/assets/layouts.ca8afd39.js +0 -1
  435. package/dist/assets/localization.374b7427.js +0 -1
  436. package/dist/assets/manual.ab601c95.js +0 -10
  437. package/dist/assets/migrations.8989fedc.js +0 -19
  438. package/dist/assets/modules.17c944d1.js +0 -69
  439. package/dist/assets/notifications.33c688c9.js +0 -153
  440. package/dist/assets/overview.3436365c.js +0 -1
  441. package/dist/assets/overview.623fafba.js +0 -1
  442. package/dist/assets/overview.dbebe94a.js +0 -1
  443. package/dist/assets/panels.385b173a.js +0 -65
  444. package/dist/assets/permissions.f84f8d42.js +0 -178
  445. package/dist/assets/pl-PL.22d5965f.js +0 -1
  446. package/dist/assets/plesk.f7e3d5ef.js +0 -27
  447. package/dist/assets/presets-bookmarks.1b8ec70c.js +0 -1
  448. package/dist/assets/presets.b1e8b6c1.js +0 -164
  449. package/dist/assets/project-settings.d32669a9.js +0 -1
  450. package/dist/assets/projects.b0451bed.js +0 -1
  451. package/dist/assets/pt-BR.2d6fa7cc.js +0 -1
  452. package/dist/assets/pt-PT.c28534a0.js +0 -1
  453. package/dist/assets/query.dbe0b56d.js +0 -152
  454. package/dist/assets/quickstart.01824cc9.js +0 -9
  455. package/dist/assets/quickstart.4d7c7736.js +0 -20
  456. package/dist/assets/relations.d29aa86d.js +0 -115
  457. package/dist/assets/relationships.c9c5db8a.js +0 -55
  458. package/dist/assets/revisions.2898106e.js +0 -40
  459. package/dist/assets/roles.9fec37da.js +0 -171
  460. package/dist/assets/ru-RU.39540ee0.js +0 -1
  461. package/dist/assets/running-locally.811d0dcc.js +0 -26
  462. package/dist/assets/sdk.12cd7974.js +0 -393
  463. package/dist/assets/security.8e2a8a41.js +0 -1
  464. package/dist/assets/server.9f12ae3e.js +0 -114
  465. package/dist/assets/settings.149d1dff.js +0 -1
  466. package/dist/assets/settings.28abc1f0.js +0 -51
  467. package/dist/assets/sso.64b2717b.js +0 -22
  468. package/dist/assets/support.94e3734b.js +0 -1
  469. package/dist/assets/teams.9ff14f8f.js +0 -1
  470. package/dist/assets/themes.df7ec485.js +0 -5
  471. package/dist/assets/tr-TR.d7a7361f.js +0 -1
  472. package/dist/assets/translations.5191ab7c.js +0 -1
  473. package/dist/assets/ubuntu.f4c21886.js +0 -11
  474. package/dist/assets/uk-UA.473dd1c9.js +0 -1
  475. package/dist/assets/upgrades-migrations.15498a47.js +0 -1
  476. package/dist/assets/use-sync.ded22f96.js +0 -28
  477. package/dist/assets/user-directory.47c8beb2.js +0 -1
  478. package/dist/assets/users-roles-permissions.005388fa.js +0 -1
  479. package/dist/assets/users.84251ab9.js +0 -252
  480. package/dist/assets/utilities.26e6a9e8.js +0 -74
  481. package/dist/assets/webhooks.4eeecb7d.js +0 -147
  482. package/dist/assets/webhooks.61b11e7d.js +0 -1
  483. package/dist/assets/zh-CN.c51e7308.js +0 -1
  484. package/dist/assets/zh-TW.8ef6cec8.js +0 -1
  485. package/dist/robots.txt +0 -2
@@ -1 +0,0 @@
1
- var e={avatar:"\u0985\u09AC\u09A4\u09BE\u09B0",default_provider:"\u09A1\u09BF\u09AB\u09B2\u09CD\u099F",published:"\u09AA\u09CD\u09B0\u0995\u09BE\u09B6\u09BF\u09A4",draft:"\u0996\u09B8\u09A1\u09BC\u09BE",archived:"\u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09AD\u09C1\u0995\u09CD\u09A4",modules:"\u09AE\u09A1\u09BF\u0989\u09B2",module_bar:"\u09AE\u09A1\u09BF\u0989\u09B2 \u09AC\u09BE\u09B0",tile_size:"\u099F\u09BE\u0987\u09B2 \u09B8\u09BE\u0987\u099C",edit_field:"\u09B8\u09AE\u09CD\u09AA\u09BE\u09A6\u09A8\u09BE \u0995\u09CD\u09B7\u09C7\u09A4\u09CD\u09B0",conditions:"\u09B6\u09B0\u09CD\u09A4\u09BE\u09AC\u09B2\u09C0",maps:"\u09AE\u09BE\u09A8\u099A\u09BF\u09A4\u09CD\u09B0",item_creation:"\u0986\u0987\u099F\u09C7\u09AE \u09B8\u09C3\u09B7\u09CD\u099F\u09BF",item_revision:"\u0986\u0987\u099F\u09C7\u09AE \u09B8\u0982\u09B6\u09CB\u09A7\u09A8",enter_a_name:"\u09A8\u09BE\u09AE \u09B2\u09BF\u0996\u09C1\u09A8...",duplicate_field:"\u09A1\u09C1\u09AA\u09CD\u09B2\u09BF\u0995\u09C7\u099F \u09AB\u09BF\u09B2\u09CD\u09A1",half_width:"\u0985\u09B0\u09CD\u09A7 - \u09AA\u09CD\u09B0\u09B8\u09CD\u09A5",full_width:"\u0985\u09B0\u09CD\u09A7 - \u09AA\u09CD\u09B0\u09B8\u09CD\u09A5",group:"\u0997\u09CD\u09B0\u09C1\u09AA",and:"\u098F\u09AC\u0982",or:"\u0985\u09A5\u09AC\u09BE",fill_width:"\u09AA\u09CD\u09B0\u09B8\u09CD\u09A5 \u09AA\u09C2\u09B0\u09A3 \u0995\u09B0\u09C1\u09A8",field_name_translations:"\u0995\u09CD\u09B7\u09C7\u09A4\u09CD\u09B0\u09C7\u09B0 \u09A8\u09BE\u09AE \u0985\u09A8\u09C1\u09AC\u09BE\u09A6",enter_password_to_enable_tfa:"\u099F\u09C1-\u09AB\u09CD\u09AF\u09BE\u0995\u09CD\u099F\u09B0 \u09AA\u09CD\u09B0\u09AE\u09BE\u09A3\u09C0\u0995\u09B0\u09A3 \u09B8\u0995\u09CD\u09B7\u09AE \u0995\u09B0\u09A4\u09C7 \u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09BE\u09B8\u0993\u09AF\u09BC\u09BE\u09B0\u09CD\u09A1 \u09B2\u09BF\u0996\u09C1\u09A8",add_field:"\u0995\u09CD\u09B7\u09C7\u09A4\u09CD\u09B0 \u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8",role_name:"\u09A8\u09BE\u09AE\u09AD\u09C2\u09AE\u09BF\u0995\u09BE",branch:"\u09B6\u09BE\u0996\u09BE",leaf:"\u09AA\u09BE\u09A4\u09BE",indeterminate:"\u0985\u09A8\u09BF\u09B0\u09CD\u09A6\u09BF\u09B7\u09CD\u099F",edit_collection:"\u09B8\u0982\u0997\u09CD\u09B0\u09B9 \u09B8\u09AE\u09CD\u09AA\u09BE\u09A6\u09A8\u09BE \u0995\u09B0\u09C1\u09A8",exclusive:"\u098F\u0995\u099A\u09C7\u099F\u09BF\u09AF\u09BC\u09BE",children:"\u09B6\u09BF\u09B6\u09C1",fields:{directus_settings:{module_bar:"\u09AE\u09A1\u09BF\u0989\u09B2 \u09AC\u09BE\u09B0"},directus_fields:{translation:"\u0995\u09CD\u09B7\u09C7\u09A4\u09CD\u09B0\u09C7\u09B0 \u09A8\u09BE\u09AE \u0985\u09A8\u09C1\u09AC\u09BE\u09A6"},directus_roles:{name:"\u09A8\u09BE\u09AE\u09AD\u09C2\u09AE\u09BF\u0995\u09BE"}}},a=e.avatar,i=e.default_provider,r=e.published,d=e.draft,t=e.archived,l=e.modules,_=e.module_bar,n=e.tile_size,o=e.edit_field,v=e.conditions,s=e.maps,f=e.item_creation,c=e.item_revision,m=e.enter_a_name,u=e.duplicate_field,h=e.half_width,p=e.full_width,b=e.group,w=e.and,g=e.or,x=e.fill_width,z=e.field_name_translations,j=e.enter_password_to_enable_tfa,k=e.add_field,q=e.role_name,y=e.branch,A=e.leaf,B=e.indeterminate,C=e.edit_collection,D=e.exclusive,E=e.children,F=e.fields;export{k as add_field,w as and,t as archived,a as avatar,y as branch,E as children,v as conditions,e as default,i as default_provider,d as draft,u as duplicate_field,C as edit_collection,o as edit_field,m as enter_a_name,j as enter_password_to_enable_tfa,D as exclusive,z as field_name_translations,F as fields,x as fill_width,p as full_width,b as group,h as half_width,B as indeterminate,f as item_creation,c as item_revision,A as leaf,s as maps,_ as module_bar,l as modules,g as or,r as published,q as role_name,n as tile_size};
@@ -1,4 +0,0 @@
1
- import{a as n,o as c,b as u,w as o,g as e,e as s,B as t}from"./runtime-core.esm-bundler.b1f35d24.js";var l={};const d={class:"markdown-body"},p=e("h2",{id:"1.-confirm-minimum-requirements"},[t("1. Confirm Minimum Requirements "),e("a",{class:"header-anchor",href:"#1.-confirm-minimum-requirements"},"#")],-1),h=e("p",null,[t("Directus requires two things to run: "),e("a",{href:"https://nodejs.dev",target:"_blank",rel:"noopener noreferrer"},"Node.js"),t(" and a Database. For both these system requirements, we aim to support the current LTS release (and newer).")],-1),_=e("p",null,"To run Directus, you currently need Node 12.20 or newer, and one of the following databases:",-1),m=e("table",null,[e("thead",null,[e("tr",null,[e("th",null,"Database"),e("th",null,"Version")])]),e("tbody",null,[e("tr",null,[e("td",null,"PostgreSQL"),e("td",null,"10+")]),e("tr",null,[e("td",null,[t("MySQL "),e("sup",null,"[1]")]),e("td",null,"5.7.8+ / 8+")]),e("tr",null,[e("td",null,"SQLite"),e("td",null,"3+")]),e("tr",null,[e("td",null,"MS SQL Server"),e("td",null,"13+")]),e("tr",null,[e("td",null,[t("MariaDB "),e("sup",null,"[2]")]),e("td",null,"10.2.7+")]),e("tr",null,[e("td",null,[t("CockroachDB "),e("sup",null,"[2]")]),e("td",null,"21.1.13+")]),e("tr",null,[e("td",null,[t("OracleDB"),e("sup",null,"[2]"),t(),e("sup",null,"[3]")]),e("td",null,"19+")])])],-1),f=e("p",null,[e("sup",null,"[1]"),t(" MySQL 8+ requires "),e("a",{href:"https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatible-connectors",target:"_blank",rel:"noopener noreferrer"},"mysql_native_password"),t(" to be enabled"),e("br"),e("sup",null,"[2]"),t(" Older versions may work, but aren\u2019t officially supported. Use at your own risk. "),e("br"),e("sup",null,"[3]"),t(" Make sure to install "),e("code",{class:""},"node-oracledb"),t(" and it\u2019s system dependencies when using OracleDB")],-1),g=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Variants"),e("p",null,[t("In addition to the databases above, other variants are also supported, including "),e("strong",null,"AWS Aurora"),t(" (MySQL), "),e("strong",null,"AWS Redshift"),t(" (PostgreSQL), "),e("strong",null,"Azure SQL"),t(" (MS SQL).")])],-1),y=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Apple Silicon"),e("p",null,[t("When installing Directus on an Apple-made ARM CPU, make sure you have "),e("code",{class:""},"libvips"),t(" installed. See "),e("a",{href:"https://sharp.pixelplumbing.com/install#apple-m1",target:"_blank",rel:"noopener noreferrer"},"Apple M1"),t(".")])],-1),b=e("h2",{id:"2.-create-a-project"},[t("2. Create a Project "),e("a",{class:"header-anchor",href:"#2.-create-a-project"},"#")],-1),v=e("p",null,"Navigate to the directory where you wish to create a new Directus project. The new project and directory will be created inside the current directory. Create a new Directus project by running the following npm command.",-1),w=e("pre",null,[e("code",{class:"language-bash"},`npm init directus-project my-project
2
- `)],-1),j=e("div",{class:"warning hint"},[e("p",null,"Except for SQLite, the database must already be running before creating your Directus project.")],-1),S=e("h2",{id:"3.-start-your-project"},[t("3. Start your Project "),e("a",{class:"header-anchor",href:"#3.-start-your-project"},"#")],-1),k=e("p",null,[t("To start Directus, navigate to the project directory, "),e("em",null,"my-project"),t(".")],-1),D=e("pre",null,[e("code",{class:"language-bash"},[e("span",{class:"hljs-built_in"},"cd"),t(` my-project
3
- `)])],-1),L=e("p",null,"Run the following command in your project directory.",-1),C=e("pre",null,[e("code",{class:"language-bash"},`npx directus start
4
- `)],-1),M=e("h2",{id:"4.-view-your-project"},[t("4. View your Project "),e("a",{class:"header-anchor",href:"#4.-view-your-project"},"#")],-1),x=e("p",null,[t("The default port used by Directus is 8055. To view your project locally, go to "),e("a",{href:"http://localhost:8055",target:"_blank",rel:"noopener noreferrer"},"http://localhost:8055"),t(" in your browser.")],-1),P={class:"tip hint"},Q=e("div",{class:"hint-title"},"Changing Port",-1),B=t("If you want to use a different port, use "),q=t("the "),A=e("code",{class:""},"PORT",-1),T=t(" environment variable"),I=t("."),N=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},".env Permissions"),e("p",null,[t("By default, the "),e("code",{class:""},"create-directus-project"),t(" tool will set the file permissions of the generated "),e("code",{class:""},".env"),t(" to "),e("code",{class:""},"-rw-r-----"),t(" (0640). If you run Directus from a separate user on your machine, make sure these permissions are correct.")])],-1),V=e("h2",{id:"configure-%2F-update-%2F-upgrade-your-project"},[t("Configure / Update / Upgrade your Project "),e("a",{class:"header-anchor",href:"#configure-%2F-update-%2F-upgrade-your-project"},"#")],-1),F=t("See the "),R=t("Updates & Migrations"),U=t(" to learn how to maintain your project moving forward."),O={title:"Installing from CLI",modularExtension:!1},E={name:"cli",setup(W,{expose:a}){return a({frontmatter:{title:"Installing from CLI",modularExtension:!1}}),(z,G)=>{const r=n("router-link"),i=n("docswrapper");return c(),u(i,{frontmatter:O},{default:o(()=>[e("div",d,[p,h,_,m,f,g,y,b,v,w,j,S,k,D,L,C,M,x,e("div",P,[Q,e("p",null,[B,s(r,{to:"/docs/configuration/config-options/#general"},{default:o(()=>[q,A,T]),_:1}),I])]),N,V,e("p",null,[F,s(r,{to:"/docs/configuration/upgrades-migrations/"},{default:o(()=>[R]),_:1}),U])])]),_:1})}}};typeof l=="function"&&l(E);export{E as default,O as frontmatter};
@@ -1,19 +0,0 @@
1
- import{a as n,o as r,b as d,w as s,g as e,e as a,B as t}from"./runtime-core.esm-bundler.b1f35d24.js";var i={};const h={class:"markdown-body"},u=e("blockquote",null,[e("p",null,"Directus has two command line interfaces (CLI) that you can use for various actions. One is used for server-side actions that relate to your on-prem instance, like migrating the database or resetting a user, while the other allows you to interact with a Directus instance as you would with an SDK.")],-1),p=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#server"},"Server")]),e("li",null,[e("a",{href:"#client"},"Client")])])])],-1),_=e("h2",{id:"server"},[t("Server "),e("a",{class:"header-anchor",href:"#server"},"#")],-1),m=e("p",null,[t("For server-side CLI, all functionality can be accessed by running "),e("code",{class:""},"npx directus <command>"),t(" in your project folder.")],-1),f=e("h3",{id:"initialize-a-new-project"},[t("Initialize a New Project "),e("a",{class:"header-anchor",href:"#initialize-a-new-project"},"#")],-1),g=e("pre",null,[e("code",{class:""},`npx directus init
2
- `)],-1),y=e("p",null,[t("Will install the required database driver, and create a "),e("code",{class:""},".env"),t(" file based on the inputted values.")],-1),w=e("h3",{id:"bootstrap-a-project"},[t("Bootstrap a Project "),e("a",{class:"header-anchor",href:"#bootstrap-a-project"},"#")],-1),b=e("pre",null,[e("code",{class:""},`npx directus bootstrap
3
- `)],-1),v=e("p",null,[t("Will use an existing "),e("code",{class:""},".env"),t(" file (or existing environment variables) to either install the database (if it\u2019s empty) or migrate it to the latest version (if it already exists and has missing migrations).")],-1),x=t("This is very useful to use in environments where you\u2019re doing standalone automatic deployments, like a multi-container Kubernetes configuration, or a similar approach on "),T=t("DigitalOcean App Platform"),k=t(", "),I=t("Google Cloud Platform"),D=t(" or "),C=t("AWS Elastic Beanstalk"),j={class:"tip hint"},L=e("div",{class:"hint-title"},"First User",-1),S=t("You can use the "),Y=e("code",{class:""},"ADMIN_EMAIL",-1),A=t(" and "),M=e("code",{class:""},"ADMIN_PASSWORD",-1),N=t(" environment variables to automatically provision the first user on first creation using the "),q=e("code",{class:""},"bootstrap",-1),B=t(" command. See "),U=t("Environment Variables"),O=t(" for more information."),E=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Skip Admin User/Role"),e("p",null,[t("You can pass the "),e("code",{class:""},"--skipAdminInit"),t(" option to "),e("code",{class:""},"bootstrap"),t(", if you\u2019re creating your Admin role/user in another way (with a custom migration or an external service, for example).")])],-1),F=e("h3",{id:"install-the-database"},[t("Install the Database "),e("a",{class:"header-anchor",href:"#install-the-database"},"#")],-1),P=e("pre",null,[e("code",{class:""},`npx directus database install
4
- `)],-1),W=e("p",null,[t("Installs the initial Directus system tables on an empty database. Used internally by "),e("code",{class:""},"bootstrap"),t(".")],-1),z=e("p",null,[t("It should be used only in specific cases, e.g. when you want to run something between "),e("code",{class:""},"install"),t(" and "),e("code",{class:""},"migrate"),t(". You probably should call "),e("code",{class:""},"directus database migrate:latest"),t(" afterwards manually.")],-1),V=e("p",null,[t("You may want to use "),e("code",{class:""},"directus bootstrap"),t(" instead.")],-1),J=e("h3",{id:"upgrade-the-database"},[t("Upgrade the Database "),e("a",{class:"header-anchor",href:"#upgrade-the-database"},"#")],-1),R=e("pre",null,[e("code",{class:""},`npx directus database migrate:latest
5
- npx directus database migrate:up
6
- npx directus database migrate:down
7
- `)],-1),K=e("p",null,[t("Migrate the database up/down to match the versions of Directus. Once you update Directus itself, make sure to run "),e("code",{class:""},"npx directus database migrate:latest"),t(" (or "),e("code",{class:""},"npx directus bootstrap"),t(") to update your database.")],-1),$=e("h3",{id:"migrate-schema-to-a-different-environment"},[t("Migrate Schema to a different Environment "),e("a",{class:"header-anchor",href:"#migrate-schema-to-a-different-environment"},"#")],-1),G=e("p",null,"To move your configured data model between Directus instances, you can use the schema \u201Csnapshot\u201D and \u201Capply\u201D commands.",-1),H=e("h4",{id:"snapshot-the-data-model"},[t("Snapshot the Data Model "),e("a",{class:"header-anchor",href:"#snapshot-the-data-model"},"#")],-1),Q=e("p",null,"Directus can automatically generate a snapshot of your current data model in YAML or JSON format. This includes all collections, fields, and relations, and their configuration. This snapshot can be checked in version control and shared with your team. To generate the snapshot, run",-1),X=e("pre",null,[e("code",{class:""},`npx directus schema snapshot ./snapshot.yaml
8
- `)],-1),Z=e("p",null,"To run non-interactively (e.g. when running in a CI/CD workflow), run",-1),ee=e("pre",null,[e("code",{class:""},`npx directus schema snapshot --yes ./snapshot.yaml
9
- `)],-1),te=e("p",null,"Note, that this will force overwrite existing snapshot files.",-1),se=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Date-based snapshots"),e("p",null,[t("To keep multiple snapshot organized by date, create a folder "),e("code",{class:""},"snapshots"),t(" in your project root directory add the following custom script to your "),e("code",{class:""},"package.json"),t(":")]),e("pre",null,[e("code",{class:""},`"create-snapshot": "npx directus schema snapshot ./snapshots/\\"$(date \\"+%F\\")\\"-snapshot-\\"$(date \\"+%s\\")\\".yaml"
10
- `)]),e("p",null,[t("When you run the command via "),e("code",{class:""},"npm run create-snapshot"),t(" it will create a new snapshot with the following naming schema: "),e("code",{class:""},"[YYYY-MM-DD]-snapshot-[timestamp].yaml"),t(". This command can be run e.g by your deployment pipeline before each deploy on your server to keep a schema backup.")])],-1),oe=e("h4",{id:"applying-a-snapshot"},[t("Applying a Snapshot "),e("a",{class:"header-anchor",href:"#applying-a-snapshot"},"#")],-1),ae=e("p",null,"To make a different instance up to date with the latest changes in your data model, you can apply the snapshot. By applying the snapshot, Directus will auto-detect the changes required to make the current instance up to date with the proposed data model in the snapshot file, and will run the required migrations to the database to make it match the snapshot.",-1),ne=e("p",null,"To apply the generated snapshot, run",-1),ie=e("pre",null,[e("code",{class:""},`npx directus schema apply ./path/to/snapshot.yaml
11
- `)],-1),ce=e("p",null,"To run non-interactively (e.g. when running in a CI/CD workflow), run",-1),le=e("pre",null,[e("code",{class:""},`npx directus schema apply --yes ./path/to/snapshot.yaml
12
- `)],-1),re=e("p",null,"To diff the schema and database and print out the planned changes, run",-1),de=e("pre",null,[e("code",{class:""},`npx directus schema apply --dry-run ./path/to/snapshot.yaml
13
- `)],-1),he=e("h3",{id:"creating-users"},[t("Creating Users "),e("a",{class:"header-anchor",href:"#creating-users"},"#")],-1),ue=e("p",null,"To create a new user with a specific role, run",-1),pe=e("pre",null,[e("code",{class:""},`npx directus users create --email <user-email> --password <password> --role <role-uuid>
14
- `)],-1),_e=e("h4",{id:"updating-user-password"},[t("Updating User Password "),e("a",{class:"header-anchor",href:"#updating-user-password"},"#")],-1),me=e("p",null,"To update the password of an existing user, run",-1),fe=e("pre",null,[e("code",{class:""},`npx directus users passwd --email <user-email> --password <new-password>
15
- `)],-1),ge=e("h3",{id:"creating-roles"},[t("Creating Roles "),e("a",{class:"header-anchor",href:"#creating-roles"},"#")],-1),ye=e("p",null,"To create a new role, run",-1),we=e("pre",null,[e("code",{class:""},`npx directus roles create --role <role-name>
16
- `)],-1),be=t("These roles are created with the "),ve=t("minimum permissions required"),xe=t(" to properly access the App by default."),Te=e("p",null,[t("To create a new role with admin access, set the "),e("code",{class:""},"--admin"),t(" flag to "),e("code",{class:""},"true"),t(", such as")],-1),ke=e("pre",null,[e("code",{class:""},`npx directus roles create --role <role-name> --admin true
17
- `)],-1),Ie=e("h3",{id:"count-items-in-a-collection"},[t("Count Items in a Collection "),e("a",{class:"header-anchor",href:"#count-items-in-a-collection"},"#")],-1),De=e("p",null,"To count the amount of items in a given collection, run",-1),Ce=e("pre",null,[e("code",{class:""},`npx directus count <collection-name>
18
- `)],-1),je=e("hr",null,null,-1),Le=e("h2",{id:"client"},[t("Client "),e("a",{class:"header-anchor",href:"#client"},"#")],-1),Se=e("p",null,[t("For the client-side CLI, all functionality can be accessed by running "),e("code",{class:""},"npx directusctl <command>"),t(". You can also install "),e("code",{class:""},"@directus/cli"),t(" on your project dependencies or globally on your machine. Note that if you run "),e("code",{class:""},"directusctl"),t(" (installed globally) in a folder containing a project that has a version of "),e("code",{class:""},"@directus/cli"),t(" installed, the running global CLI will forward it\u2019s execution to the local installed version instead.")],-1),Ye=e("h3",{id:"help-%26-documentation"},[t("Help & Documentation "),e("a",{class:"header-anchor",href:"#help-%26-documentation"},"#")],-1),Ae=e("p",null,[t("The documentation for all commands can be accessed through the CLI itself. You can list all the available commands through "),e("code",{class:""},"directusctl --help"),t(" command. If you want help for a specific command you can use "),e("code",{class:""},"directusctl <command> --help"),t(" instead.")],-1),Me=e("h3",{id:"instances"},[t("Instances "),e("a",{class:"header-anchor",href:"#instances"},"#")],-1),Ne=e("p",null,[t("Most client-side CLI commands needs a running Directus instance in order to work. To connect the CLI to an instance, you can use "),e("code",{class:""},"directusctl instance connect"),t(" command. These instance\u2019s configs are going to be saved on "),e("code",{class:""},"~/.directus"),t(" folder.")],-1),qe=e("p",null,[t("To manage the connected instances, you can use "),e("code",{class:""},"directusctl instance <command>"),t(" commands.")],-1),Be=e("h4",{id:"selecting-instances"},[t("Selecting instances "),e("a",{class:"header-anchor",href:"#selecting-instances"},"#")],-1),Ue=e("p",null,[t("By default, commands will try using an instance named "),e("code",{class:""},"default"),t(" when executing commands.")],-1),Oe=e("p",null,[t("If you want to change which instance you want to use, either pass "),e("code",{class:""},"--instance <name>"),t(" to the command, or configure "),e("code",{class:""},"instance"),t(" variable on your project\u2019s Directus config file.")],-1),Ee=e("p",null,"For example:",-1),Fe=e("blockquote",null,[e("p",null,".directus.yml")],-1),Pe=e("pre",null,[e("code",{class:"language-yml"},[e("span",{class:"hljs-attr"},"instance:"),t(),e("span",{class:"hljs-string"},"my-project"),t(`
19
- `)])],-1),We=e("h3",{id:"i%2Fo"},[t("I/O "),e("a",{class:"header-anchor",href:"#i%2Fo"},"#")],-1),ze=e("p",null,[t("The CLI is designed with ease of use and automation in mind, this means that you can change the way the output is made by setting how you want the data to be written to the terminal. We currently support three formats, "),e("code",{class:""},"table"),t(" (the default one), "),e("code",{class:""},"json"),t(" and "),e("code",{class:""},"yaml"),t(".")],-1),Ve=e("p",null,[t("This makes it easier to parse and use data from Directus with other tools like "),e("code",{class:""},"jq"),t(", "),e("code",{class:""},"yq"),t(", "),e("code",{class:""},"grep"),t(" or any other tools that accepts data from "),e("code",{class:""},"stdin")],-1),Je=e("p",null,[t("It\u2019s also worth mentioning that everything is data. Try for example running "),e("code",{class:""},"directusctl --help --format=json"),t(".")],-1),Re=e("h4",{id:"table"},[t("Table "),e("a",{class:"header-anchor",href:"#table"},"#")],-1),Ke=e("p",null,"The default output format. This is the \u201Cpretty\u201D output, you\u2019ll most likely want to use this if you\u2019re not dealing with data in a way you need to pipe it to another command and/or store it for parsing.",-1),$e=e("p",null,"This output will output colors and highlight content if it detects you\u2019re running in TTL.",-1),Ge=e("h4",{id:"json"},[t("JSON "),e("a",{class:"header-anchor",href:"#json"},"#")],-1),He=e("p",null,"This format will output JSON notation strings to your terminal. By default if TTY is detected, it will highlight (can be turned off with special flags) and prettify the output to make it easier to read.",-1),Qe=e("p",null,[t("Useful when you need to parse data using tools like "),e("code",{class:""},"jq"),t(" for example.")],-1),Xe=e("h4",{id:"yaml"},[t("YAML "),e("a",{class:"header-anchor",href:"#yaml"},"#")],-1),Ze=e("p",null,"This format will output YAML strings to your terminal. By default if TTY is detected, it will highlight (can be turned off with special flags) and prettify the output to make it easier to read.",-1),et=e("p",null,[t("Useful when you need to parse data using tools like "),e("code",{class:""},"jq"),t(" for example.")],-1),tt=t(" ### Extending To find how you can extend the CLI and write custom commands, check how we make Directus highly extensible on our [extensions overview page](/concepts/extensions/). "),st={title:"Command Line Interface",modularExtension:!1},ot={name:"cli",setup(at,{expose:c}){return c({frontmatter:{title:"Command Line Interface",modularExtension:!1}}),(nt,it)=>{const o=n("router-link"),l=n("docswrapper");return r(),d(l,{frontmatter:st},{default:s(()=>[e("div",h,[u,p,_,m,f,g,y,w,b,v,e("p",null,[x,a(o,{to:"/docs/self-hosted/installation/digitalocean-app-platform/"},{default:s(()=>[T]),_:1}),k,a(o,{to:"/docs/self-hosted/installation/gcp"},{default:s(()=>[I]),_:1}),D,a(o,{to:"/docs/self-hosted/installation/aws"},{default:s(()=>[C]),_:1})]),e("div",j,[L,e("p",null,[S,Y,A,M,N,q,B,a(o,{to:"/docs/configuration/config-options/#general"},{default:s(()=>[U]),_:1}),O])]),E,F,P,W,z,V,J,R,K,$,G,H,Q,X,Z,ee,te,se,oe,ae,ne,ie,ce,le,re,de,he,ue,pe,_e,me,fe,ge,ye,we,e("p",null,[be,a(o,{to:"/docs/configuration/users-roles-permissions/#configure-system-permissions"},{default:s(()=>[ve]),_:1}),xe]),Te,ke,Ie,De,Ce,je,Le,Se,Ye,Ae,Me,Ne,qe,Be,Ue,Oe,Ee,Fe,Pe,We,ze,Ve,Je,Re,Ke,$e,Ge,He,Qe,Xe,Ze,et,tt])]),_:1})}}};typeof i=="function"&&i(ot);export{ot as default,st as frontmatter};
@@ -1 +0,0 @@
1
- import{a,o as l,b as s,w as c,g as o,B as e}from"./runtime-core.esm-bundler.b1f35d24.js";var t={};const d=o("div",{class:"markdown-body"},[o("p",null,"Directus is available as a 1-click install on the Cloudron Store."),o("p",null,[o("a",{href:"https://cloudron.io/button.html?app=io.directus9.cloudronapp",target:"_blank",rel:"noopener noreferrer"},[o("img",{src:"https://cloudron.io/img/button.svg",alt:"Install"})])]),o("p",null,[e("The source code for the package can be found "),o("a",{href:"https://git.cloudron.io/cloudron/directus-app/",target:"_blank",rel:"noopener noreferrer"},"here"),e(".")]),o("p",null,[e("You can also test the directus installation on the demo Cloudron instance - "),o("a",{href:"https://my.demo.cloudron.io",target:"_blank",rel:"noopener noreferrer"},"https://my.demo.cloudron.io"),e(" (username: "),o("code",{class:""},"cloudron"),e(" password: "),o("code",{class:""},"cloudron"),e(").")])],-1),u={title:"Cloudron One-Click Install",modularExtension:!1},i={name:"cloudron",setup(p,{expose:r}){return r({frontmatter:{title:"Cloudron One-Click Install",modularExtension:!1}}),(m,_)=>{const n=a("docswrapper");return l(),s(n,{frontmatter:u},{default:c(()=>[d]),_:1})}}};typeof t=="function"&&t(i);export{i as default,u as frontmatter};
@@ -1 +0,0 @@
1
- import{a as c,o,b as n,w as l,g as e,B as s}from"./runtime-core.esm-bundler.b1f35d24.js";var a={};const i=e("div",{class:"markdown-body"},[e("blockquote",null,[e("p",null,[e("strong",null,"The core concepts behind Directus are simple, however the problems that must be solved to honor them can be remarkably complex."),s(" We strive to design and engineer the most elegant solutions possible, so that our codebase remains accessible.")])]),e("h2",{id:"monorepo"},[s("Monorepo "),e("a",{class:"header-anchor",href:"#monorepo"},"#")]),e("p",null,[s("The primary Directus repository is located at "),e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},[e("code",{class:""},"directus/directus")]),s(" and houses the Admin App (Vue.js 3 w/ Composition API), API (Node.js), project documentation (Markdown), API Specification (OpenAPI), and other smaller packages used internally. Directus follows a monorepo design similar to React or Babel \u2014 this page will outline our monorepo\u2019s design and structure.")]),e("h2",{id:"%2Fapi"},[e("code",{class:""},"/api"),s(),e("a",{class:"header-anchor",href:"#%2Fapi"},"#")]),e("p",null,"Contains the Directus API (REST+GraphQL), written in Node.js."),e("h4",{id:"%2Fapi%2Fsrc%2Fcli"},[e("code",{class:""},"/api/src/cli"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fcli"},"#")]),e("p",null,[s("The CLI commands and matching functions that the "),e("code",{class:""},"directus"),s(" package ships with.")]),e("h4",{id:"%2Fapi%2Fsrc%2Fcontrollers"},[e("code",{class:""},"/api/src/controllers"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fcontrollers"},"#")]),e("p",null,"Route handler controllers for the endpoints in the API."),e("h4",{id:"%2Fapi%2Fsrc%2Fdatabase"},[e("code",{class:""},"/api/src/database"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fdatabase"},"#")]),e("p",null,"Database manipulation abstraction, system migrations, and system data. Also where you\u2019d find the main query runner."),e("h4",{id:"%2Fapi%2Fsrc%2Fexceptions"},[e("code",{class:""},"/api/src/exceptions"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fexceptions"},"#")]),e("p",null,"Classes for the different errors the API is expected to throw. Used to set the HTTP status and error codes."),e("h4",{id:"%2Fapi%2Fsrc%2Fmiddleware"},[e("code",{class:""},"/api/src/middleware"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fmiddleware"},"#")]),e("p",null,"Various (express) routing middleware. Includes things like cache-checker, authenticator, etc."),e("h4",{id:"%2Fapi%2Fsrc%2Fservices"},[e("code",{class:""},"/api/src/services"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fservices"},"#")]),e("p",null,"Internal services. The main abstraction for interfacing with the data in the database. Both GraphQL and REST requests are \u201Ctranslated\u201D to use these services as the main logic in the platform."),e("h4",{id:"%2Fapi%2Fsrc%2Ftypes"},[e("code",{class:""},"/api/src/types"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Ftypes"},"#")]),e("p",null,"TypeScript types that are shared between the different parts of the API."),e("h4",{id:"%2Fapi%2Fsrc%2Futils"},[e("code",{class:""},"/api/src/utils"),s(),e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Futils"},"#")]),e("p",null,"Various utility functions."),e("h2",{id:"%2Fapp"},[e("code",{class:""},"/app"),s(),e("a",{class:"header-anchor",href:"#%2Fapp"},"#")]),e("p",null,"Contains the Directus Admin App, written in Vue.js 3 w/ the Composition API."),e("h4",{id:"%2Fapp%2Fpublic"},[e("code",{class:""},"/app/public"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fpublic"},"#")]),e("p",null,"Assets that are included with the app, but not bundled."),e("h4",{id:"%2Fapp%2Fsrc%2Fassets"},[e("code",{class:""},"/app/src/assets"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fassets"},"#")]),e("p",null,"Files that are included within the app. Are bundled / optimized in the build step."),e("h4",{id:"%2Fapp%2Fsrc%2Fcomponents"},[e("code",{class:""},"/app/src/components"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fcomponents"},"#")]),e("p",null,"(Base) components that are used across the platform. Contains \u201Cbasic building blocks\u201D like button, input, etc."),e("h4",{id:"%2Fapp%2Fsrc%2Fcomposables"},[e("code",{class:""},"/app/src/composables"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fcomposables"},"#")]),e("p",null,"Reusable parts of reactive logic that can be used between Vue components. Includes things reactively calculating time from now, fetching a single item, etc."),e("h4",{id:"%2Fapp%2Fsrc%2Fdirectives"},[e("code",{class:""},"/app/src/directives"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fdirectives"},"#")]),e("p",null,[s("Custom Vue directives (e.g. "),e("code",{class:""},"v-tooltip"),s(").")]),e("h4",{id:"%2Fapp%2Fsrc%2Finterfaces"},[e("code",{class:""},"/app/src/interfaces"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Finterfaces"},"#")]),e("p",null,"The core-included interfaces."),e("h4",{id:"%2Fapp%2Fsrc%2Flang"},[e("code",{class:""},"/app/src/lang"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Flang"},"#")]),e("p",null,[s("Translations abstraction, and language files. The language yaml files are maintained through "),e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"Crowdin"),s(".")]),e("h4",{id:"%2Fapp%2Fsrc%2Flayouts"},[e("code",{class:""},"/app/src/layouts"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Flayouts"},"#")]),e("p",null,"The core-included layouts."),e("h4",{id:"%2Fapp%2Fsrc%2Fmodules"},[e("code",{class:""},"/app/src/modules"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fmodules"},"#")]),e("p",null,"The core-included modules."),e("h4",{id:"%2Fapp%2Fsrc%2Froutes"},[e("code",{class:""},"/app/src/routes"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Froutes"},"#")]),e("p",null,"The routes in the app. Modules define their own routes, so this only includes the \u201Csystem\u201D things that don\u2019t belong to module, like login."),e("h4",{id:"%2Fapp%2Fsrc%2Fstores"},[e("code",{class:""},"/app/src/stores"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fstores"},"#")]),e("p",null,[e("a",{href:"https://pinia.esm.dev",target:"_blank",rel:"noopener noreferrer"},"Pinia"),s(" based stores used for global state tracking.")]),e("h4",{id:"%2Fapp%2Fsrc%2Fstyles"},[e("code",{class:""},"/app/src/styles"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fstyles"},"#")]),e("p",null,"Global styles in the app. Every component has their own component styles, these are just the global styles."),e("h4",{id:"%2Fapp%2Fsrc%2Ftypes"},[e("code",{class:""},"/app/src/types"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Ftypes"},"#")]),e("p",null,"TypeScript types that are shared between the different parts of the API."),e("h4",{id:"%2Fapp%2Fsrc%2Futils"},[e("code",{class:""},"/app/src/utils"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Futils"},"#")]),e("p",null,"Utility functions used in various parts of the app."),e("h4",{id:"%2Fapp%2Fsrc%2Fviews"},[e("code",{class:""},"/app/src/views"),s(),e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fviews"},"#")]),e("p",null,"The (two) main views used in the app: public / private. Also contains \u201Cinternal\u201D coupled components for those two views."),e("h2",{id:"%2Fdocs"},[e("code",{class:""},"/docs"),s(),e("a",{class:"header-anchor",href:"#%2Fdocs"},"#")]),e("p",null,"Contains all the platform\u2019s documentation, written in markdown with additional VuePress formatting."),e("h2",{id:"%2Fpackages"},[e("code",{class:""},"/packages"),s(),e("a",{class:"header-anchor",href:"#%2Fpackages"},"#")]),e("p",null,"The various sub-packages of the platform. Including the SDK, the file-storage adapters, title formatter, etc."),e("h2",{id:"%2Ftests"},[e("code",{class:""},"/tests"),s(),e("a",{class:"header-anchor",href:"#%2Ftests"},"#")]),e("p",null,"Tests are maintained on a per-package base. This folder contains the platform-wide (end-to-end) tests.")],-1),p={title:"Codebase Overview",modularExtension:!1},h={name:"codebase-overview",setup(d,{expose:r}){return r({frontmatter:{title:"Codebase Overview",modularExtension:!1}}),(F,u)=>{const t=c("docswrapper");return o(),n(t,{frontmatter:p},{default:l(()=>[i]),_:1})}}};typeof a=="function"&&a(h);export{h as default,p as frontmatter};
@@ -1 +0,0 @@
1
- :root{--md-text-color: #111827;--md-code-background: rgba(27,31,35,.05);--code-font: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}html.dark{--md-text-color: #e5e7eb;--md-code-background: rgba(229, 231, 235, .65)}.markdown-body{color:var(--md-text-color)}.markdown-body code{font-size:85%;padding:.2em .3em;margin-left:.1rem;margin-right:.1rem;background-color:var(--md-code-background);border-radius:3px;font-family:var(--code-font);color:#333;white-space:pre}.markdown-body blockquote{margin-top:0;margin-bottom:.25rem;padding:0 1em;color:#6a73737d;border-left:.25rem solid #dfe2e5}.markdown-body a{cursor:pointer}.markdown-body a:hover{background-color:#00000080;font-weight:700;border-radius:.2rem .4rem}
@@ -1,106 +0,0 @@
1
- import{a as n,o as r,b as h,w as t,g as e,e as a,B as s}from"./runtime-core.esm-bundler.b1f35d24.js";var o={};const d={class:"markdown-body"},p={class:"two-up"},_={class:"left"},u=s("Collections are the individual collections of items, similar to tables in a database. Changes to collections will alter the schema of the database. "),g=s("Learn more about Collections"),m=s("."),f=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-collection-object"},"The Collection Object")]),e("li",null,[e("a",{href:"#list-collections"},"List Collections")]),e("li",null,[e("a",{href:"#retrieve-a-collection"},"Retrieve a Collection")]),e("li",null,[e("a",{href:"#create-a-collection"},"Create a Collection")]),e("li",null,[e("a",{href:"#update-a-collection"},"Update a Collection")]),e("li",null,[e("a",{href:"#delete-a-collection"},"Delete a Collection")])])])])],-1),j=e("hr",null,null,-1),y=e("h2",{id:"the-collection-object"},[s("The Collection Object "),e("a",{class:"header-anchor",href:"#the-collection-object"},"#")],-1),b={class:"two-up"},v={class:"left"},q=e("div",{class:"definitions"},[e("p",null,[e("code",{class:""},"collection"),s(),e("strong",null,"string"),e("br"),s(" Name of the collection. This matches the table name in the database.")])],-1),w=e("h4",{id:"meta"},[s("Meta "),e("a",{class:"header-anchor",href:"#meta"},"#")],-1),T=e("p",null,"Directus metadata, primarily used in the Admin App.",-1),x={class:"definitions"},A=e("p",null,[e("code",{class:""},"collection"),s(),e("strong",null,"string"),e("br"),s(" Name of the collection. This matches the table name in the database.")],-1),C=e("p",null,[e("code",{class:""},"icon"),s(),e("strong",null,"string"),e("br"),s(" Icon displayed in the Admin App when working with this collection.")],-1),E=e("p",null,[e("code",{class:""},"note"),s(),e("strong",null,"string"),e("br"),s(" Short description displayed in the Admin App.")],-1),S=e("p",null,[e("code",{class:""},"display_template"),s(),e("strong",null,"string"),e("br"),s(" How items in this collection should be displayed when viewed relationally in the Admin App.")],-1),k=e("p",null,[e("code",{class:""},"hidden"),s(),e("strong",null,"boolean"),e("br"),s(" Whether or not this collection is hidden in the Admin App.")],-1),P=e("p",null,[e("code",{class:""},"singleton"),s(),e("strong",null,"boolean"),e("br"),s(" Whether or not this collection is treated as a singleton.")],-1),R=e("p",null,[e("code",{class:""},"translations"),s(),e("strong",null,"array"),e("br"),s(" How this collection\u2019s name is displayed in the different languages in the Admin App.")],-1),L=e("p",null,[e("code",{class:""},"archive_field"),s(),e("strong",null,"string"),e("br"),s(" What field in the collection holds the archived state.")],-1),O=e("p",null,[e("code",{class:""},"archive_value"),s(),e("strong",null,"string"),e("br"),s(" What value the archive field should be set to when archiving an item.")],-1),Q=e("p",null,[e("code",{class:""},"unarchive_value"),s(),e("strong",null,"string"),e("br"),s(" What value the archive field should be set to when unarchiving an item.")],-1),W=e("p",null,[e("code",{class:""},"archive_app_filter"),s(),e("strong",null,"boolean"),e("br"),s(" Whether or not the Admin App should allow the user to view archived items.")],-1),B=e("p",null,[e("code",{class:""},"sort_field"),s(),e("strong",null,"boolean"),e("br"),s(" What field holds the sort value on the collection. The Admin App uses this to allow drag-and-drop manual sorting.")],-1),D=e("code",{class:""},"accountability",-1),G=s(),H=e("strong",null,"string",-1),I=e("br",null,null,-1),N=s(" What data is tracked. One of "),M=e("code",{class:""},"all",-1),U=s(", "),V=e("code",{class:""},"activity",-1),Y=s(". See "),z=s("Accountability"),F=s(" for more information."),J=e("code",{class:""},"item_duplication_fields",-1),K=s(),X=e("strong",null,"array",-1),Z=e("br",null,null,-1),$=s(" What fields are duplicated during \u201CSave as copy\u201D action of an item in this collection. See "),ee=s("Duplication"),se=s(" for more information."),te=e("code",{class:""},"group",-1),le=s(),ae=e("strong",null,"string",-1),ne=e("br",null,null,-1),oe=s(" The name of the parent collection. This is used in "),ce=s("grouping/nesting of collections"),ie=s("."),re=e("code",{class:""},"sort",-1),he=s(),de=e("strong",null,"number",-1),pe=e("br",null,null,-1),_e=s(" What sort order of the collection relative to other collections of the same level. This is used in "),ue=s("sorting of collections"),ge=s("."),me=e("p",null,[e("code",{class:""},"collapse"),s(),e("strong",null,"string"),e("br"),s(" What is the default behavior of this collection or \u201Cfolder\u201D collection when it has nested collections. One of "),e("code",{class:""},"open"),s(", "),e("code",{class:""},"closed"),s(", "),e("code",{class:""},"locked"),s(".")],-1),fe=e("h4",{id:"schema"},[s("Schema "),e("a",{class:"header-anchor",href:"#schema"},"#")],-1),je=e("p",null,"\u201CRaw\u201D database information. Based on the database vendor used, different information might be returned. The following are available for all drivers.",-1),ye=e("div",{class:"definitions"},[e("p",null,[e("code",{class:""},"name"),s(),e("strong",null,"string"),e("br"),s(" The table name.")]),e("p",null,[e("code",{class:""},"comment"),s(),e("strong",null,"string"),e("br"),s(" The table comment.")])],-1),be={class:"tip hint"},ve=s("\u201Cfolder\u201D collections do not hold any data"),qe=s(", hence their schema would be "),we=e("code",{class:""},"null",-1),Te=s("."),xe=e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[s(`{
2
- `),e("span",{class:"hljs-attr"},'"collection"'),s(": "),e("span",{class:"hljs-string"},'"articles"'),s(`,
3
- `),e("span",{class:"hljs-attr"},'"meta"'),s(`: {
4
- `),e("span",{class:"hljs-attr"},'"collection"'),s(": "),e("span",{class:"hljs-string"},'"articles"'),s(`,
5
- `),e("span",{class:"hljs-attr"},'"icon"'),s(": "),e("span",{class:"hljs-string"},'"article"'),s(`,
6
- `),e("span",{class:"hljs-attr"},'"note"'),s(": "),e("span",{class:"hljs-string"},'"Blog posts"'),s(`,
7
- `),e("span",{class:"hljs-attr"},'"display_template"'),s(": "),e("span",{class:"hljs-string"},'"{{ title }}"'),s(`,
8
- `),e("span",{class:"hljs-attr"},'"hidden"'),s(": "),e("span",{class:"hljs-literal"},"false"),s(`,
9
- `),e("span",{class:"hljs-attr"},'"singleton"'),s(": "),e("span",{class:"hljs-literal"},"false"),s(`,
10
- `),e("span",{class:"hljs-attr"},'"translations"'),s(`: [
11
- {
12
- `),e("span",{class:"hljs-attr"},'"language"'),s(": "),e("span",{class:"hljs-string"},'"en-US"'),s(`,
13
- `),e("span",{class:"hljs-attr"},'"translation"'),s(": "),e("span",{class:"hljs-string"},'"Articles"'),s(`
14
- },
15
- {
16
- `),e("span",{class:"hljs-attr"},'"language"'),s(": "),e("span",{class:"hljs-string"},'"nl-NL"'),s(`,
17
- `),e("span",{class:"hljs-attr"},'"translation"'),s(": "),e("span",{class:"hljs-string"},'"Artikelen"'),s(`
18
- }
19
- ],
20
- `),e("span",{class:"hljs-attr"},'"archive_field"'),s(": "),e("span",{class:"hljs-string"},'"status"'),s(`,
21
- `),e("span",{class:"hljs-attr"},'"archive_value"'),s(": "),e("span",{class:"hljs-string"},'"archived"'),s(`,
22
- `),e("span",{class:"hljs-attr"},'"unarchive_value"'),s(": "),e("span",{class:"hljs-string"},'"draft"'),s(`,
23
- `),e("span",{class:"hljs-attr"},'"archive_app_filter"'),s(": "),e("span",{class:"hljs-literal"},"true"),s(`,
24
- `),e("span",{class:"hljs-attr"},'"sort_field"'),s(": "),e("span",{class:"hljs-string"},'"sort"'),s(`,
25
- `),e("span",{class:"hljs-attr"},'"item_duplication_fields"'),s(": "),e("span",{class:"hljs-literal"},"null"),s(`,
26
- `),e("span",{class:"hljs-attr"},'"sort"'),s(": "),e("span",{class:"hljs-number"},"1"),s(`
27
- },
28
- `),e("span",{class:"hljs-attr"},'"schema"'),s(`: {
29
- `),e("span",{class:"hljs-attr"},'"name"'),s(": "),e("span",{class:"hljs-string"},'"pages"'),s(`,
30
- `),e("span",{class:"hljs-attr"},'"comment"'),s(": "),e("span",{class:"hljs-literal"},"null"),s(`
31
- }
32
- }
33
- `)])])],-1),Ae=e("hr",null,null,-1),Ce=e("h2",{id:"list-collections"},[s("List Collections "),e("a",{class:"header-anchor",href:"#list-collections"},"#")],-1),Ee=e("p",null,"List the available collections.",-1),Se={class:"two-up"},ke=e("div",{class:"left"},[e("h3",{id:"query-parameters"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters"},"#")]),e("p",null,"This endpoint doesn\u2019t currently support any query parameters."),e("h3",{id:"returns"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns"},"#")]),e("p",null,[s("An array of "),e("a",{href:"#the-collection-object"},"collection objects"),s(".")])],-1),Pe={class:"right"},Re=e("h3",{id:"rest-api"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api"},"#")],-1),Le=e("pre",null,[e("code",{class:""},`GET /collections
34
- SEARCH /collections
35
- `)],-1),Oe=s("Learn more about SEARCH ->"),Qe=e("h3",{id:"graphql"},[s("GraphQL "),e("a",{class:"header-anchor",href:"#graphql"},"#")],-1),We=e("pre",null,[e("code",{class:""},`POST /graphql/system
36
- `)],-1),Be=e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),s(` {
37
- collections: [directus_collections]
38
- }
39
- `)])],-1),De=e("h5",{id:"example"},[s("Example "),e("a",{class:"header-anchor",href:"#example"},"#")],-1),Ge=e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"query"),s(` {
40
- collections {
41
- `),e("span",{class:"hljs-keyword"},"..."),s(`
42
- }
43
- }
44
- `)])],-1),He=e("hr",null,null,-1),Ie=e("h2",{id:"retrieve-a-collection"},[s("Retrieve a Collection "),e("a",{class:"header-anchor",href:"#retrieve-a-collection"},"#")],-1),Ne=e("p",null,"Retrieve a single collection by table name.",-1),Me=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"query-parameters-2"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-2"},"#")]),e("p",null,"This endpoint doesn\u2019t currently support any query parameters."),e("h3",{id:"returns-2"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-2"},"#")]),e("p",null,[s("A "),e("a",{href:"#the-collection-object"},"collection object"),s(".")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-2"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-2"},"#")]),e("pre",null,[e("code",{class:""},`GET /collections/:collection
45
- `)]),e("h5",{id:"example-2"},[s("Example "),e("a",{class:"header-anchor",href:"#example-2"},"#")]),e("pre",null,[e("code",{class:""},`GET /collections/articles
46
- `)]),e("h3",{id:"graphql-2"},[s("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-2"},"#")]),e("pre",null,[e("code",{class:""},`POST /graphql/system
47
- `)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),s(` {
48
- collections_by_name(name:`),e("span",{class:"hljs-type"}," String"),s(`!): directus_collections
49
- }
50
- `)])]),e("h5",{id:"example-3"},[s("Example "),e("a",{class:"header-anchor",href:"#example-3"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"query"),s(` {
51
- collections_by_name(name: `),e("span",{class:"hljs-string"},'"articles"'),s(`) {
52
- `),e("span",{class:"hljs-keyword"},"..."),s(`
53
- }
54
- }
55
- `)])])])],-1),Ue=e("hr",null,null,-1),Ve=e("h2",{id:"create-a-collection"},[s("Create a Collection "),e("a",{class:"header-anchor",href:"#create-a-collection"},"#")],-1),Ye=e("p",null,"Create a new Collection. This will create a new table in the database as well.",-1),ze={class:"two-up"},Fe={class:"left"},Je=e("h3",{id:"query-parameters-3"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-3"},"#")],-1),Ke=e("p",null,"This endpoint doesn\u2019t currently support any query parameters.",-1),Xe=e("h3",{id:"request-body"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body"},"#")],-1),Ze=e("p",null,[s("The "),e("code",{class:""},"collection"),s(" property is required, all other properties of the "),e("a",{href:"#the-collection-object"},"collection object"),s(" are optional.")],-1),$e=s("You are able to provide an array of "),es=e("code",{class:""},"fields",-1),ss=s(" to be created during the creation of the collection. See the "),ts=s("fields object"),ls=s(" for more information on what properties are available in a field."),as=e("h3",{id:"returns-3"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-3"},"#")],-1),ns=e("p",null,[s("The "),e("a",{href:"#the-collection-object"},"collection object"),s(" for the collection created in this request.")],-1),os={class:"tip hint"},cs=s("Make sure to pass an empty object for schema ("),is=e("code",{class:""},"schema: {}",-1),rs=s(") when creating collections. Alternatively, you can omit it entirely or use "),hs=e("code",{class:""},"schema: null",-1),ds=s(" to create "),ps=s("\u201Cfolder\u201D collections"),_s=s("."),us=e("div",{class:"right"},[e("h3",{id:"rest-api-3"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-3"},"#")]),e("pre",null,[e("code",{class:""},`POST /collections
56
- `)]),e("h5",{id:"example-4"},[s("Example "),e("a",{class:"header-anchor",href:"#example-4"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// POST /collections"),s(`
57
-
58
- {
59
- `),e("span",{class:"hljs-attr"},'"collection"'),s(": "),e("span",{class:"hljs-string"},'"testimonials"'),s(`,
60
- `),e("span",{class:"hljs-attr"},'"meta"'),s(`: {
61
- `),e("span",{class:"hljs-attr"},'"icon"'),s(": "),e("span",{class:"hljs-string"},'"format_quote"'),s(`
62
- }
63
- }
64
- `)])]),e("h3",{id:"graphql-3"},[s("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-3"},"#")]),e("pre",null,[e("code",{class:""},`POST /graphql/system
65
- `)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Mutation"),s(` {
66
- create_collections_item(data: directus_collections): directus_collections
67
- }
68
- `)])]),e("h5",{id:"example-5"},[s("Example "),e("a",{class:"header-anchor",href:"#example-5"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),s(` {
69
- create_collections_item(data: {
70
- collection: `),e("span",{class:"hljs-string"},'"testimonials"'),s(`,
71
- meta: {
72
- icon: `),e("span",{class:"hljs-string"},'"format_quote"'),s(`
73
- }
74
- }) {
75
- `),e("span",{class:"hljs-keyword"},"..."),s(`
76
- }
77
- }
78
- `)])])],-1),gs=e("hr",null,null,-1),ms=e("h2",{id:"update-a-collection"},[s("Update a Collection "),e("a",{class:"header-anchor",href:"#update-a-collection"},"#")],-1),fs=e("p",null,"Update the metadata for an existing collection.",-1),js=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"query-parameters-4"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-4"},"#")]),e("p",null,"This endpoint doesn\u2019t currently support any query parameters."),e("h3",{id:"request-body-2"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body-2"},"#")]),e("p",null,[s("You can only update the "),e("code",{class:""},"meta"),s(" values of the "),e("a",{href:"#the-collection-object"},"collection object"),s(". Updating the collection name is not supported at this time.")]),e("h3",{id:"returns-4"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-4"},"#")]),e("p",null,[s("The "),e("a",{href:"#the-collection-object"},"collection object"),s(" for the updated collection in this request.")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-4"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-4"},"#")]),e("pre",null,[e("code",{class:""},`PATCH /collections/:collection
79
- `)]),e("h5",{id:"example-6"},[s("Example "),e("a",{class:"header-anchor",href:"#example-6"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// PATCH /collections/testimonials"),s(`
80
-
81
- {
82
- `),e("span",{class:"hljs-attr"},'"meta"'),s(`: {
83
- `),e("span",{class:"hljs-attr"},'"note"'),s(": "),e("span",{class:"hljs-string"},'"Short quotes from happy customers."'),s(`
84
- }
85
- }
86
- `)])]),e("h3",{id:"graphql-4"},[s("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-4"},"#")]),e("pre",null,[e("code",{class:""},`POST /graphql/system
87
- `)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Mutation"),s(` {
88
- update_collections_item(collection:`),e("span",{class:"hljs-type"}," String"),s(`!, data: update_directus_collections_input!): directus_collections
89
- }
90
- `)])]),e("h5",{id:"example-7"},[s("Example "),e("a",{class:"header-anchor",href:"#example-7"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),s(` {
91
- update_collections_item(collection: `),e("span",{class:"hljs-string"},'"testimonials"'),s(", data: { meta: { note: "),e("span",{class:"hljs-string"},'"Short quotes from happy customers."'),s(` } }) {
92
- collection
93
- }
94
- }
95
- `)])])])],-1),ys=e("hr",null,null,-1),bs=e("h2",{id:"delete-a-collection"},[s("Delete a Collection "),e("a",{class:"header-anchor",href:"#delete-a-collection"},"#")],-1),vs=e("p",null,"Delete a collection.",-1),qs=e("div",{class:"two-up"},[e("div",{class:"left"},[e("div",{class:"danger hint"},[e("div",{class:"hint-title"},"Destructive"),e("p",null,"Be aware, this will delete the table from the database, including all items in it. This action can\u2019t be undone.")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-5"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-5"},"#")]),e("pre",null,[e("code",{class:""},`DELETE /collections/:collection
96
- `)]),e("h5",{id:"example-8"},[s("Example "),e("a",{class:"header-anchor",href:"#example-8"},"#")]),e("pre",null,[e("code",{class:""},`DELETE /collections/articles
97
- `)]),e("h3",{id:"graphql-5"},[s("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-5"},"#")]),e("pre",null,[e("code",{class:""},`POST /graphql/system
98
- `)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Mutation"),s(` {
99
- delete_collections_item(collection:`),e("span",{class:"hljs-type"}," String"),s(`!): delete_collection
100
- }
101
- `)])]),e("h5",{id:"example-9"},[s("Example "),e("a",{class:"header-anchor",href:"#example-9"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),s(` {
102
- delete_collections_item(collection: `),e("span",{class:"hljs-string"},'"articles"'),s(`) {
103
- collection
104
- }
105
- }
106
- `)])])])],-1),ws=e("hr",null,null,-1),Ts={title:"Collections",modularExtension:!1,pageClass:"page-reference"},xs={name:"collections",setup(As,{expose:c}){return c({frontmatter:{title:"Collections",modularExtension:!1,pageClass:"page-reference"}}),(Cs,Es)=>{const l=n("router-link"),i=n("docswrapper");return r(),h(i,{frontmatter:Ts},{default:t(()=>[e("div",d,[e("div",p,[e("div",_,[e("blockquote",null,[e("p",null,[u,a(l,{to:"/docs/getting-started/glossary/#collections"},{default:t(()=>[g]),_:1}),m])])]),f]),j,y,e("div",b,[e("div",v,[q,w,T,e("div",x,[A,C,E,S,k,P,R,L,O,Q,W,B,e("p",null,[D,G,H,I,N,M,U,V,Y,a(l,{to:"/docs/configuration/data-model/#accountability"},{default:t(()=>[z]),_:1}),F]),e("p",null,[J,K,X,Z,$,a(l,{to:"/docs/configuration/data-model/#duplication"},{default:t(()=>[ee]),_:1}),se]),e("p",null,[te,le,ae,ne,oe,a(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:t(()=>[ce]),_:1}),ie]),e("p",null,[re,he,de,pe,_e,a(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:t(()=>[ue]),_:1}),ge]),me]),fe,je,ye,e("div",be,[e("p",null,[a(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:t(()=>[ve]),_:1}),qe,we,Te])])]),xe]),Ae,Ce,Ee,e("div",Se,[ke,e("div",Pe,[Re,Le,e("p",null,[a(l,{to:"/docs/reference/introduction/#search-http-method"},{default:t(()=>[Oe]),_:1})]),Qe,We,Be,De,Ge])]),He,Ie,Ne,Me,Ue,Ve,Ye,e("div",ze,[e("div",Fe,[Je,Ke,Xe,Ze,e("p",null,[$e,es,ss,a(l,{to:"/docs/reference/system/fields/#the-fields-object"},{default:t(()=>[ts]),_:1}),ls]),as,ns,e("div",os,[e("p",null,[cs,is,rs,hs,ds,a(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:t(()=>[ps]),_:1}),_s])])]),us]),gs,ms,fs,js,ys,bs,vs,qs,ws])]),_:1})}}};typeof o=="function"&&o(xs);export{xs as default,Ts as frontmatter};
@@ -1,2 +0,0 @@
1
- import{a as l,o as r,b as d,w as o,g as t,e as n,B as e}from"./runtime-core.esm-bundler.b1f35d24.js";var i={};const h={class:"markdown-body"},u=t("blockquote",null,[t("p",null,"The Collection Page displays all Items within a Collection and comes with highly configurable Layouts for browsing, visualizing, and managing these Items.")],-1),m=t("p",null,[t("div",{class:"table-of-contents"},[t("ul",null,[t("li",null,[t("a",{href:"#adjust-page-layout"},"Adjust Page Layout")]),t("li",null,[t("a",{href:"#search-items"},"Search Items")]),t("li",null,[t("a",{href:"#filter-items"},"Filter Items")]),t("li",null,[t("a",{href:"#manually-sort-items"},"Manually Sort Items")]),t("li",null,[t("a",{href:"#automatically-sort-items"},"Automatically Sort Items")]),t("li",null,[t("a",{href:"#view-archived-items"},"View Archived Items")]),t("li",null,[t("a",{href:"#create-presets-and-bookmarks"},"Create Presets and Bookmarks")]),t("li",null,[t("a",{href:"#import-%2F-export-items"},"Import / Export Items")]),t("li",null,[t("a",{href:"#batch-delete%2C-archive-or-edit-items"},"Batch Delete, Archive or Edit Items")])])])],-1),p={class:"tip hint"},_=t("div",{class:"hint-title"},"Before You Begin",-1),g=e("To use the Collection Page, you will need to know about "),y=e("Collections"),f=e(", "),v=e("Items"),b=e(" and "),I=e("Fields"),w=e("."),C=t("h2",{id:"adjust-page-layout"},[e("Adjust Page Layout "),t("a",{class:"header-anchor",href:"#adjust-page-layout"},"#")],-1),k=t("video",{title:"Layouts",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/adjust-page-layout-20220415A.mp4",type:"video/mp4"})],-1),A=e("Layouts determine how you view or interact with Items in a Collection. Whether your Collection contains blog posts, project management tasks, geo-coordinates, temporal data or beyond; Layouts present Items in a more human-friendly way. "),S=e("Learn More"),T=t("h2",{id:"search-items"},[e("Search Items "),t("a",{class:"header-anchor",href:"#search-items"},"#")],-1),L=t("video",{title:"Search Items",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/search-items-20220419A.mp4",type:"video/mp4"})],-1),x=t("p",null,[e("Find all Items with one or more Fields containing your searched value, excluding any Items which have been "),t("a",{href:"#filter-items"},"filtered out"),e(". To search through a Collection\u2019s Items, follow the steps below.")],-1),F=t("ol",null,[t("li",null,"Navigate to the Content Module and select the desired Collection."),t("li",null,[e("Select "),t("span",{mi:"",icon:""},"search"),e(" in the Page Header and a search bar will appear.")]),t("li",null,"Type in the value to search for.")],-1),P=t("h2",{id:"filter-items"},[e("Filter Items "),t("a",{class:"header-anchor",href:"#filter-items"},"#")],-1),B=t("video",{title:"Filter Items",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/filter-items-2022019A.mp4",type:"video/mp4"})],-1),D=e("Filters allow you to conditionally select Items from a Collection. Use-cases include customizing Item search results, restricting Item access permissions for specific Users or Roles, building dashboard analytics with the Insights module, and more. To Learn More, see our guide on "),M=e("Filters"),E=e("."),j=t("h2",{id:"manually-sort-items"},[e("Manually Sort Items "),t("a",{class:"header-anchor",href:"#manually-sort-items"},"#")],-1),N=t("video",{title:"Batch Edit Items",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/manually-sort-items-20220415A.mp4",type:"video/mp4"})],-1),V=e("Drag and drop Items to custom sort them as desired. This is only possible on certain Layouts, such as the default "),q=e("Table Layout"),O=e(". To sort a Collection\u2019s Items, follow the steps below."),U=t("ol",null,[t("li",null,[e("Be sure a sorting column has been configured under "),t("strong",null,"\u201CSettings > Data Model > Collection\u201D"),e("."),t("br"),t("em",null,"(Shown in the video)")])],-1),R=e(" @TODO configuration > Data Model: Link "),z=t("ol",{start:"2"},[t("li",null,"Navigate to the Content Module and select the desired Collection."),t("li",null,[e("In the Sidebar, be sure a "),t("a",{href:"#adjust-page-layout"},"Layout"),e(" is chosen that supports manual sorting.")]),t("li",null,[e("Enable manual sorting: "),t("ul",null,[t("li",null,[e("For the Table Layout, toggle "),t("span",{mi:"",icon:""},"sort"),e(" in the configured Sort column.")])])]),t("li",null,"Drag Items by their handle into a new position.")],-1),H=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Manual Sorting Requires Configuration"),t("p",null,[e("Only available if a Sort column has been configured under:"),t("br"),t("strong",null,"\u201CSettings > Data Model > Collection > Sort\u201D")])],-1),W={class:"tip hint"},Y=e("Sorting saves a value in a "),G=e("Sort Field"),J=e(". This value is used to return data in a custom order. This means that while the values in this Sort Field do get updated and modified, values in other Fields are not changed."),K=t("h2",{id:"automatically-sort-items"},[e("Automatically Sort Items "),t("a",{class:"header-anchor",href:"#automatically-sort-items"},"#")],-1),Q=t("video",{title:"Automatically Sort Items",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/automatically-sort-items-20220415A.mp4",type:"video/mp4"})],-1),X=e("Sort Items alphabetically or numerically, in ascending or descending order. Sorting is not possible on certain Layouts, such as the Map Layout. Layouts that do support automatic sorting have controls in slightly different locations. To learn more, see "),Z=e("Layouts"),$=e("."),tt=t("div",{class:"tip hint"},[t("p",null,"Automatic sorting is a non-destructive action which does not change your data.")],-1),et=t("h2",{id:"view-archived-items"},[e("View Archived Items "),t("a",{class:"header-anchor",href:"#view-archived-items"},"#")],-1),ot=t("video",{title:"View Archived Items",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/view-archived-items.mp4",type:"video/mp4"})],-1),st=e("The no-code app allows you to hide archived Items, display them alongside other Items, or display archived Items only. To learn how to archive an Item, see our guide on the "),nt=e("Item Page"),lt=e(". To change whether an archived Item is displayed, follow the steps below."),it=t("ol",null,[t("li",null,"Navigate to the Content Module and select the desired Collection."),t("li",null,[e("Click "),t("strong",null,"\u201CArchive\u201D"),e(" in the Sidebar.")]),t("li",null,[e("Choose the desired view: "),t("ul",null,[t("li",null,[t("strong",null,"\u201CShow Items\u201D")]),t("li",null,[t("strong",null,"\u201CShow Archived Items\u201D")]),t("li",null,[t("strong",null,"\u201CShow Items + Archived Items\u201D")])])])],-1),at=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Archiving Requires Configuration"),t("p",null,[e("Only available if an Archive column has been configured under:"),t("br"),t("strong",null,"\u201CSettings > Data Model > Collection > Archive\u201D"),e(".")])],-1),ct=t("h2",{id:"create-presets-and-bookmarks"},[e("Create Presets and Bookmarks "),t("a",{class:"header-anchor",href:"#create-presets-and-bookmarks"},"#")],-1),rt=t("video",{title:"Create Presets and Bookmarks",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/presets-and-bookmarks-20220415A.mp4",type:"video/mp4"})],-1),dt=e("Save how a Collection Page looks so that you can return to the exact same view later, including details such as the Layout, searches, filters, sorting, ordering, etc. To learn more, see our guide on "),ht=e("Presets and Bookmarks"),ut=e("."),mt=t("h2",{id:"import-%2F-export-items"},[e("Import / Export Items "),t("a",{class:"header-anchor",href:"#import-%2F-export-items"},"#")],-1),pt=t("p",null,[t("img",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-collections/content-collections-20220415A/imports-exports-20220416A.webp",alt:"Import and Export Items"})],-1),_t=e("The Content, User Directory and File Library modules allow importing and exporting of multiple Items stored as files. This makes it quick and easy to handle tasks like uploading and downloading new customer information; pulling down sales data for transformation, reports, analysis, and beyond. To learn more, see how to "),gt=e("Import and Export Items"),yt=e(" in file format."),ft=t("h2",{id:"batch-delete%2C-archive-or-edit-items"},[e("Batch Delete, Archive or Edit Items "),t("a",{class:"header-anchor",href:"#batch-delete%2C-archive-or-edit-items"},"#")],-1),vt=t("video",{title:"Batch Edit Items",autoplay:"",muted:"",loop:"",controls:""},[t("source",{src:`https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/batch-edit-items-20220415A.mp4
2
- `,type:"video/mp4"})],-1),bt=t("p",null,"It is possible to delete, archive, or edit multiple Items at once from the Collection Page. Deletion will permanently delete Items from the database, this cannot be reverted. When batch editing, the Item Page opens, allowing you to make the same edit across multiple Items. Follow the steps below to batch delete, archive, or edit Items.",-1),It=t("li",null,"Navigate to the Content Module and select the desired Collection.",-1),wt=e("Choose a "),Ct=e("Layout"),kt=e(" that supports multiple Item selection from the Sidebar."),At=t("br",null,null,-1),St=e(" (e.g. The Table or Card Layout)"),Tt=t("li",null,[e("Click the Items you wish to select: "),t("ul",null,[t("li",null,[t("strong",null,"Table Layout:"),e(" Click "),t("span",{mi:"",icon:""},"check_box_outline_blank"),e(" in the left-most column.")]),t("li",null,[t("strong",null,"Card Layout:"),e(" Click "),t("span",{mi:"",icon:""},"radio_button_unchecked"),e(" in the upper left-hand corner of each Card.")])])],-1),Lt=t("p",null,[e("Once Items are selected, the following buttons will appear in the Page Header: "),t("span",{mi:"",btn:"",muted:""},"delete"),t("span",{mi:"",btn:"",muted:""},"archive"),e(),t("span",{mi:"",btn:"",muted:""},"edit")],-1),xt=t("p",null,[t("strong",null,"Delete"),t("br"),e(" 4. Click "),t("span",{mi:"",btn:"",dngr:""},"delete"),e(" in the header and a popup will appear."),t("br"),e(" 5. Click "),t("strong",null,"\u201CDelete\u201D"),e(" to confirm the action.")],-1),Ft=t("p",null,[t("strong",null,"Archive"),t("br"),e(" 4. Click "),t("span",{mi:"",btn:"",muted:""},"archive"),e(" in the header and a popup will appear."),t("br"),e(" 5. Click "),t("strong",null,"\u201CDelete\u201D"),e(" to confirm the action.")],-1),Pt=t("p",null,[t("strong",null,"Edit"),t("br"),e(" 4. Click "),t("span",{mi:"",btn:"",muted:""},"edit"),e(" in the header and the Item Page will open."),t("br"),e(" 5. Update Item details as desired."),t("br"),e(" 6. Click "),t("span",{mi:"",btn:""},"check"),e(" to confirm batch edits on all Items.")],-1),Bt={title:"Collection Page",modularExtension:!1},Dt={name:"collections",setup(Mt,{expose:a}){return a({frontmatter:{title:"Collection Page",modularExtension:!1}}),(Et,jt)=>{const s=l("router-link"),c=l("docswrapper");return r(),d(c,{frontmatter:Bt},{default:o(()=>[t("div",h,[u,m,t("div",p,[_,t("p",null,[g,n(s,{to:"/docs/getting-started/glossary/#collections"},{default:o(()=>[y]),_:1}),f,n(s,{to:"/docs/getting-started/glossary/#items"},{default:o(()=>[v]),_:1}),b,n(s,{to:"/docs/getting-started/glossary/#fields"},{default:o(()=>[I]),_:1}),w])]),C,k,t("p",null,[A,n(s,{to:"/docs/app/layouts"},{default:o(()=>[S]),_:1})]),T,L,x,F,P,B,t("p",null,[D,n(s,{to:"/docs/app/filters/"},{default:o(()=>[M]),_:1}),E]),j,N,t("p",null,[V,n(s,{to:"/docs/app/layouts/#table-layout"},{default:o(()=>[q]),_:1}),O]),U,R,z,H,t("div",W,[t("p",null,[Y,n(s,{to:"/docs/reference/query/#sort"},{default:o(()=>[G]),_:1}),J])]),K,Q,t("p",null,[X,n(s,{to:"/docs/app/layouts"},{default:o(()=>[Z]),_:1}),$]),tt,et,ot,t("p",null,[st,n(s,{to:"/docs/app/content/items/#archive-an-item"},{default:o(()=>[nt]),_:1}),lt]),it,at,ct,rt,t("p",null,[dt,n(s,{to:"/docs/configuration/presets-bookmarks/"},{default:o(()=>[ht]),_:1}),ut]),mt,pt,t("p",null,[_t,n(s,{to:"/docs/app/import-export/"},{default:o(()=>[gt]),_:1}),yt]),ft,vt,bt,t("ol",null,[It,t("li",null,[wt,n(s,{to:"/docs/app/layouts"},{default:o(()=>[Ct]),_:1}),kt,At,St]),Tt]),Lt,xt,Ft,Pt])]),_:1})}}};typeof i=="function"&&i(Dt);export{Dt as default,Bt as frontmatter};