@directus/app 9.20.4 → 9.21.2

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 (523) hide show
  1. package/dist/assets/@directus_extensions-sdk.7480601b.entry.js +1 -0
  2. package/dist/assets/{accounts.8d02a534.js → accounts.00ff05b9.js} +1 -1
  3. package/dist/assets/active-line.cc9189df.js +1 -0
  4. package/dist/assets/{activity-log.957853bb.js → activity-log.c1a2e5a3.js} +1 -1
  5. package/dist/assets/{activity.58bbe1c2.js → activity.7112cbee.js} +1 -1
  6. package/dist/assets/add-a-recipe.51bd348b.js +1 -0
  7. package/dist/assets/apl.1621a749.js +1 -0
  8. package/dist/assets/ar-SA.9ddb3ade.js +2 -0
  9. package/dist/assets/{architecture.0ded5b28.js → architecture.b7c26a3b.js} +1 -1
  10. package/dist/assets/asciiarmor.e1fbcb0f.js +1 -0
  11. package/dist/assets/asn.1.2c8391be.js +1 -0
  12. package/dist/assets/asterisk.96d854f7.js +1 -0
  13. package/dist/assets/{authentication.5b7d5fa7.js → authentication.27557f4f.js} +5 -5
  14. package/dist/assets/autorefresh.1aa0c08c.js +1 -0
  15. package/dist/assets/{aws.890dfda5.js → aws.ea312e0b.js} +1 -1
  16. package/dist/assets/{backing-directus.7f54a4af.js → backing-directus.890b9c33.js} +1 -1
  17. package/dist/assets/basic-workflows.8f3fd328.js +1 -0
  18. package/dist/assets/{bn-IN.7fa1e9d9.js → bn-IN.598e11ba.js} +1 -1
  19. package/dist/assets/brainfuck.952f0867.js +1 -0
  20. package/dist/assets/build-a-content-hierarchy.41daeccc.js +97 -0
  21. package/dist/assets/{cli.bf0b2442.js → cli.45e9e9c9.js} +2 -2
  22. package/dist/assets/{cli.4e995657.js → cli.5531b0c6.js} +4 -4
  23. package/dist/assets/clike.f871e0ce.js +1 -0
  24. package/dist/assets/clojure.dfb2a0aa.js +1 -0
  25. package/dist/assets/{cloudron.0a16f34b.js → cloudron.258380cb.js} +1 -1
  26. package/dist/assets/cmake.594f5b32.js +1 -0
  27. package/dist/assets/cobol.d45d2d27.js +1 -0
  28. package/dist/assets/{codebase-overview.2ba91a80.js → codebase-overview.91c7de8c.js} +1 -1
  29. package/dist/assets/coffeescript.4eedbbb9.js +1 -0
  30. package/dist/assets/{collections.ea858bf6.js → collections.61f6b248.js} +3 -3
  31. package/dist/assets/{collections.2a61805a.js → collections.7a3b1972.js} +2 -2
  32. package/dist/assets/{collections.7fa07fe7.js → collections.b4a89731.js} +2 -2
  33. package/dist/assets/commonlisp.69abac6b.js +1 -0
  34. package/dist/assets/{conditions.32339903.js → conditions.ef847cae.js} +1 -1
  35. package/dist/assets/{config-options.53449c2c.js → config-options.86135d5b.js} +12 -12
  36. package/dist/assets/configure-user-registration.43d439a1.js +1 -0
  37. package/dist/assets/{content.18716bf7.js → content.62c8fe47.js} +1 -1
  38. package/dist/assets/{creating-extensions.0a6d6d3b.js → creating-extensions.65b17dfe.js} +3 -3
  39. package/dist/assets/crystal.bfce7e90.js +1 -0
  40. package/dist/assets/css.2ea5f0dd.js +1 -0
  41. package/dist/assets/cypher.a8be90c4.js +4 -0
  42. package/dist/assets/d.970bc6c0.js +1 -0
  43. package/dist/assets/dart.c20a75fc.js +1 -0
  44. package/dist/assets/{data-model.b5eb7565.js → data-model.86dfb86e.js} +3 -3
  45. package/dist/assets/de-DE.590d3c70.js +1 -0
  46. package/dist/assets/diff.83efcafe.js +1 -0
  47. package/dist/assets/{digitalocean-app-platform.4063d6cc.js → digitalocean-app-platform.cbd270c2.js} +2 -2
  48. package/dist/assets/{display-templates.65a9b519.js → display-templates.3da93597.js} +1 -1
  49. package/dist/assets/display.7dbfefd3.js +1 -0
  50. package/dist/assets/{displays.b72d546c.js → displays.7de6431d.js} +5 -5
  51. package/dist/assets/django.16d84d07.js +1 -0
  52. package/dist/assets/{docker.ae6227ab.js → docker.415a4af1.js} +1 -1
  53. package/dist/assets/dockerfile.50ad5737.js +1 -0
  54. package/dist/assets/{documentation.6628aaac.js → documentation.42b788f9.js} +1 -1
  55. package/dist/assets/dtd.b44f327f.js +1 -0
  56. package/dist/assets/dylan.e71cf0e1.js +1 -0
  57. package/dist/assets/ebnf.b67ca2a8.js +1 -0
  58. package/dist/assets/ecl.a694637b.js +1 -0
  59. package/dist/assets/eiffel.8a8cdbc6.js +1 -0
  60. package/dist/assets/el-GR.c0a3a0bf.js +1 -0
  61. package/dist/assets/elm.e174f3d7.js +1 -0
  62. package/dist/assets/{email-templates.5e1b5472.js → email-templates.dc238bec.js} +1 -1
  63. package/dist/assets/{endpoints.44874916.js → endpoints.c3e9ad6d.js} +1 -1
  64. package/dist/assets/erlang.9b90684f.js +1 -0
  65. package/dist/assets/es-MX.30ad99ae.js +1 -0
  66. package/dist/assets/{extensions.9790f6ff.js → extensions.a5e33cc9.js} +1 -1
  67. package/dist/assets/factor.fc03459f.js +1 -0
  68. package/dist/assets/{faq.0fd5ca6e.js → faq.5be12255.js} +2 -2
  69. package/dist/assets/fcl.5f56a413.js +1 -0
  70. package/dist/assets/{field-types.e5bd5900.js → field-types.acf0e140.js} +1 -1
  71. package/dist/assets/{field.b9b55fc2.js → field.b9a392a5.js} +1 -1
  72. package/dist/assets/{fields.fc8af154.js → fields.49dc9c06.js} +1 -1
  73. package/dist/assets/{fields.7df6f624.js → fields.ec401376.js} +1 -1
  74. package/dist/assets/{file-library.7a11d866.js → file-library.099ad14e.js} +1 -1
  75. package/dist/assets/{files.84b41f2f.js → files.53806aa8.js} +2 -2
  76. package/dist/assets/{filter-rules.099e9689.js → filter-rules.6293da5a.js} +4 -4
  77. package/dist/assets/{filters.98d31bd5.js → filters.52d6e673.js} +1 -1
  78. package/dist/assets/flows-for-loop.c0d96bfd.js +1 -0
  79. package/dist/assets/{flows.b6ebb4b6.js → flows.4a144234.js} +6 -6
  80. package/dist/assets/{flows.2646c3ae.js → flows.bd12c724.js} +2 -2
  81. package/dist/assets/{folders.35cfde90.js → folders.eca400c9.js} +5 -5
  82. package/dist/assets/forth.15fd7f42.js +1 -0
  83. package/dist/assets/fortran.1ff32443.js +1 -0
  84. package/dist/assets/fr-FR.d8dbf5de.js +1 -0
  85. package/dist/assets/gas.58e29d15.js +1 -0
  86. package/dist/assets/{gcp.ce76381f.js → gcp.7798a1d4.js} +5 -5
  87. package/dist/assets/generate-work-reports.682b3aa0.js +1 -0
  88. package/dist/assets/gfm.bac67f82.js +1 -0
  89. package/dist/assets/gherkin.55ae80a8.js +1 -0
  90. package/dist/assets/{github-ci.b4dde47f.js → github-ci.c2c0213a.js} +2 -2
  91. package/dist/assets/{glossary.930fe38e.js → glossary.5818cbf2.js} +1 -1
  92. package/dist/assets/{glossary.3b14c64d.js → glossary.86dfcaa5.js} +1 -1
  93. package/dist/assets/go.0ba144bf.js +1 -0
  94. package/dist/assets/groovy.d6e7c99f.js +1 -0
  95. package/dist/assets/haml.1235f7df.js +1 -0
  96. package/dist/assets/handlebars.ff4e52b8.js +1 -0
  97. package/dist/assets/haskell-literate.31bd2912.js +1 -0
  98. package/dist/assets/haskell.7e315eae.js +1 -0
  99. package/dist/assets/haxe.89c17af0.js +1 -0
  100. package/dist/assets/{hooks.b9909639.js → hooks.121520b6.js} +1 -1
  101. package/dist/assets/htmlembedded.133b6fc4.js +1 -0
  102. package/dist/assets/{htmlmixed.a7900839.js → htmlmixed.5302f41a.js} +1 -1
  103. package/dist/assets/htmlmixed.655b4687.js +1 -0
  104. package/dist/assets/http.3e53c321.js +1 -0
  105. package/dist/assets/hu-HU.9b5d2817.js +1 -0
  106. package/dist/assets/id-ID.626b885e.js +1 -0
  107. package/dist/assets/idl.e221918d.js +1 -0
  108. package/dist/assets/{iis.63d75601.js → iis.c623e90b.js} +1 -1
  109. package/dist/assets/{import-export.fe680598.js → import-export.ed35bdb2.js} +2 -2
  110. package/dist/assets/{index.ffcfdc79.js → index.04b73e2f.js} +1 -1
  111. package/dist/assets/{index.3ccb1a62.js → index.09845961.js} +1 -1
  112. package/dist/assets/{index.671547c3.js → index.130287f6.js} +1 -1
  113. package/dist/assets/{index.20179e31.js → index.1ba23fe5.js} +1 -1
  114. package/dist/assets/{index.f19e5b18.js → index.1f330fc3.js} +1 -1
  115. package/dist/assets/{index.7f210d25.js → index.24999c03.js} +1 -1
  116. package/dist/assets/{index.7c5199ad.js → index.330c3aee.js} +1 -1
  117. package/dist/assets/{index.549a82a6.js → index.3470f134.js} +1 -1
  118. package/dist/assets/{index.a6c65314.js → index.4044e5c7.js} +1 -1
  119. package/dist/assets/{index.764b9d6e.js → index.4706b3f5.js} +1 -1
  120. package/dist/assets/{index.875a771b.js → index.4b24f075.js} +1 -1
  121. package/dist/assets/{index.6949d989.js → index.4c6e76b7.js} +1 -1
  122. package/dist/assets/{index.0d7f4d79.js → index.522f44b0.js} +1 -1
  123. package/dist/assets/{index.1c9cfeb8.js → index.525d8fd8.js} +1 -1
  124. package/dist/assets/{index.d8e4727e.js → index.528e4b54.js} +1 -1
  125. package/dist/assets/{index.d9e48160.js → index.52a4297c.js} +1 -1
  126. package/dist/assets/{index.34c47fcf.js → index.530fd584.js} +1 -1
  127. package/dist/assets/{index.91e98759.js → index.546018df.js} +1 -1
  128. package/dist/assets/{index.d557b36c.js → index.57542755.js} +1 -1
  129. package/dist/assets/{index.aa66a39f.js → index.579d3ebd.js} +1 -1
  130. package/dist/assets/{index.425c965c.js → index.5a8952da.js} +1 -1
  131. package/dist/assets/{index.9b6db0de.js → index.5cf97c2b.js} +1 -1
  132. package/dist/assets/{index.08c5d5a2.js → index.6b77e807.js} +1 -1
  133. package/dist/assets/{index.393b7fd6.js → index.6bf3a163.js} +1 -1
  134. package/dist/assets/{index.fe4bc374.js → index.6c07a132.js} +1 -1
  135. package/dist/assets/{index.1f99dc82.js → index.6c4fabf1.js} +1 -1
  136. package/dist/assets/{index.7468a23c.js → index.6fa71870.js} +1 -1
  137. package/dist/assets/{index.8fb3c07f.js → index.7045dfad.js} +1 -1
  138. package/dist/assets/{index.c3959367.js → index.77b8f02e.js} +1 -1
  139. package/dist/assets/{index.62e48e8e.js → index.7943fd38.js} +1 -1
  140. package/dist/assets/{index.ac96f5b3.js → index.7c5b74dc.js} +1 -1
  141. package/dist/assets/{index.f32d0fbe.js → index.7de5db57.js} +1 -1
  142. package/dist/assets/{index.8aa50b59.js → index.7e90d361.js} +1 -1
  143. package/dist/assets/{index.2399ffb8.js → index.7edb8b15.js} +1 -1
  144. package/dist/assets/{index.d370fafd.js → index.7fcf2b86.js} +1 -1
  145. package/dist/assets/{index.5c5acddc.js → index.80106d2d.js} +1 -1
  146. package/dist/assets/{index.8b8e6073.js → index.804b3c9b.js} +1 -1
  147. package/dist/assets/{index.5264aa26.js → index.8063dc25.js} +1 -1
  148. package/dist/assets/{index.eb772cab.js → index.81a02f8c.js} +1 -1
  149. package/dist/assets/{index.38e5dfc6.js → index.81d5b763.js} +1 -1
  150. package/dist/assets/{index.7269b9b7.js → index.8200528c.js} +1 -1
  151. package/dist/assets/{index.00acb7aa.js → index.82939b3a.js} +1 -1
  152. package/dist/assets/{index.d024a491.js → index.8446e18c.js} +1 -1
  153. package/dist/assets/index.87afb869.js +1 -0
  154. package/dist/assets/index.8d15d209.css +1 -0
  155. package/dist/assets/{index.7e37814b.js → index.92f59a75.js} +1 -1
  156. package/dist/assets/{index.3abfd687.js → index.98cb4ee1.js} +1 -1
  157. package/dist/assets/{index.3d4f0091.css → index.9bdfd349.css} +1 -1
  158. package/dist/assets/{index.486669b9.js → index.9d2fbf00.js} +1 -1
  159. package/dist/assets/{index.ec87e7f6.js → index.9dfe292c.js} +1 -1
  160. package/dist/assets/{index.4ce96101.js → index.a1b7be9b.js} +1 -1
  161. package/dist/assets/{index.1b594a21.js → index.a5356d91.js} +1 -1
  162. package/dist/assets/{index.b67fb5fc.js → index.ab4e5ca3.js} +1 -1
  163. package/dist/assets/{index.f511aff3.js → index.ab7b6cba.js} +1 -1
  164. package/dist/assets/{index.578c30ec.js → index.ac6c3fe9.js} +1 -1
  165. package/dist/assets/{index.5062f951.js → index.adc560cb.js} +1 -1
  166. package/dist/assets/index.ae2066f9.js +26 -0
  167. package/dist/assets/{index.045e97f0.js → index.ae4bf6ea.js} +1 -1
  168. package/dist/assets/{index.9f69b190.js → index.aeaa0aa9.js} +1 -1
  169. package/dist/assets/{index.8b9e43f4.js → index.afc6b30e.js} +1 -1
  170. package/dist/assets/{index.23def130.js → index.b02dbd39.js} +1 -1
  171. package/dist/assets/{index.3cb24d7f.js → index.b391672d.js} +1 -1
  172. package/dist/assets/{index.19a506a0.js → index.b503f187.js} +1 -1
  173. package/dist/assets/{index.a88d2d0b.js → index.b7113e87.js} +1 -1
  174. package/dist/assets/{index.7bb84aa5.js → index.c156c46e.js} +1 -1
  175. package/dist/assets/{index.68337c85.js → index.c5e16ef6.js} +1 -1
  176. package/dist/assets/{index.45686201.js → index.c85c3f77.js} +1 -1
  177. package/dist/assets/{index.03886e4a.js → index.cb7799d1.js} +1 -1
  178. package/dist/assets/{index.eb4d5cbc.js → index.cb93c1e8.js} +1 -1
  179. package/dist/assets/index.cd3542f6.js +1 -0
  180. package/dist/assets/{index.dc4d9b6a.js → index.d0d998a0.js} +1 -1
  181. package/dist/assets/{index.c2858d95.js → index.d790d684.js} +1 -1
  182. package/dist/assets/{index.a264494d.js → index.dc9006a1.js} +1 -1
  183. package/dist/assets/{index.8130aabc.js → index.e3619b04.js} +1 -1
  184. package/dist/assets/{index.ab5ebdc3.js → index.e4224764.js} +1 -1
  185. package/dist/assets/{index.426d219b.js → index.e5079c3a.js} +1 -1
  186. package/dist/assets/{index.90ecf353.js → index.e6971ab1.js} +1 -1
  187. package/dist/assets/{index.b2e447e3.js → index.e85bc569.js} +1 -1
  188. package/dist/assets/{index.42614221.js → index.e95b7e4b.js} +1 -1
  189. package/dist/assets/{index.0608a502.js → index.ec8cfaac.js} +1 -1
  190. package/dist/assets/{index.b0e3c55c.js → index.f2e26d1f.js} +1 -1
  191. package/dist/assets/{index.eecb0d4b.js → index.f60d22d0.js} +1 -1
  192. package/dist/assets/{index.a8b94b31.js → index.f828781f.js} +1 -1
  193. package/dist/assets/{index.f047ba76.entry.js → index.f8fd6ee3.entry.js} +2691 -2690
  194. package/dist/assets/{index.2b61f9fb.js → index.fb6b1657.js} +1 -1
  195. package/dist/assets/{index.9c4a7f65.js → index.fb8023b0.js} +1 -1
  196. package/dist/assets/{index.79264a03.js → index.fe536421.js} +1 -1
  197. package/dist/assets/{input-rich-text-html.7e721a60.js → input-rich-text-html.1b13024b.js} +30 -30
  198. package/dist/assets/{insights.bb6e6dd9.js → insights.6190eebc.js} +2 -2
  199. package/dist/assets/{installation.a80b7bdd.js → installation.6e591be8.js} +1 -1
  200. package/dist/assets/{interface.6b3d318d.js → interface.5ec8ca7e.js} +1 -1
  201. package/dist/assets/{interfaces.9c9cb203.js → interfaces.81902e8c.js} +4 -4
  202. package/dist/assets/{introduction.23bcca02.js → introduction.15496522.js} +1 -1
  203. package/dist/assets/{introduction.17ce0958.js → introduction.2f7199ad.js} +4 -4
  204. package/dist/assets/{introduction.74d5f276.js → introduction.c61e67d2.js} +1 -1
  205. package/dist/assets/{introduction.2b473cdb.js → introduction.efd590eb.js} +1 -1
  206. package/dist/assets/{items.d9558b12.js → items.6012bbd1.js} +1 -1
  207. package/dist/assets/{items.a200a734.js → items.904356b8.js} +5 -5
  208. package/dist/assets/javascript-hint.199abe65.js +1 -0
  209. package/dist/assets/javascript.705102e7.js +1 -0
  210. package/dist/assets/jinja2.876b8944.js +1 -0
  211. package/dist/assets/jsx.b818cda0.js +1 -0
  212. package/dist/assets/julia.cfb3ddf7.js +1 -0
  213. package/dist/assets/{layouts.67e010c3.js → layouts.50df5631.js} +1 -1
  214. package/dist/assets/{layouts.71139077.js → layouts.befbdcf8.js} +3 -3
  215. package/dist/assets/livescript.c806b66f.js +1 -0
  216. package/dist/assets/lua.bc0ae13c.js +1 -0
  217. package/dist/assets/{manual.be26c257.js → manual.26a85d2d.js} +4 -4
  218. package/dist/assets/mark-selection.bae469e3.js +1 -0
  219. package/dist/assets/match-highlighter.91a1ef15.js +1 -0
  220. package/dist/assets/{matchbrackets.e0f8c83a.js → matchbrackets.7a78411c.js} +1 -1
  221. package/dist/assets/mathematica.d2affb5f.js +1 -0
  222. package/dist/assets/mbox.c5ac45db.js +1 -0
  223. package/dist/assets/{migrations.58c8fd96.js → migrations.ea7075a2.js} +1 -1
  224. package/dist/assets/mirc.56d52081.js +1 -0
  225. package/dist/assets/mllike.20808ac2.js +1 -0
  226. package/dist/assets/modelica.5b43a6c9.js +1 -0
  227. package/dist/assets/{modules.0cfbe882.js → modules.7d28228b.js} +3 -3
  228. package/dist/assets/mscgen.5e9e2653.js +1 -0
  229. package/dist/assets/multi-sig-data-access.ddc3e687.js +1 -0
  230. package/dist/assets/multiplex.db4b19a1.js +3 -0
  231. package/dist/assets/mumps.35d30d83.js +1 -0
  232. package/dist/assets/nginx.503d686c.js +1 -0
  233. package/dist/assets/nl-NL.586911c8.js +1 -0
  234. package/dist/assets/{notifications.7b442623.js → notifications.26a8e535.js} +11 -11
  235. package/dist/assets/nsis.94e55abf.js +1 -0
  236. package/dist/assets/ntriples.ed05a2ae.js +1 -0
  237. package/dist/assets/octave.2e3cb27d.js +1 -0
  238. package/dist/assets/{operations.bd173669.js → operations.470e68ea.js} +11 -11
  239. package/dist/assets/{operations.30bbad94.js → operations.bdd544da.js} +2 -2
  240. package/dist/assets/{operations.6fcceb98.js → operations.cdb45c4e.js} +3 -3
  241. package/dist/assets/overlay.3f3f0599.js +1 -0
  242. package/dist/assets/{overview.23ad824a.js → overview.2fc175dd.js} +1 -1
  243. package/dist/assets/{overview.4c1683c3.js → overview.8e4d2c9b.js} +1 -1
  244. package/dist/assets/{overview.cb1196c4.js → overview.eb4b9326.js} +1 -1
  245. package/dist/assets/oz.97cc1ac9.js +1 -0
  246. package/dist/assets/{panels.187b8f0d.js → panels.ca5d230c.js} +2 -2
  247. package/dist/assets/pascal.f8c86cda.js +1 -0
  248. package/dist/assets/pegjs.97bb1322.js +1 -0
  249. package/dist/assets/perl.d9a95eca.js +1 -0
  250. package/dist/assets/permissions.081923f1.js +1 -0
  251. package/dist/assets/{permissions.2ad2e118.js → permissions.a09bb478.js} +4 -4
  252. package/dist/assets/personal-portfolio-using-m2a.5e30e6cc.js +11 -0
  253. package/dist/assets/php.89c2f9f7.js +1 -0
  254. package/dist/assets/pig.46306f9f.js +1 -0
  255. package/dist/assets/{pinia.24c7b35a.entry.js → pinia.0d44ec62.entry.js} +2 -2
  256. package/dist/assets/{pl-PL.2863a1a1.js → pl-PL.01cf6aca.js} +1 -1
  257. package/dist/assets/{plesk.279941fc.js → plesk.297b28ec.js} +5 -5
  258. package/dist/assets/powershell.7f59ea0d.js +1 -0
  259. package/dist/assets/{presets-bookmarks.62ac9314.js → presets-bookmarks.d7ef4b82.js} +1 -1
  260. package/dist/assets/{presets.0390ff92.js → presets.4ea72a6c.js} +8 -8
  261. package/dist/assets/{project-settings.8b91aa04.js → project-settings.073c480f.js} +1 -1
  262. package/dist/assets/{projects.97bc15fa.js → projects.667d06ab.js} +1 -1
  263. package/dist/assets/properties.b2e9e7dd.js +1 -0
  264. package/dist/assets/protobuf.a57768d6.js +1 -0
  265. package/dist/assets/pt-BR.2c2e8c4f.js +1 -0
  266. package/dist/assets/pug.11a0bdc8.js +1 -0
  267. package/dist/assets/puppet.768fa863.js +1 -0
  268. package/dist/assets/python.8b6df896.js +1 -0
  269. package/dist/assets/q.f71e2fb3.js +1 -0
  270. package/dist/assets/{query.19ee7756.js → query.91f32b7a.js} +1 -1
  271. package/dist/assets/{quickstart.96d7fa17.js → quickstart.54f032fc.js} +3 -3
  272. package/dist/assets/{quickstart.7f55e26e.js → quickstart.6a82ef4b.js} +2 -2
  273. package/dist/assets/r.a9a4ca12.js +1 -0
  274. package/dist/assets/{readme.abb2691e.js → readme.84bd1090.js} +1 -1
  275. package/dist/assets/{relations.1409faa0.js → relations.c63ae4da.js} +6 -6
  276. package/dist/assets/{relationship.8e3bc45d.js → relationship.01468083.js} +1 -1
  277. package/dist/assets/{relationships.2449eed5.js → relationships.d7b51fda.js} +7 -7
  278. package/dist/assets/{resources.f9b64d6f.js → resources.f9cebdba.js} +1 -1
  279. package/dist/assets/{revisions.7ffa76fe.js → revisions.f2bf9393.js} +4 -4
  280. package/dist/assets/ro-RO.4c33f715.js +1 -0
  281. package/dist/assets/{roles.ce6518a4.js → roles.554cdf0e.js} +7 -7
  282. package/dist/assets/roles.b34bd4b0.js +1 -0
  283. package/dist/assets/rpm.e5811a72.js +1 -0
  284. package/dist/assets/rst.4b01b126.js +1 -0
  285. package/dist/assets/ruby.2ba33d98.js +1 -0
  286. package/dist/assets/{ruby.57265cfb.js → ruby.e8984a81.js} +1 -1
  287. package/dist/assets/{running-locally.8b135453.js → running-locally.d2e38f5e.js} +6 -6
  288. package/dist/assets/runtime-core.esm-bundler.22ec0346.js +1 -0
  289. package/dist/assets/rust.531e50f1.js +1 -0
  290. package/dist/assets/sas.48362a0b.js +1 -0
  291. package/dist/assets/sass.bf4a8b44.js +1 -0
  292. package/dist/assets/{schema.6649576e.js → schema.fefe36d2.js} +1 -1
  293. package/dist/assets/scheme.09b14856.js +1 -0
  294. package/dist/assets/{sdk.33dcc072.js → sdk.1c1b1a8b.js} +17 -17
  295. package/dist/assets/{security.acb2be94.js → security.59975f74.js} +1 -1
  296. package/dist/assets/{server.60bfa539.js → server.ef4017d1.js} +2 -2
  297. package/dist/assets/{settings.a00aa4fa.js → settings.1aa8422b.js} +1 -1
  298. package/dist/assets/{settings.6ac3895b.js → settings.574bbb58.js} +1 -1
  299. package/dist/assets/{shares.9a7ea736.js → shares.7727bd4c.js} +1 -1
  300. package/dist/assets/shell.d1dbda55.js +1 -0
  301. package/dist/assets/show-hint.57ea873d.js +1 -0
  302. package/dist/assets/sieve.1a25767a.js +1 -0
  303. package/dist/assets/slim.e018ac1a.js +1 -0
  304. package/dist/assets/slugify-text-with-run-script.7c3cc2c4.js +15 -0
  305. package/dist/assets/smalltalk.0ccfbb10.js +1 -0
  306. package/dist/assets/smarty.b91d67c6.js +1 -0
  307. package/dist/assets/solr.dd29f408.js +1 -0
  308. package/dist/assets/soy.4e5bb4c1.js +1 -0
  309. package/dist/assets/sparql.cc878993.js +1 -0
  310. package/dist/assets/spreadsheet.4aefd96f.js +1 -0
  311. package/dist/assets/sql.64eab1fa.js +1 -0
  312. package/dist/assets/{sso-examples.eb3ba478.js → sso-examples.873240f6.js} +2 -2
  313. package/dist/assets/{sso.29d67116.js → sso.1a6b3ff0.js} +4 -4
  314. package/dist/assets/stex.2fdfddd4.js +1 -0
  315. package/dist/assets/{stex.a70dfdc0.js → stex.d01c95b1.js} +1 -1
  316. package/dist/assets/stylus.6d056ddf.js +1 -0
  317. package/dist/assets/{support.e9e535b3.js → support.87c6b5f6.js} +1 -1
  318. package/dist/assets/swift.76d77aff.js +1 -0
  319. package/dist/assets/tcl.3d53e7a7.js +1 -0
  320. package/dist/assets/{teams.347f0563.js → teams.d555eea3.js} +1 -1
  321. package/dist/assets/template_shell.96150c63.js +1 -0
  322. package/dist/assets/textile.4fa0ef27.js +1 -0
  323. package/dist/assets/{themes.32a50b86.js → themes.3a8f5b79.js} +2 -2
  324. package/dist/assets/tiddlywiki.7c0678e2.js +1 -0
  325. package/dist/assets/tiki.63b47d4f.js +1 -0
  326. package/dist/assets/toml.687ac678.js +1 -0
  327. package/dist/assets/tornado.9caaed61.js +1 -0
  328. package/dist/assets/{translation-strings.285d6bb2.js → translation-strings.c2e90e96.js} +1 -1
  329. package/dist/assets/translations.c1633bc8.js +1 -0
  330. package/dist/assets/{translations.f87a601e.js → translations.d4671c3a.js} +1 -1
  331. package/dist/assets/{triggers.325e50d8.js → triggers.c58cde75.js} +1 -1
  332. package/dist/assets/troff.65641cfa.js +1 -0
  333. package/dist/assets/ttcn-cfg.66abf94b.js +1 -0
  334. package/dist/assets/ttcn.cdbdbc10.js +1 -0
  335. package/dist/assets/turtle.30f5acd6.js +1 -0
  336. package/dist/assets/twig.76882629.js +1 -0
  337. package/dist/assets/{ubuntu.3ba252fe.js → ubuntu.74c798e5.js} +2 -2
  338. package/dist/assets/uk-UA.fe247137.js +1 -0
  339. package/dist/assets/{upgrades-migrations.a091b8af.js → upgrades-migrations.73d4da9b.js} +1 -1
  340. package/dist/assets/{use-sync.d9160f34.js → use-sync.e83d9ab3.js} +3 -3
  341. package/dist/assets/{user-directory.9ca05985.js → user-directory.2ceb13ba.js} +1 -1
  342. package/dist/assets/{users-roles-permissions.bb71f6c9.js → users-roles-permissions.a3e2d048.js} +1 -1
  343. package/dist/assets/{users.a44125e3.js → users.5e316cce.js} +1 -1
  344. package/dist/assets/users.6e0f9ff9.js +1 -0
  345. package/dist/assets/{utilities.0380c496.js → utilities.3e4e57c9.js} +7 -7
  346. package/dist/assets/validation.5eb143cd.js +1 -0
  347. package/dist/assets/vb.6ca2d658.js +1 -0
  348. package/dist/assets/vbscript.c9f7cdd8.js +1 -0
  349. package/dist/assets/velocity.f8f37fc1.js +1 -0
  350. package/dist/assets/verilog.5cadf8f9.js +1 -0
  351. package/dist/assets/vhdl.46742c88.js +1 -0
  352. package/dist/assets/vi-VN.7f9cab4b.js +1 -0
  353. package/dist/assets/{vue-i18n.df8d89e7.entry.js → vue-i18n.fbc77449.entry.js} +1 -1
  354. package/dist/assets/vue-router.3a828e63.entry.js +5 -0
  355. package/dist/assets/vue.425bdf79.js +1 -0
  356. package/dist/assets/vue.486f3e62.entry.js +1 -0
  357. package/dist/assets/vue.runtime.esm-bundler.f6138180.js +1 -0
  358. package/dist/assets/wast.7b52bae5.js +1 -0
  359. package/dist/assets/{webhooks.40d9a7a3.js → webhooks.121861b0.js} +4 -4
  360. package/dist/assets/{webhooks.2d23be4c.js → webhooks.af8dfb63.js} +1 -1
  361. package/dist/assets/webidl.0a6cdd93.js +1 -0
  362. package/dist/assets/{xml.ea66d5f3.js → xml.8dec85cf.js} +1 -1
  363. package/dist/assets/xquery.c295ca3d.js +1 -0
  364. package/dist/assets/yacas.dca8e311.js +1 -0
  365. package/dist/assets/yaml-frontmatter.ccdcb23a.js +1 -0
  366. package/dist/assets/yaml.f22fdd75.js +1 -0
  367. package/dist/assets/z80.da8cf83c.js +1 -0
  368. package/dist/assets/zh-CN.6fd4ae3a.js +1 -0
  369. package/dist/index.html +8 -8
  370. package/package.json +58 -71
  371. package/dist/assets/@directus_extensions-sdk.fd0e4213.entry.js +0 -1
  372. package/dist/assets/active-line.9ef493aa.js +0 -1
  373. package/dist/assets/apl.80228b26.js +0 -1
  374. package/dist/assets/ar-SA.c5ee16de.js +0 -2
  375. package/dist/assets/asciiarmor.6c86ea34.js +0 -1
  376. package/dist/assets/asn.1.c414ac8d.js +0 -1
  377. package/dist/assets/asterisk.b919c017.js +0 -1
  378. package/dist/assets/autorefresh.4d24f530.js +0 -1
  379. package/dist/assets/brainfuck.31207812.js +0 -1
  380. package/dist/assets/clike.4381bb65.js +0 -1
  381. package/dist/assets/clike.70f54732.js +0 -1
  382. package/dist/assets/clojure.5e71b148.js +0 -1
  383. package/dist/assets/cmake.4292630d.js +0 -1
  384. package/dist/assets/cobol.0f026188.js +0 -1
  385. package/dist/assets/coffeescript.c9867ce1.js +0 -1
  386. package/dist/assets/commonlisp.575f73fb.js +0 -1
  387. package/dist/assets/crystal.c6b2e074.js +0 -1
  388. package/dist/assets/css.68e5f1b4.js +0 -1
  389. package/dist/assets/cypher.b9a2a2ff.js +0 -4
  390. package/dist/assets/d.29704d27.js +0 -1
  391. package/dist/assets/dart.3bc9103c.js +0 -1
  392. package/dist/assets/de-DE.1232afb9.js +0 -1
  393. package/dist/assets/diff.ed5ea48e.js +0 -1
  394. package/dist/assets/display.4a967445.js +0 -1
  395. package/dist/assets/django.a4f2e396.js +0 -1
  396. package/dist/assets/dockerfile.63d471ed.js +0 -1
  397. package/dist/assets/dtd.a3075452.js +0 -1
  398. package/dist/assets/dylan.f084efb3.js +0 -1
  399. package/dist/assets/ebnf.04f6993f.js +0 -1
  400. package/dist/assets/ecl.716928e4.js +0 -1
  401. package/dist/assets/eiffel.adac2439.js +0 -1
  402. package/dist/assets/el-GR.99b9567f.js +0 -1
  403. package/dist/assets/elm.79decf86.js +0 -1
  404. package/dist/assets/erlang.3a8664fd.js +0 -1
  405. package/dist/assets/es-MX.1c06907f.js +0 -1
  406. package/dist/assets/factor.5720b335.js +0 -1
  407. package/dist/assets/fcl.23169462.js +0 -1
  408. package/dist/assets/forth.0aa4b2af.js +0 -1
  409. package/dist/assets/fortran.2a5ba2e9.js +0 -1
  410. package/dist/assets/fr-FR.fa3f9dfa.js +0 -1
  411. package/dist/assets/gas.bb020a68.js +0 -1
  412. package/dist/assets/gfm.ab87931a.js +0 -1
  413. package/dist/assets/gherkin.14ad5708.js +0 -1
  414. package/dist/assets/go.db54967b.js +0 -1
  415. package/dist/assets/groovy.70142c17.js +0 -1
  416. package/dist/assets/haml.48d17fa5.js +0 -1
  417. package/dist/assets/handlebars.99f3b281.js +0 -1
  418. package/dist/assets/haskell-literate.dd8055d7.js +0 -1
  419. package/dist/assets/haskell.5163bc39.js +0 -1
  420. package/dist/assets/haxe.c37e45b0.js +0 -1
  421. package/dist/assets/htmlembedded.259e134c.js +0 -1
  422. package/dist/assets/htmlmixed.d4ccede2.js +0 -1
  423. package/dist/assets/http.c2a41932.js +0 -1
  424. package/dist/assets/hu-HU.b086156a.js +0 -1
  425. package/dist/assets/id-ID.30858185.js +0 -1
  426. package/dist/assets/idl.756f9381.js +0 -1
  427. package/dist/assets/index.4ce1e26c.js +0 -1
  428. package/dist/assets/index.90515a60.css +0 -1
  429. package/dist/assets/index.a36c94c4.js +0 -1
  430. package/dist/assets/index.c781a7ba.js +0 -26
  431. package/dist/assets/javascript-hint.edf0fbfe.js +0 -1
  432. package/dist/assets/javascript.3f76a939.js +0 -1
  433. package/dist/assets/jinja2.5ece3da1.js +0 -1
  434. package/dist/assets/jsx.bf843278.js +0 -1
  435. package/dist/assets/julia.3deacccb.js +0 -1
  436. package/dist/assets/livescript.0f4ee94d.js +0 -1
  437. package/dist/assets/lua.55a0ef58.js +0 -1
  438. package/dist/assets/mark-selection.c61be770.js +0 -1
  439. package/dist/assets/match-highlighter.653539e4.js +0 -1
  440. package/dist/assets/mathematica.581f102c.js +0 -1
  441. package/dist/assets/mbox.b8d42368.js +0 -1
  442. package/dist/assets/mirc.54d6f3dc.js +0 -1
  443. package/dist/assets/mllike.3fea0214.js +0 -1
  444. package/dist/assets/modelica.e91f192a.js +0 -1
  445. package/dist/assets/mscgen.26838643.js +0 -1
  446. package/dist/assets/multiplex.93cf07bd.js +0 -3
  447. package/dist/assets/mumps.47e48202.js +0 -1
  448. package/dist/assets/nginx.87019c99.js +0 -1
  449. package/dist/assets/nl-NL.277f5ed5.js +0 -1
  450. package/dist/assets/nsis.fafee21f.js +0 -1
  451. package/dist/assets/ntriples.a43258b6.js +0 -1
  452. package/dist/assets/octave.1f682cef.js +0 -1
  453. package/dist/assets/overlay.a2442f5e.js +0 -1
  454. package/dist/assets/oz.62b729b0.js +0 -1
  455. package/dist/assets/pascal.0fa9599a.js +0 -1
  456. package/dist/assets/pegjs.32083f8f.js +0 -1
  457. package/dist/assets/perl.5a777d8c.js +0 -1
  458. package/dist/assets/php.c6ab96f7.js +0 -1
  459. package/dist/assets/pig.2c7c4277.js +0 -1
  460. package/dist/assets/powershell.e6b0a933.js +0 -1
  461. package/dist/assets/properties.35c2d705.js +0 -1
  462. package/dist/assets/protobuf.625d3a47.js +0 -1
  463. package/dist/assets/pt-BR.c51763f3.js +0 -1
  464. package/dist/assets/pug.da3530b5.js +0 -1
  465. package/dist/assets/puppet.655afe2c.js +0 -1
  466. package/dist/assets/python.a67d678a.js +0 -1
  467. package/dist/assets/q.cc56fcdd.js +0 -1
  468. package/dist/assets/r.c1bddb02.js +0 -1
  469. package/dist/assets/ro-RO.52802a17.js +0 -1
  470. package/dist/assets/rpm.e046de56.js +0 -1
  471. package/dist/assets/rst.424d4d80.js +0 -1
  472. package/dist/assets/ruby.c0348dbc.js +0 -1
  473. package/dist/assets/runtime-core.esm-bundler.fe249c5c.js +0 -4
  474. package/dist/assets/rust.b8eab4c6.js +0 -1
  475. package/dist/assets/sas.171b5cec.js +0 -1
  476. package/dist/assets/sass.ef1df49e.js +0 -1
  477. package/dist/assets/scheme.96f6ce73.js +0 -1
  478. package/dist/assets/shell.4c172f18.js +0 -1
  479. package/dist/assets/show-hint.e95ab391.js +0 -1
  480. package/dist/assets/sieve.bdcdd5e1.js +0 -1
  481. package/dist/assets/slim.bab26569.js +0 -1
  482. package/dist/assets/smalltalk.0234383f.js +0 -1
  483. package/dist/assets/smarty.d8aca261.js +0 -1
  484. package/dist/assets/solr.d8e27de0.js +0 -1
  485. package/dist/assets/soy.06b4848e.js +0 -1
  486. package/dist/assets/sparql.ef7b1e37.js +0 -1
  487. package/dist/assets/spreadsheet.0d9dfaef.js +0 -1
  488. package/dist/assets/sql.85f5cd30.js +0 -1
  489. package/dist/assets/stex.38cc6e30.js +0 -1
  490. package/dist/assets/stylus.4d43a0f9.js +0 -1
  491. package/dist/assets/swift.e665f92b.js +0 -1
  492. package/dist/assets/tcl.4f846188.js +0 -1
  493. package/dist/assets/textile.eef6bf65.js +0 -1
  494. package/dist/assets/tiddlywiki.29dce321.js +0 -1
  495. package/dist/assets/tiki.a2f71a50.js +0 -1
  496. package/dist/assets/toml.64d737ee.js +0 -1
  497. package/dist/assets/tornado.5ebb7f6b.js +0 -1
  498. package/dist/assets/translations.074feb87.js +0 -1
  499. package/dist/assets/troff.e64b5292.js +0 -1
  500. package/dist/assets/ttcn-cfg.1b57714e.js +0 -1
  501. package/dist/assets/ttcn.3ddce744.js +0 -1
  502. package/dist/assets/turtle.0839041f.js +0 -1
  503. package/dist/assets/twig.99a62381.js +0 -1
  504. package/dist/assets/uk-UA.99a7a7a6.js +0 -1
  505. package/dist/assets/validation.cb080608.js +0 -1
  506. package/dist/assets/vb.9a802cc7.js +0 -1
  507. package/dist/assets/vbscript.c3cbffdb.js +0 -1
  508. package/dist/assets/velocity.a1b7e170.js +0 -1
  509. package/dist/assets/verilog.d98a6823.js +0 -1
  510. package/dist/assets/vhdl.6a93f1eb.js +0 -1
  511. package/dist/assets/vi-VN.b85c8a24.js +0 -1
  512. package/dist/assets/vue-router.805cb517.entry.js +0 -5
  513. package/dist/assets/vue.c7dd8317.entry.js +0 -1
  514. package/dist/assets/vue.f82ff76a.js +0 -1
  515. package/dist/assets/vue.runtime.esm-bundler.eb605ed6.js +0 -1
  516. package/dist/assets/wast.2c3ec473.js +0 -1
  517. package/dist/assets/webidl.49c5abd3.js +0 -1
  518. package/dist/assets/xquery.a0c67ec5.js +0 -1
  519. package/dist/assets/yacas.d6cc38c0.js +0 -1
  520. package/dist/assets/yaml-frontmatter.f078c218.js +0 -1
  521. package/dist/assets/yaml.2ae1a5ef.js +0 -1
  522. package/dist/assets/z80.fc28354f.js +0 -1
  523. package/dist/assets/zh-CN.a9e8d795.js +0 -1
@@ -0,0 +1 @@
1
+ import{z as m}from"./index.f8fd6ee3.entry.js";function f(l,s){for(var t=0;t<s.length;t++){const r=s[t];if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in l)){const c=Object.getOwnPropertyDescriptor(r,o);c&&Object.defineProperty(l,o,c.get?c:{enumerable:!0,get:()=>r[o]})}}}return Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}var u={exports:{}};(function(l,s){(function(t){t(m.exports)})(function(t){t.defineMode("asterisk",function(){var r=["exten","same","include","ignorepat","switch"],o=["#include","#exec"],c=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];function d(e,n){var i="",a=e.next();if(n.blockComment)return a=="-"&&e.match("-;",!0)?n.blockComment=!1:e.skipTo("--;")?(e.next(),e.next(),e.next(),n.blockComment=!1):e.skipToEnd(),"comment";if(a==";")return e.match("--",!0)&&!e.match("-",!1)?(n.blockComment=!0,"comment"):(e.skipToEnd(),"comment");if(a=="[")return e.skipTo("]"),e.eat("]"),"header";if(a=='"')return e.skipTo('"'),"string";if(a=="'")return e.skipTo("'"),"string-2";if(a=="#"&&(e.eatWhile(/\w/),i=e.current(),o.indexOf(i)!==-1))return e.skipToEnd(),"strong";if(a=="$"){var p=e.peek();if(p=="{")return e.skipTo("}"),e.eat("}"),"variable-3"}if(e.eatWhile(/\w/),i=e.current(),r.indexOf(i)!==-1){switch(n.extenStart=!0,i){case"same":n.extenSame=!0;break;case"include":case"switch":case"ignorepat":n.extenInclude=!0;break}return"atom"}}return{startState:function(){return{blockComment:!1,extenStart:!1,extenSame:!1,extenInclude:!1,extenExten:!1,extenPriority:!1,extenApplication:!1}},token:function(e,n){var i="";if(e.eatSpace())return null;if(n.extenStart)return e.eatWhile(/[^\s]/),i=e.current(),/^=>?$/.test(i)?(n.extenExten=!0,n.extenStart=!1,"strong"):(n.extenStart=!1,e.skipToEnd(),"error");if(n.extenExten)return n.extenExten=!1,n.extenPriority=!0,e.eatWhile(/[^,]/),n.extenInclude&&(e.skipToEnd(),n.extenPriority=!1,n.extenInclude=!1),n.extenSame&&(n.extenPriority=!1,n.extenSame=!1,n.extenApplication=!0),"tag";if(n.extenPriority)return n.extenPriority=!1,n.extenApplication=!0,e.next(),n.extenSame?null:(e.eatWhile(/[^,]/),"number");if(n.extenApplication){if(e.eatWhile(/,/),i=e.current(),i===",")return null;if(e.eatWhile(/\w/),i=e.current().toLowerCase(),n.extenApplication=!1,c.indexOf(i)!==-1)return"def strong"}else return d(e,n);return null},blockCommentStart:";--",blockCommentEnd:"--;",lineComment:";"}}),t.defineMIME("text/x-asterisk","asterisk")})})();const x=u.exports,h=f({__proto__:null,default:x},[u.exports]);export{h as a};
@@ -1,4 +1,4 @@
1
- import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-bundler.fe249c5c.js";const u={class:"markdown-body"},d=s("hr",null,null,-1),p=s("h2",{id:"access-tokens",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#access-tokens"},"#"),e(" Access Tokens")],-1),_=s("p",null,"There are two types of tokens that can be used to authenticate within Directus.",-1),g=s("p",null,[s("strong",null,"Temporary Token (JWT)"),e(" are returned by the "),s("a",{href:"#login"},"login"),e(" endpoint/mutation. These tokens have a relatively short expiration time, and are thus the most secure option to use. The tokens are returned with a "),s("code",null,"refresh_token"),e(" that can be used to retrieve a new access token via the "),s("a",{href:"#refresh"},"refresh"),e(" endpoint/mutation.")],-1),f=s("p",null,[s("strong",null,"Static Tokens"),e(" can be set for each platform user, and never expire. They are less secure, but quite useful for server-to-server communication. They are saved as plain-text within "),s("code",null,"directus_users.token"),e(".")],-1),j=s("p",null,[e("Once you have your access token, there are two ways to pass it to the API, via the "),s("code",null,"access_token"),e(" query parameter, or in the request\u2019s Authorization Header.")],-1),b=s("h3",{id:"query-parameter",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#query-parameter"},"#"),e(" Query Parameter")],-1),m=s("pre",null,[s("code",null,`?access_token=<token>
1
+ import{a as l,o as h,e as c,y as t,u as s,q as e,z as o}from"./runtime-core.esm-bundler.22ec0346.js";const u={class:"markdown-body"},d=s("hr",null,null,-1),p=s("h2",{id:"access-tokens",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#access-tokens"},"#"),e(" Access Tokens")],-1),_=s("p",null,"There are two types of tokens that can be used to authenticate within Directus.",-1),g=s("p",null,[s("strong",null,"Temporary Token (JWT)"),e(" are returned by the "),s("a",{href:"#login"},"login"),e(" endpoint/mutation. These tokens have a relatively short expiration time, and are thus the most secure option to use. The tokens are returned with a "),s("code",null,"refresh_token"),e(" that can be used to retrieve a new access token via the "),s("a",{href:"#refresh"},"refresh"),e(" endpoint/mutation.")],-1),f=s("p",null,[s("strong",null,"Static Tokens"),e(" can be set for each platform user, and never expire. They are less secure, but quite useful for server-to-server communication. They are saved as plain-text within "),s("code",null,"directus_users.token"),e(".")],-1),j=s("p",null,[e("Once you have your access token, there are two ways to pass it to the API, via the "),s("code",null,"access_token"),e(" query parameter, or in the request\u2019s Authorization Header.")],-1),b=s("h3",{id:"query-parameter",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#query-parameter"},"#"),e(" Query Parameter")],-1),m=s("pre",null,[s("code",null,`?access_token=<token>
2
2
  `)],-1),k=s("h3",{id:"authorization-header",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#authorization-header"},"#"),e(" Authorization Header")],-1),w=s("pre",null,[s("code",null,`Authorization: Bearer <token>
3
3
  `)],-1),y=s("hr",null,null,-1),q=s("h2",{id:"login",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#login"},"#"),e(" Login")],-1),v=s("p",null,"Retrieve a temporary access token and refresh token.",-1),x=s("h3",{id:"request-body",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#request-body"},"#"),e(" Request Body")],-1),T=s("p",null,[s("code",null,"email"),e(),s("strong",null,"Required"),s("br"),e(" Email address of the user you\u2019re retrieving the access token for.")],-1),P=s("p",null,[s("code",null,"password"),e(),s("strong",null,"Required"),s("br"),e(" Password of the user.")],-1),S=s("p",null,[s("code",null,"otp"),s("br"),e(" The user\u2019s one-time-password (if MFA is enabled).")],-1),R=s("p",null,[s("code",null,"mode"),s("br"),e(" Whether to retrieve the refresh token in the JSON response, or in a "),s("code",null,"httpOnly"),e(),s("code",null,"secure"),e(" cookie. One of "),s("code",null,"json"),e(", "),s("code",null,"cookie"),e(". Defaults to "),s("code",null,"json"),e(".")],-1),A=s("h3",{id:"response-attributes",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#response-attributes"},"#"),e(" Response Attributes")],-1),O=s("p",null,[s("code",null,"access_token"),e(),s("strong",null,"string"),s("br"),e(" Temporary access token to be used in follow-up requests.")],-1),E=s("p",null,[s("code",null,"expires"),e(),s("strong",null,"integer"),s("br"),e(" How long before the access token will expire. Value is in milliseconds.")],-1),L=s("p",null,[s("code",null,"refresh_token"),e(),s("strong",null,"string"),s("br"),e(" The token that can be used to retrieve a new access token through "),s("a",{href:"#refresh"},[s("code",null,"/auth/refresh")]),e(". Note: if you used "),s("code",null,"cookie"),e(" as the mode in the request, the refresh token won\u2019t be returned in the JSON.")],-1),I={class:"tip hint"},B=s("div",{class:"hint-title"},"Expiry time",-1),N=s("code",null,"ACCESS_TOKEN_TTL",-1),G=s("h3",{id:"rest-api",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#rest-api"},"#"),e(" REST API")],-1),C=s("pre",null,[s("code",null,`POST /auth/login
4
4
  `)],-1),D=s("pre",null,[s("code",null,`POST /auth/login/:provider
@@ -6,8 +6,8 @@ import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-
6
6
  `),s("span",{class:"hljs-attr"},'"email"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"admin@example.com"'),s("span",{class:"hljs-punctuation"},","),e(`
7
7
  `),s("span",{class:"hljs-attr"},'"password"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"d1r3ct5us"'),e(`
8
8
  `),s("span",{class:"hljs-punctuation"},"}"),e(`
9
- `)])],-1),W=s("h3",{id:"graphql",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql"},"#"),e(" GraphQL")],-1),Q=s("pre",null,[s("code",null,`POST /graphql/system
10
- `)],-1),z=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"mutation"),e(` {
9
+ `)])],-1),W=s("h3",{id:"graphql",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql"},"#"),e(" GraphQL")],-1),z=s("pre",null,[s("code",null,`POST /graphql/system
10
+ `)],-1),Q=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"mutation"),e(` {
11
11
  auth_login(email: `),s("span",{class:"hljs-string"},'"admin@example.com"'),e(", password: "),s("span",{class:"hljs-string"},'"d1r3ctu5"'),e(`) {
12
12
  access_token
13
13
  refresh_token
@@ -46,7 +46,7 @@ import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-
46
46
  `),s("span",{class:"hljs-attr"},'"token"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"eyJh...KmUk"'),s("span",{class:"hljs-punctuation"},","),e(`
47
47
  `),s("span",{class:"hljs-attr"},'"password"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"d1r3ctu5"'),e(`
48
48
  `),s("span",{class:"hljs-punctuation"},"}"),e(`
49
- `)])],-1),Qs=s("h3",{id:"graphql-4",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql-4"},"#"),e(" GraphQL")],-1),zs=s("pre",null,[s("code",null,`POST /graphql/system
49
+ `)])],-1),zs=s("h3",{id:"graphql-4",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql-4"},"#"),e(" GraphQL")],-1),Qs=s("pre",null,[s("code",null,`POST /graphql/system
50
50
  `)],-1),Hs=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"mutation"),e(` {
51
51
  auth_password_reset(token: `),s("span",{class:"hljs-string"},'"eyJh...KmUk"'),e(", password: "),s("span",{class:"hljs-string"},'"d1r3ctu5"'),e(`)
52
52
  }
@@ -71,4 +71,4 @@ import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-
71
71
  `),s("span",{class:"hljs-attr"},'"disableDefault"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-literal"},[s("span",{class:"hljs-keyword"},"false")]),e(`
72
72
  `),s("span",{class:"hljs-punctuation"},"}"),e(`
73
73
  `)])],-1),ee=s("hr",null,null,-1),te=s("h2",{id:"login-using-sso-providers",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#login-using-sso-providers"},"#"),e(" Login Using SSO Providers")],-1),ne=s("p",null,"Will redirect to the configured SSO provider for the user to login.",-1),oe=s("pre",null,[s("code",null,`GET /auth/login/:provider
74
- `)],-1),ae=s("hr",null,null,-1),ce="Authentication",ue=!1,de="API documentation on authentication in Directus.",pe="5 min read",_e="page-reference",ge={__name:"authentication",setup(le,{expose:r}){const a={title:"Authentication",modularExtension:!1,description:"API documentation on authentication in Directus.",readTime:"5 min read",pageClass:"page-reference"};return r({frontmatter:a}),(re,ie)=>{const n=l("router-link"),i=l("docs-wrapper");return h(),c(i,{frontmatter:a},{default:t(()=>[s("div",u,[s("blockquote",null,[s("p",null,[e("All data within the platform is private by default. The "),o(n,{to:"/docs/configuration/users-roles-permissions#configure-permissions"},{default:t(()=>[e("public role")]),_:1}),e(" can be configured to expose data without authentication, or you can pass an access token to the API to access private data.")])]),d,p,_,g,f,j,b,m,k,w,y,q,v,x,T,P,S,R,A,O,E,L,s("div",I,[B,s("p",null,[e("The token\u2019s expiration time can be configured through "),o(n,{to:"/docs/self-hosted/config-options#general"},{default:t(()=>[e("the "),N,e(" environment variable")]),_:1}),e(".")])]),G,C,D,J,W,Q,z,H,V,U,K,F,M,Y,X,Z,$,ss,es,ts,ns,os,as,ls,rs,is,hs,cs,us,ds,ps,_s,gs,fs,js,bs,ms,ks,ws,s("p",null,[ys,qs,e(" Provide a custom reset url which the link in the email will lead to. The reset token will be passed as a parameter."),vs,xs,e(": You need to configure the "),o(n,{to:"/docs/self-hosted/config-options#security"},{default:t(()=>[Ts,e(" environment variable")]),_:1}),e(" to enable this feature.")]),Ps,Ss,Rs,As,Os,Es,Ls,Is,Bs,Ns,Gs,Cs,Ds,Js,Ws,Qs,zs,Hs,Vs,Us,Ks,s("div",Fs,[Ms,s("p",null,[e("To learn more about setting up auth providers, see "),o(n,{to:"/docs/self-hosted/config-options#authentication"},{default:t(()=>[e("Configuring auth providers")]),_:1}),e(".")])]),Ys,Xs,Zs,$s,se,ee,te,ne,oe,ae])]),_:1})}}};export{ge as default,de as description,ue as modularExtension,_e as pageClass,pe as readTime,ce as title};
74
+ `)],-1),ae=s("hr",null,null,-1),ce="Authentication",ue=!1,de="API documentation on authentication in Directus.",pe="5 min read",_e="page-reference",ge={__name:"authentication",setup(le,{expose:r}){const a={title:"Authentication",modularExtension:!1,description:"API documentation on authentication in Directus.",readTime:"5 min read",pageClass:"page-reference"};return r({frontmatter:a}),(re,ie)=>{const n=l("router-link"),i=l("docs-wrapper");return h(),c(i,{frontmatter:a},{default:t(()=>[s("div",u,[s("blockquote",null,[s("p",null,[e("All data within the platform is private by default. The "),o(n,{to:"/docs/configuration/users-roles-permissions#configure-permissions"},{default:t(()=>[e("public role")]),_:1}),e(" can be configured to expose data without authentication, or you can pass an access token to the API to access private data.")])]),d,p,_,g,f,j,b,m,k,w,y,q,v,x,T,P,S,R,A,O,E,L,s("div",I,[B,s("p",null,[e("The token\u2019s expiration time can be configured through "),o(n,{to:"/docs/self-hosted/config-options#general"},{default:t(()=>[e("the "),N,e(" environment variable")]),_:1}),e(".")])]),G,C,D,J,W,z,Q,H,V,U,K,F,M,Y,X,Z,$,ss,es,ts,ns,os,as,ls,rs,is,hs,cs,us,ds,ps,_s,gs,fs,js,bs,ms,ks,ws,s("p",null,[ys,qs,e(" Provide a custom reset url which the link in the email will lead to. The reset token will be passed as a parameter."),vs,xs,e(": You need to configure the "),o(n,{to:"/docs/self-hosted/config-options#security"},{default:t(()=>[Ts,e(" environment variable")]),_:1}),e(" to enable this feature.")]),Ps,Ss,Rs,As,Os,Es,Ls,Is,Bs,Ns,Gs,Cs,Ds,Js,Ws,zs,Qs,Hs,Vs,Us,Ks,s("div",Fs,[Ms,s("p",null,[e("To learn more about setting up auth providers, see "),o(n,{to:"/docs/self-hosted/config-options#authentication"},{default:t(()=>[e("Configuring auth providers")]),_:1}),e(".")])]),Ys,Xs,Zs,$s,se,ee,te,ne,oe,ae])]),_:1})}}};export{ge as default,de as description,ue as modularExtension,_e as pageClass,pe as readTime,ce as title};
@@ -0,0 +1 @@
1
+ import{z as a}from"./index.f8fd6ee3.entry.js";function p(u,n){for(var o=0;o<n.length;o++){const i=n[o];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in u)){const e=Object.getOwnPropertyDescriptor(i,r);e&&Object.defineProperty(u,r,e.get?e:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var s={exports:{}};(function(u,n){(function(o){o(a.exports)})(function(o){o.defineOption("autoRefresh",!1,function(e,t){e.state.autoRefresh&&(r(e,e.state.autoRefresh),e.state.autoRefresh=null),t&&e.display.wrapper.offsetHeight==0&&i(e,e.state.autoRefresh={delay:t.delay||250})});function i(e,t){function f(){e.display.wrapper.offsetHeight?(r(e,t),e.display.lastWrapHeight!=e.display.wrapper.clientHeight&&e.refresh()):t.timeout=setTimeout(f,t.delay)}t.timeout=setTimeout(f,t.delay),t.hurry=function(){clearTimeout(t.timeout),t.timeout=setTimeout(f,50)},o.on(window,"mouseup",t.hurry),o.on(window,"keyup",t.hurry)}function r(e,t){clearTimeout(t.timeout),o.off(window,"mouseup",t.hurry),o.off(window,"keyup",t.hurry)}})})();const l=s.exports,h=p({__proto__:null,default:l},[s.exports]);export{h as a};
@@ -1 +1 @@
1
- import{a as s,o as c,b as d,w as t,l as e,E as o,e as l}from"./runtime-core.esm-bundler.fe249c5c.js";const u={class:"markdown-body"},h=e("p",null,"While there are many different ways to run Directus on AWS, from single EC2 instances to a full ELB load-balanced configuration, we like the following combination of services:",-1),p=e("ul",null,[e("li",null,[o("Elastic Beanstalk (EB) "),e("ul",null,[e("li",null,"Elastic Load Balancer (ELB)"),e("li",null,"Elastic Compute Cloud (EC2)")])]),e("li",null,"CodeDeploy"),e("li",null,"Simple Storage Service (S3)"),e("li",null,"Relational Database Service (RDS) (Aurora)"),e("li",null,"CloudFront"),e("li",null,"Route 53")],-1),f=e("h2",{id:"elastic-beanstalk",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#elastic-beanstalk"},"#"),o(" Elastic Beanstalk")],-1),m=e("p",null,"Will run Directus in an autoscaling environment with a load balancer. Makes sure the instances stay alive, and will replace individual instances in case of unexpected crashes.",-1),_=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html",target:"_blank",rel:"noopener noreferrer"},"Deploying Node.js applications to Elastic Beanstalk"),o(" for more information.")],-1),b=e("h2",{id:"codedeploy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#codedeploy"},"#"),o(" CodeDeploy")],-1),g=e("p",null,"Allows you to automatically deploy updates to your Directus instance or extensions to Elastic Beanstalk.",-1),y=e("p",null,[o("See "),e("a",{href:"https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy",target:"_blank",rel:"noopener noreferrer"},"Automatically Deploy from GitHub Using AWS CodeDeploy"),o(" for more information.")],-1),w=e("h2",{id:"simple-storage-service-(s3)",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#simple-storage-service-(s3)"},"#"),o(" Simple Storage Service (S3)")],-1),k=e("p",null,"Ideal place to store files uploaded to Directus. Your bucket doesn\u2019t have to be publicly accessible to the web; Directus will stream files from and to the bucket in its /asset endpoint.",-1),v=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html",target:"_blank",rel:"noopener noreferrer"},"Creating a bucket"),o(" for more information.")],-1),S=e("h2",{id:"relational-database-service-(rds)-(aurora)",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#relational-database-service-(rds)-(aurora)"},"#"),o(" Relational Database Service (RDS) (Aurora)")],-1),D=e("p",null,"While you can technically use any of the SQL based databases offered in AWS, we like to use Aurora. It\u2019s auto-scaling and use-based costs have worked out pretty well for us in the past.",-1),C=e("h2",{id:"cloudfront",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cloudfront"},"#"),o(" CloudFront")],-1),E=e("p",null,"While it\u2019s not a technical requirement, it\u2019s not a bad idea to configure a CloudFront instance in front of your EB environment. This protects you from DDoS attacks and allows you to cache repeated calls to assets in its CDN.",-1),A=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudfront.html",target:"_blank",rel:"noopener noreferrer"},"Using Elastic Beanstalk with Amazon CloudFront"),o(" for more information.")],-1),B=e("h2",{id:"route-53",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#route-53"},"#"),o(" Route 53")],-1),x=e("p",null,"The last piece of this puzzle is to assign a domain name to your CloudFront instance. You can use Route 53 for this purpose.",-1),W=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html",target:"_blank",rel:"noopener noreferrer"},"Routing traffic to an Amazon CloudFront web distribution by using your domain name"),o(" for more information.")],-1),H="AWS",N=!1,G="How to host Directus on AWS.",L="2 min read",V={__name:"aws",setup(z,{expose:r}){const a={title:"AWS",modularExtension:!1,description:"How to host Directus on AWS.",readTime:"2 min read"};return r({frontmatter:a}),(R,F)=>{const n=s("router-link"),i=s("docs-wrapper");return c(),d(i,{frontmatter:a},{default:t(()=>[e("div",u,[h,p,f,m,e("p",null,[o("We recommend setting up a repo in GitHub (or another Git provider) and configuring it using "),l(n,{to:"/docs/self-hosted/installation/manual"},{default:t(()=>[o("our manual installation flow")]),_:1}),o(". This allows you to later hook up the repo to your Elastic Beanstalk instance through CodeDeploy.")]),_,e("p",null,[o("Directus\u2019 configuration is all set through environment variables. For a full overview of all available environment variables, see "),l(n,{to:"/docs/self-hosted/config-options"},{default:t(()=>[o("Environment Variables")]),_:1})]),b,g,y,w,k,v,S,D,C,E,A,B,x,W])]),_:1})}}};export{V as default,G as description,N as modularExtension,L as readTime,H as title};
1
+ import{a as s,o as c,e as d,y as t,u as e,q as o,z as l}from"./runtime-core.esm-bundler.22ec0346.js";const u={class:"markdown-body"},h=e("p",null,"While there are many different ways to run Directus on AWS, from single EC2 instances to a full ELB load-balanced configuration, we like the following combination of services:",-1),p=e("ul",null,[e("li",null,[o("Elastic Beanstalk (EB) "),e("ul",null,[e("li",null,"Elastic Load Balancer (ELB)"),e("li",null,"Elastic Compute Cloud (EC2)")])]),e("li",null,"CodeDeploy"),e("li",null,"Simple Storage Service (S3)"),e("li",null,"Relational Database Service (RDS) (Aurora)"),e("li",null,"CloudFront"),e("li",null,"Route 53")],-1),f=e("h2",{id:"elastic-beanstalk",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#elastic-beanstalk"},"#"),o(" Elastic Beanstalk")],-1),m=e("p",null,"Will run Directus in an autoscaling environment with a load balancer. Makes sure the instances stay alive, and will replace individual instances in case of unexpected crashes.",-1),_=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html",target:"_blank",rel:"noopener noreferrer"},"Deploying Node.js applications to Elastic Beanstalk"),o(" for more information.")],-1),b=e("h2",{id:"codedeploy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#codedeploy"},"#"),o(" CodeDeploy")],-1),g=e("p",null,"Allows you to automatically deploy updates to your Directus instance or extensions to Elastic Beanstalk.",-1),y=e("p",null,[o("See "),e("a",{href:"https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy",target:"_blank",rel:"noopener noreferrer"},"Automatically Deploy from GitHub Using AWS CodeDeploy"),o(" for more information.")],-1),w=e("h2",{id:"simple-storage-service-(s3)",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#simple-storage-service-(s3)"},"#"),o(" Simple Storage Service (S3)")],-1),k=e("p",null,"Ideal place to store files uploaded to Directus. Your bucket doesn\u2019t have to be publicly accessible to the web; Directus will stream files from and to the bucket in its /asset endpoint.",-1),v=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html",target:"_blank",rel:"noopener noreferrer"},"Creating a bucket"),o(" for more information.")],-1),S=e("h2",{id:"relational-database-service-(rds)-(aurora)",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#relational-database-service-(rds)-(aurora)"},"#"),o(" Relational Database Service (RDS) (Aurora)")],-1),D=e("p",null,"While you can technically use any of the SQL based databases offered in AWS, we like to use Aurora. It\u2019s auto-scaling and use-based costs have worked out pretty well for us in the past.",-1),C=e("h2",{id:"cloudfront",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cloudfront"},"#"),o(" CloudFront")],-1),A=e("p",null,"While it\u2019s not a technical requirement, it\u2019s not a bad idea to configure a CloudFront instance in front of your EB environment. This protects you from DDoS attacks and allows you to cache repeated calls to assets in its CDN.",-1),E=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudfront.html",target:"_blank",rel:"noopener noreferrer"},"Using Elastic Beanstalk with Amazon CloudFront"),o(" for more information.")],-1),B=e("h2",{id:"route-53",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#route-53"},"#"),o(" Route 53")],-1),x=e("p",null,"The last piece of this puzzle is to assign a domain name to your CloudFront instance. You can use Route 53 for this purpose.",-1),W=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html",target:"_blank",rel:"noopener noreferrer"},"Routing traffic to an Amazon CloudFront web distribution by using your domain name"),o(" for more information.")],-1),H="AWS",N=!1,G="How to host Directus on AWS.",L="2 min read",V={__name:"aws",setup(z,{expose:r}){const a={title:"AWS",modularExtension:!1,description:"How to host Directus on AWS.",readTime:"2 min read"};return r({frontmatter:a}),(R,F)=>{const n=s("router-link"),i=s("docs-wrapper");return c(),d(i,{frontmatter:a},{default:t(()=>[e("div",u,[h,p,f,m,e("p",null,[o("We recommend setting up a repo in GitHub (or another Git provider) and configuring it using "),l(n,{to:"/docs/self-hosted/installation/manual"},{default:t(()=>[o("our manual installation flow")]),_:1}),o(". This allows you to later hook up the repo to your Elastic Beanstalk instance through CodeDeploy.")]),_,e("p",null,[o("Directus\u2019 configuration is all set through environment variables. For a full overview of all available environment variables, see "),l(n,{to:"/docs/self-hosted/config-options"},{default:t(()=>[o("Environment Variables")]),_:1})]),b,g,y,w,k,v,S,D,C,A,E,B,x,W])]),_:1})}}};export{V as default,G as description,N as modularExtension,L as readTime,H as title};
@@ -1 +1 @@
1
- import{a,o as u,b as c,w as o,l as e,E as t,e as n}from"./runtime-core.esm-bundler.fe249c5c.js";const d={class:"markdown-body"},p=e("blockquote",null,[e("p",null,[t("Directus is both "),e("em",null,"premium"),t(" and "),e("em",null,"free"),t(" \u2014 two things that don\u2019t often go together. It takes significant resources to maintain the platform. If you\u2019d like to help keep development active, please consider supporting Directus through one of the methods below.")])],-1),h=e("h2",{id:"brand-advocacy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#brand-advocacy"},"#"),t(" Brand Advocacy")],-1),m=e("p",null,[e("strong",null,"You can create perfect software, but if no one knows about it, it\u2019s all for naught. Marketing and advertising are expensive. You can help us cut these costs with the following quick options.")],-1),f=e("p",null,[e("strong",null,"GitHub Stars"),e("br"),t(" As an open-source project, stars are a primary metric by which we measure our success. It only takes a few seconds to head to the "),e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},"Directus GitHub Repo"),t(" and click the star. With enough activity in a short period of time, we get "),e("em",null,"even more exposure"),t(" on GitHub\u2019s trending page!")],-1),g=e("p",null,[e("strong",null,"Social Posts"),e("br"),t(" Engage with us on social media. Follow us! A quick post mentioning "),e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"@directus"),t(" goes a long way! "),e("em",null,"Plus, we re-tweet the team\u2019s favorite shout-outs to our 45K+ followers.")],-1),_=e("strong",null,"Testimonials",-1),b=e("br",null,null,-1),w=e("em",null,"One sentence.",-1),y=e("em",null,"need to hear your testimonial",-1),k=e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"Tweet",-1),v=e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord",-1),x=e("p",null,[e("strong",null,"Reviews"),e("br"),t(" The following popular rating platforms allow you to post your rating and testimonial publicly, which automatically gives it more exposure.")],-1),C=e("ul",null,[e("li",null,[e("a",{href:"https://www.g2.com/products/directus/reviews",target:"_blank",rel:"noopener noreferrer"},"G2")]),e("li",null,[e("a",{href:"https://www.capterra.com/p/156619/Directus",target:"_blank",rel:"noopener noreferrer"},"Capterra")]),e("li",null,[e("a",{href:"https://www.trustradius.com/products/directus/reviews",target:"_blank",rel:"noopener noreferrer"},"TrustRadius")]),e("li",null,[e("a",{href:"https://www.producthunt.com/posts/directus-9",target:"_blank",rel:"noopener noreferrer"},"Product Hunt")])],-1),D=e("h2",{id:"community-engagement",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#community-engagement"},"#"),t(" Community Engagement")],-1),T=e("p",null,[e("strong",null,"While the Directus Core Team spearheads development, community engagement is an essential part of the Directus mission. We need your help in order to make Directus all it can be.")],-1),E=e("p",null,[e("strong",null,"GitHub Sponsors"),e("br"),t(" The core team is funded. All monthly donations via "),e("a",{href:"https://github.com/sponsors/directus",target:"_blank",rel:"noopener noreferrer"},"GitHub Sponsors"),t(" form a budget to compensate the top community contributors. Donate to sponsor more "),e("a",{href:"https://github.com/orgs/directus/people",target:"_blank",rel:"noopener noreferrer"},"community developers")],-1),G=e("p",null,[e("strong",null,"Code Pull Requests"),e("br"),t(" Squashing bugs, optimizing the codebase, increasing test coverage, and adding new features, are all extremely valuable. Obviously, you\u2019re making the platform better for yourself as well. "),e("em",null,"That\u2019s a double whammy!"),t(),e("a",{href:"https://github.com/directus",target:"_blank",rel:"noopener noreferrer"},"Go make your PR on GitHub!")],-1),S=e("p",null,[e("strong",null,"Bug Reporting"),e("br"),t(" If you find an issue in Directus, no matter how small, we\u2019d love to hear about it. Proper bug reporting helps our team improve platform stability. "),e("a",{href:"https://github.com/directus/directus/issues/new",target:"_blank",rel:"noopener noreferrer"},"Report a bug on GitHub")],-1),H=e("strong",null,"App Translations",-1),q=e("br",null,null,-1),P=e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"Crowdin integration",-1),R=e("h2",{id:"financial-support",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#financial-support"},"#"),t(" Financial Support")],-1),W=e("p",null,[e("strong",null,"Talented full-time and part-time staff, infrastructure, and third-party services are just some of our organization\u2019s many expenses. Here are a few support avenues that help us keep the lights on.")],-1),B=e("p",null,[e("strong",null,"Premium Support"),e("br"),e("em",null,"Software engineering is hard!"),t(" Let our Core Team help you better manage your Directus project with a dedicated Premium Support agreement so your devs can focus on your app\u2019s core business logic. "),e("a",{href:"https://directus.io/contact",target:"_blank",rel:"noopener noreferrer"},"Contact the Team"),t(" for more info.")],-1),j=e("strong",null,"Sponsored Work",-1),z=e("br",null,null,-1),A=e("em",null,"and for your project!",-1),I=e("strong",null,"Directus Cloud",-1),N=e("br",null,null,-1),F={class:"tip hint"},O=e("div",{class:"hint-title"},"Ready to try out Cloud?",-1),V=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Enterprise Cloud"),e("p",null,[t("Need total customization, unlimited scalability, and dedicated support? "),e("a",{href:"https://directus.io/contact",target:"_blank",rel:"noopener noreferrer"},"Contact us")])],-1),Q="Backing Directus",J=!1,U="What you can do to support Directus.",X="4 min read",Z={__name:"backing-directus",setup(Y,{expose:i}){const s={title:"Backing Directus",modularExtension:!1,description:"What you can do to support Directus.",readTime:"4 min read"};return i({frontmatter:s}),(L,M)=>{const r=a("router-link"),l=a("docs-wrapper");return u(),c(l,{frontmatter:s},{default:o(()=>[e("div",d,[p,h,m,f,g,e("p",null,[_,b,w,t(" Even that was a sentence and it was only two words! If you\u2019re a fan of Directus, we\u2019d love to hear why with a short endorsement\u2026 More importantly, potential new users "),y,t(" to see if the product is right for them! Shoot us an "),n(r,{to:"/docsmailto:info@directus.io"},{default:o(()=>[t("email")]),_:1}),t(", "),k,t(", or "),v,t(" message with your name, title, and company.")]),x,C,D,T,E,G,e("p",null,[t("Not quite a software engineer yet? We have plenty of documentation that can always use some extra attention. Learn more in our "),n(r,{to:"/docs/contributing/introduction"},{default:o(()=>[t("Contributors Guide")]),_:1}),t(".")]),S,e("p",null,[H,q,t(" Every button, element, or other line of text in the app is "),n(r,{to:"/docs/contributing/translations"},{default:o(()=>[t("fully translatable")]),_:1}),t(". These translations make our app an international platform. Our "),P,t(" makes polishing existing translations or creating new ones a breeze.")]),R,W,B,e("p",null,[j,z,n(r,{to:"/docs/getting-started/support#commissioned-features"},{default:o(()=>[t("Commissioned Features")]),_:1}),t(" and "),n(r,{to:"/docs/getting-started/support#expedited-fixes"},{default:o(()=>[t("Expedited Fixes")]),_:1}),t(" are great ways to financially support the development of Directus and improve the codebase for the community "),A]),e("p",null,[I,N,t(" Cloud architecture, software updates, and configuration optimizations require fully dedicated effort. Cut through all that digital red-tape and run your projects on "),n(r,{to:"/docs/cloud/overview"},{default:o(()=>[t("Directus Cloud")]),_:1}),t(". You get production-ready projects with zero vendor lock-in, 90 second average build times, incredibly fair pricing, scaling at the click of a button, automatic updates with no downtime and a constant stream of new "),n(r,{to:"/docs/cloud/glossary#extensions"},{default:o(()=>[t("Cloud Exclusive Extensions")]),_:1}),t(".")]),e("p",null,[t("We do everything we can to make hosting on "),n(r,{to:"/docs/cloud/overview"},{default:o(()=>[t("Directus Cloud")]),_:1}),t(" a no-brainer.")]),e("div",F,[O,e("p",null,[t("Test out Directus Cloud now for free with the "),n(r,{to:"/docs/getting-started/quickstart"},{default:o(()=>[t("Quickstart Guide")]),_:1}),t(".")])]),V])]),_:1})}}};export{Z as default,U as description,J as modularExtension,X as readTime,Q as title};
1
+ import{a,o as u,e as c,y as o,u as e,q as t,z as n}from"./runtime-core.esm-bundler.22ec0346.js";const d={class:"markdown-body"},p=e("blockquote",null,[e("p",null,[t("Directus is both "),e("em",null,"premium"),t(" and "),e("em",null,"free"),t(" \u2014 two things that don\u2019t often go together. It takes significant resources to maintain the platform. If you\u2019d like to help keep development active, please consider supporting Directus through one of the methods below.")])],-1),h=e("h2",{id:"brand-advocacy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#brand-advocacy"},"#"),t(" Brand Advocacy")],-1),m=e("p",null,[e("strong",null,"You can create perfect software, but if no one knows about it, it\u2019s all for naught. Marketing and advertising are expensive. You can help us cut these costs with the following quick options.")],-1),f=e("p",null,[e("strong",null,"GitHub Stars"),e("br"),t(" As an open-source project, stars are a primary metric by which we measure our success. It only takes a few seconds to head to the "),e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},"Directus GitHub Repo"),t(" and click the star. With enough activity in a short period of time, we get "),e("em",null,"even more exposure"),t(" on GitHub\u2019s trending page!")],-1),g=e("p",null,[e("strong",null,"Social Posts"),e("br"),t(" Engage with us on social media. Follow us! A quick post mentioning "),e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"@directus"),t(" goes a long way! "),e("em",null,"Plus, we re-tweet the team\u2019s favorite shout-outs to our 45K+ followers.")],-1),_=e("strong",null,"Testimonials",-1),b=e("br",null,null,-1),w=e("em",null,"One sentence.",-1),y=e("em",null,"need to hear your testimonial",-1),k=e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"Tweet",-1),v=e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord",-1),x=e("p",null,[e("strong",null,"Reviews"),e("br"),t(" The following popular rating platforms allow you to post your rating and testimonial publicly, which automatically gives it more exposure.")],-1),C=e("ul",null,[e("li",null,[e("a",{href:"https://www.g2.com/products/directus/reviews",target:"_blank",rel:"noopener noreferrer"},"G2")]),e("li",null,[e("a",{href:"https://www.capterra.com/p/156619/Directus",target:"_blank",rel:"noopener noreferrer"},"Capterra")]),e("li",null,[e("a",{href:"https://www.trustradius.com/products/directus/reviews",target:"_blank",rel:"noopener noreferrer"},"TrustRadius")]),e("li",null,[e("a",{href:"https://www.producthunt.com/posts/directus-9",target:"_blank",rel:"noopener noreferrer"},"Product Hunt")])],-1),D=e("h2",{id:"community-engagement",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#community-engagement"},"#"),t(" Community Engagement")],-1),T=e("p",null,[e("strong",null,"While the Directus Core Team spearheads development, community engagement is an essential part of the Directus mission. We need your help in order to make Directus all it can be.")],-1),G=e("p",null,[e("strong",null,"GitHub Sponsors"),e("br"),t(" The core team is funded. All monthly donations via "),e("a",{href:"https://github.com/sponsors/directus",target:"_blank",rel:"noopener noreferrer"},"GitHub Sponsors"),t(" form a budget to compensate the top community contributors. Donate to sponsor more "),e("a",{href:"https://github.com/orgs/directus/people",target:"_blank",rel:"noopener noreferrer"},"community developers")],-1),S=e("p",null,[e("strong",null,"Code Pull Requests"),e("br"),t(" Squashing bugs, optimizing the codebase, increasing test coverage, and adding new features, are all extremely valuable. Obviously, you\u2019re making the platform better for yourself as well. "),e("em",null,"That\u2019s a double whammy!"),t(),e("a",{href:"https://github.com/directus",target:"_blank",rel:"noopener noreferrer"},"Go make your PR on GitHub!")],-1),E=e("p",null,[e("strong",null,"Bug Reporting"),e("br"),t(" If you find an issue in Directus, no matter how small, we\u2019d love to hear about it. Proper bug reporting helps our team improve platform stability. "),e("a",{href:"https://github.com/directus/directus/issues/new",target:"_blank",rel:"noopener noreferrer"},"Report a bug on GitHub")],-1),q=e("strong",null,"App Translations",-1),H=e("br",null,null,-1),P=e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"Crowdin integration",-1),R=e("h2",{id:"financial-support",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#financial-support"},"#"),t(" Financial Support")],-1),W=e("p",null,[e("strong",null,"Talented full-time and part-time staff, infrastructure, and third-party services are just some of our organization\u2019s many expenses. Here are a few support avenues that help us keep the lights on.")],-1),z=e("p",null,[e("strong",null,"Premium Support"),e("br"),e("em",null,"Software engineering is hard!"),t(" Let our Core Team help you better manage your Directus project with a dedicated Premium Support agreement so your devs can focus on your app\u2019s core business logic. "),e("a",{href:"https://directus.io/contact",target:"_blank",rel:"noopener noreferrer"},"Contact the Team"),t(" for more info.")],-1),B=e("strong",null,"Sponsored Work",-1),j=e("br",null,null,-1),A=e("em",null,"and for your project!",-1),I=e("strong",null,"Directus Cloud",-1),N=e("br",null,null,-1),F={class:"tip hint"},O=e("div",{class:"hint-title"},"Ready to try out Cloud?",-1),V=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Enterprise Cloud"),e("p",null,[t("Need total customization, unlimited scalability, and dedicated support? "),e("a",{href:"https://directus.io/contact",target:"_blank",rel:"noopener noreferrer"},"Contact us")])],-1),Q="Backing Directus",J=!1,U="What you can do to support Directus.",X="4 min read",Z={__name:"backing-directus",setup(Y,{expose:i}){const s={title:"Backing Directus",modularExtension:!1,description:"What you can do to support Directus.",readTime:"4 min read"};return i({frontmatter:s}),(L,M)=>{const r=a("router-link"),l=a("docs-wrapper");return u(),c(l,{frontmatter:s},{default:o(()=>[e("div",d,[p,h,m,f,g,e("p",null,[_,b,w,t(" Even that was a sentence and it was only two words! If you\u2019re a fan of Directus, we\u2019d love to hear why with a short endorsement\u2026 More importantly, potential new users "),y,t(" to see if the product is right for them! Shoot us an "),n(r,{to:"/docsmailto:info@directus.io"},{default:o(()=>[t("email")]),_:1}),t(", "),k,t(", or "),v,t(" message with your name, title, and company.")]),x,C,D,T,G,S,e("p",null,[t("Not quite a software engineer yet? We have plenty of documentation that can always use some extra attention. Learn more in our "),n(r,{to:"/docs/contributing/introduction"},{default:o(()=>[t("Contributors Guide")]),_:1}),t(".")]),E,e("p",null,[q,H,t(" Every button, element, or other line of text in the app is "),n(r,{to:"/docs/contributing/translations"},{default:o(()=>[t("fully translatable")]),_:1}),t(". These translations make our app an international platform. Our "),P,t(" makes polishing existing translations or creating new ones a breeze.")]),R,W,z,e("p",null,[B,j,n(r,{to:"/docs/getting-started/support#commissioned-features"},{default:o(()=>[t("Commissioned Features")]),_:1}),t(" and "),n(r,{to:"/docs/getting-started/support#expedited-fixes"},{default:o(()=>[t("Expedited Fixes")]),_:1}),t(" are great ways to financially support the development of Directus and improve the codebase for the community "),A]),e("p",null,[I,N,t(" Cloud architecture, software updates, and configuration optimizations require fully dedicated effort. Cut through all that digital red-tape and run your projects on "),n(r,{to:"/docs/cloud/overview"},{default:o(()=>[t("Directus Cloud")]),_:1}),t(". You get production-ready projects with zero vendor lock-in, 90 second average build times, incredibly fair pricing, scaling at the click of a button, automatic updates with no downtime and a constant stream of new "),n(r,{to:"/docs/cloud/glossary#extensions"},{default:o(()=>[t("Cloud Exclusive Extensions")]),_:1}),t(".")]),e("p",null,[t("We do everything we can to make hosting on "),n(r,{to:"/docs/cloud/overview"},{default:o(()=>[t("Directus Cloud")]),_:1}),t(" a no-brainer.")]),e("div",F,[O,e("p",null,[t("Test out Directus Cloud now for free with the "),n(r,{to:"/docs/getting-started/quickstart"},{default:o(()=>[t("Quickstart Guide")]),_:1}),t(".")])]),V])]),_:1})}}};export{Z as default,U as description,J as modularExtension,X as readTime,Q as title};
@@ -0,0 +1 @@
1
+ import{a as r,o as c,e as h,y as l,u as e,t as a,q as t,z as s}from"./runtime-core.esm-bundler.22ec0346.js";const f={class:"markdown-body"},m=e("blockquote",null,[e("p",null,[t("Workflows are the use of custom access permissions to add structured stages to the flow of content creation or data generation. Workflows enable you to do things like pass off work in progress between multiple roles, build decision trees, "),e("em",null,"and beyond!")])],-1),p={class:"tip hint"},w={class:"hint-title"},_=e("strong",null,"Directus Version:",-1),g=e("h2",{id:"explanation",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#explanation"},"#"),t(" Explanation")],-1),b=e("p",null,"Workflows are when you use these permissions techniques to create structured stages to content or data creation. In simplest terms, it is when you have two or more roles, and you give them different permissions at each stage in the content creation process.",-1),k=e("p",null,[t("There are an infinite number of possible workflows you could configure. But for this recipe, we will configure a simple workflow where "),e("code",null,"writers"),t(" and "),e("code",null,"editors"),t(" work together to create, co-edit and publish "),e("code",null,"articles"),t(".")],-1),y=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/users-roles-permissions/workflows-20220909/workflows-20220909B.webp",alt:"A Workflow"})],-1),v=e("p",null,[t("For this recipe, our workflow will have three stages, "),e("code",null,"draft"),t(", "),e("code",null,"under review"),t(", and "),e("code",null,"published"),t(", which will be defined in a "),e("code",null,"status"),t(" field.")],-1),x=e("table",null,[e("thead",null,[e("tr",null,[e("th",null,[e("code",null,"status")]),e("th",null,[e("code",null,"Author")]),e("th",null,[e("code",null,"Editor")])])]),e("tbody",null,[e("tr",null,[e("td",null,[e("em",null,"Article is not yet created")]),e("td",null,[t("Author can create new items in "),e("code",null,"articles"),t(", but only with a status of "),e("code",null,"draft"),t(".")]),e("td",null,[t("Editor cannot create new items in "),e("code",null,"articles"),t(".")])]),e("tr",null,[e("td",null,[e("code",null,"Draft")]),e("td",null,[t("Author creates and edits the article. Then can set status to "),e("code",null,"under review"),t(" when ready.")]),e("td",null,"Editor has either read-only, or no permissions at all.")]),e("tr",null,[e("td",null,[e("code",null,"Under Review")]),e("td",null,[t("Author can edit the article\u2019s content, but not the "),e("code",null,"status"),t(" field.")]),e("td",null,[t("Editor can edit the article, as well as set status to "),e("code",null,"Draft"),t(" or "),e("code",null,"Published"),t(".")])]),e("tr",null,[e("td",null,[e("code",null,"Published")]),e("td",null,"Author is no longer responsible for article, and has read-only permissions."),e("td",null,"Editor has permissions to update or delete the article.")])])],-1),A=e("p",null,[t("This whole workflow is created with permissions. All we need to do to create these stages is change the "),e("code",null,"author"),t(" and "),e("code",null,"editor"),t(" permissions for each item in "),e("code",null,"articles"),t(" conditionally, based on the value of "),e("code",null,"status"),t(".")],-1),T=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/users-roles-permissions/workflows-20220909/workflows-20220909A.webp",alt:"A Workflow"})],-1),E=e("h2",{id:"how-to-guide",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-guide"},"#"),t(" How-To Guide")],-1),U={class:"tip hint"},W=e("div",{class:"hint-title"},"Requirements",-1),C=e("p",null,"To implement a workflow, you\u2019ll need:",-1),F=e("li",null,[t("A collection with some kind of content. In this recipe, we\u2019ll use a collection called "),e("code",null,"articles"),t(".")],-1),B=e("li",null,[t("A field on that collection to validate conditionally. We\u2019ll use a "),e("code",null,"status"),t(" field.")],-1),S=e("li",null,[t("Two "),e("em",null,"(or more)"),t(" roles that will work to author content. We\u2019ll use "),e("code",null,"writer"),t(" and "),e("code",null,"editor"),t(" roles.")],-1),D=e("p",null,[t("To create a structured workflow for "),e("code",null,"articles"),t(", follow these steps.")],-1),I=e("code",null,"status",-1),V=e("code",null,"status",-1),N=e("em",null,[t("("),e("code",null,"draft"),t(", "),e("code",null,"under review"),t(" and "),e("code",null,"published"),t(")")],-1),P=e("code",null,"author",-1),q=e("code",null,"editor",-1),K=e("code",null,"status",-1),R=e("ul",null,[e("li",null,[t("For the "),e("code",null,"author"),t(" role: "),e("ul",null,[e("li",null,[t("Set a filter under "),e("strong",null,"Create > Use Custom > Field Validation"),t(" to ensure the author can only create articles with a "),e("code",null,"draft"),t(" status.")]),e("li",null,"Enable all read permissions."),e("li",null,[t("Set a filter under "),e("strong",null,"Update > Use Custom > Item Permissions"),t(" to ensure the user can update articles with a "),e("code",null,"draft"),t(" or "),e("code",null,"under review"),t(" status.")]),e("li",null,[t("Set a filter under "),e("strong",null,"Update > Use Custom > Field Validation"),t(" to ensure the user can only update article status to "),e("code",null,"under review"),t(".")]),e("li",null,"Keep delete permissions restricted."),e("li",null,"Keep shares permissions restricted.")])]),e("li",null,[t("For the "),e("code",null,"editor"),t(" role: "),e("ul",null,[e("li",null,"Keep create permissions restricted."),e("li",null,"Enable all read permissions."),e("li",null,[t("Set a filter under "),e("strong",null,"Update > Use Custom > Item Permissions"),t(" to ensure the user can only update articles with an "),e("code",null,"under review"),t(" status.")]),e("li",null,[t("Set a filter under "),e("strong",null,"Update > Use Custom > Field Validation"),t(" to ensure the user can only update status to "),e("code",null,"published"),t(".")]),e("li",null,"Keep delete permissions restricted."),e("li",null,"Keep shares permissions restricted.")])])],-1),Y=e("h2",{id:"final-tips",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#final-tips"},"#"),t(" Final Tips")],-1),H=e("p",null,"This recipe covers one simple example of a workflow. As you move forward and created your own custom-tailored workflows, just remember:",-1),$=e("ul",null,[e("li",null,"You could use any number of roles."),e("li",null,"You could use any collection or relationally linked collections."),e("li",null,[t("You can add more stages in your workflow by adding more values to your "),e("code",null,"status"),t(" field.")])],-1),j=e("p",null,"Be sure to pay close attention to how you configure custom access permissions for workflows. Unintentional misconfigurations can have side-effects.",-1),z=e("p",null,[t("In our simple "),e("code",null,"articles"),t(" workflow above, a minor misconfiguration in a co-editing workflow between two team members "),e("em",null,"might"),t(" not be a big problem. But in other cases it can have big consequences. For example, let\u2019s imagine for a second that:")],-1),G=e("ul",null,[e("li",null,[t("The "),e("code",null,"writer"),t(" and "),e("code",null,"editor"),t(" roles were "),e("code",null,"teacher"),t(" and "),e("code",null,"student"),t(" roles.")]),e("li",null,[t("The "),e("code",null,"articles"),t(" collection was instead a "),e("code",null,"tests"),t(" collection.")]),e("li",null,[t("The "),e("code",null,"status"),t(" field defined if the test was "),e("code",null,"not started"),t(", "),e("code",null,"in progress"),t(", or "),e("code",null,"submitted"),t(".")])],-1),J=e("p",null,"A minor misconfiguration here could ruin academic integrity. Here\u2019s a few potential issues:",-1),L=e("ul",null,[e("li",null,"students retake/re-edit their own submitted test."),e("li",null,"students take/edit/delete tests of other students."),e("li",null,"teachers modify the results of students that they like or don\u2019t like."),e("li",null,[e("em",null,"and beyond!")])],-1),M=e("p",null,"When creating your own workflow, its a good idea to define each role involved, each stage in the workflow, and the explicit set of permissions each role has at each stage.",-1),O={class:"tip hint"},Q=e("div",{class:"hint-title"},"Next Steps",-1),te="Basic Workflows",le=!1,oe=null,se=[],ne=null,ie="9.18.1",re=null,ae="Eron Powell",de={__name:"basic-workflows",setup(X,{expose:d}){const n={title:"Basic Workflows",modularExtension:!1,description:null,tags:[],skill_level:null,directus_version:"9.18.1",author_override:null,author:"Eron Powell"};return d({frontmatter:n}),(i,Z)=>{const o=r("router-link"),u=r("docs-wrapper");return c(),h(u,{frontmatter:n},{default:l(()=>[e("div",f,[m,e("div",p,[e("div",w,"Author: "+a(i.$frontmatter.author),1),e("p",null,[_,t(" "+a(i.$frontmatter.directus_version),1)])]),g,e("p",null,[t("Remember, your basic "),s(o,{to:"/docs/configuration/users-roles-permissions/permissions.md#configure-permissions"},{default:l(()=>[t("CRUDS permissions")]),_:1}),t(" define what a role can and can\u2019t do to all items in a collection. "),s(o,{to:"/docs/configuration/users-roles-permissions/permissions.md#configure-custom-permissions"},{default:l(()=>[t("Custom access permissions")]),_:1}),t(" take things a step further and let you define what a role can and can\u2019t do to each item in a collection, "),e("em",null,[t("based on its "),s(o,{to:"/docs/configuration/data-model/fields.md"},{default:l(()=>[t("field values")]),_:1})]),t(".")]),b,k,y,v,x,A,T,E,e("div",U,[W,C,e("ul",null,[e("li",null,[t("An understanding of "),s(o,{to:"/docs/configuration/users-roles-permissions.md"},{default:l(()=>[t("permissions")]),_:1}),t(" and "),s(o,{to:"/docs/reference/filter-rules.md"},{default:l(()=>[t("filters")]),_:1}),t(" in Directus.")]),F,B,S])]),D,e("ol",null,[e("li",null,[t("First, "),s(o,{to:"/docs/configuration/data-model/fields.md#create-a-field-standard"},{default:l(()=>[t("create a field")]),_:1}),t(" to track the article status. We\u2019ll call this field "),I,t(", but it could be named anything.")]),e("li",null,[s(o,{to:"/docs/configuration/data-model/fields.md#create-a-field-advanced"},{default:l(()=>[t("Create a field")]),_:1}),t(" with a Dropdown Interface. Name it "),V,t(" and add the stages "),N,t(" needed for your content creation process.")]),e("li",null,[t("Next, "),s(o,{to:"/docs/configuration/users-roles-permissions/roles.md#create-a-role"},{default:l(()=>[t("create two roles")]),_:1}),t(": "),P,t(" and "),q,t(".")]),e("li",null,[t("Finally, configure "),s(o,{to:"/docs/configuration/users-roles-permissions/permissions.md#configure-custom-permissions"},{default:l(()=>[t("custom access permissions")]),_:1}),t(" for each role based on the value of the "),K,t(" field. "),R])]),Y,H,$,j,z,G,J,L,M,e("div",O,[Q,e("p",null,[t("Workflows can be further enhanced with custom "),s(o,{to:"/docs/extensions/interfaces.md"},{default:l(()=>[t("Interfaces")]),_:1}),t(" as well as "),s(o,{to:"/docs/configuration/flows.md"},{default:l(()=>[t("flows")]),_:1}),t(".")])])])]),_:1})}}};export{ae as author,re as author_override,de as default,oe as description,ie as directus_version,le as modularExtension,ne as skill_level,se as tags,te as title};
@@ -1 +1 @@
1
- var e={identifier:"\u09B6\u09A8\u09BE\u0995\u09CD\u09A4\u0995\u09BE\u09B0\u09C0",avatar:"\u0985\u09AC\u09A4\u09BE\u09B0",application:"\u0985\u09CD\u09AF\u09BE\u09AA\u09CD\u09B2\u09BF\u0995\u09C7\u09B6\u09A8",default_provider:"\u09A1\u09BF\u09AB\u09B2\u09CD\u099F",method:"\u09AA\u09A6\u09CD\u09A7\u09A4\u09BF",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",logs:"\u0995\u09CD\u09B0\u09BF\u09DF\u09BE\u0995\u09B2\u09BE\u09AA",reset_width:"\u09AA\u09CD\u09B0\u09B8\u09CD\u09A5 \u09AA\u09C1\u09A8\u0983\u09B8\u09CD\u09A5\u09BE\u09AA\u09A8 \u0995\u09B0\u09C1\u09A8",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",location:"\u0985\u09AC\u09B8\u09CD\u09A5\u09BE\u09A8",condition_rules:"\u09B6\u09B0\u09CD\u09A4 \u09AC\u09BF\u09A7\u09BF",input:"\u0987\u09A8\u09AA\u09C1\u099F",maps:"\u09AE\u09BE\u09A8\u099A\u09BF\u09A4\u09CD\u09B0",switch_user:"\u0987\u0989\u099C\u09BE\u09B0 \u09AC\u09A6\u09B2\u09BE\u09A8",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",export_items:"\u0986\u0987\u099F\u09C7\u09AE \u09B0\u09AA\u09CD\u09A4\u09BE\u09A8\u09BF \u0995\u09B0\u09C1\u09A8",and:"\u098F\u09AC\u0982",or:"\u0985\u09A5\u09AC\u09BE",init:"\u098F\u099F\u09BE\u09DF",dataset_too_large_currently_showing_n_items:"\u09A1\u09C7\u099F\u09BE\u09B8\u09C7\u099F\u099F\u09BF \u0985\u09A8\u09C7\u0995 \u09AC\u09DC\u09CB\u0964 \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u09B6\u09C1\u09A7\u09C1 \u09AE\u09BE\u09A4\u09CD\u09B0 \u09AA\u09CD\u09B0\u09A5\u09AE {n} \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09A6\u09C7\u0996\u09BE\u09A8\u09CB \u09B9\u099A\u09CD\u099B\u09C7\u0964",modifier:"\u09AC\u09BE\u099B\u09BE\u0987\u0995\u09BE\u09B0\u09C0",custom:"\u09AC\u09CD\u09AF\u0995\u09CD\u09A4\u09BF\u0997\u09A4\u0995\u09B0\u09A3",hook:"\u09B9\u09C1\u0995",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",db_only_click_to_configure:"\u09B6\u09C1\u09A7\u09C1\u09AE\u09BE\u09A4\u09CD\u09B0 \u09A4\u09A5\u09CD\u09AF\u09B6\u09BE\u09B2: \u09B8\u099C\u09CD\u099C\u09BF\u09A4 \u0995\u09B0\u09A4\u09C7 \u0995\u09CD\u09B2\u09BF\u0995 \u0995\u09B0\u09C1\u09A8",show_active_items:"\u09B8\u0995\u09CD\u09B0\u09BF\u09DF \u0986\u0987\u099F\u09C7\u09AE\u0997\u09C1\u09B2\u09BF \u09A6\u09C7\u0996\u09C1\u09A8",show_archived_items:"\u0986\u0995\u09CD\u09B0\u09BE\u0987\u09AD \u0986\u0987\u099F\u09C7\u09AE \u09A6\u09C7\u0996\u09C1\u09A8",show_all_items:"\u09B8\u09AC \u0986\u0987\u099F\u09C7\u09AE",edited:"\u09B8\u09AE\u09CD\u09AA\u09BE\u09A6\u09BF\u09A4 \u09A1\u09C7\u099F\u09BE",required:"\u0986\u09AC\u09B6\u09CD\u09AF\u0995",required_for_app_access:"\u0985\u09CD\u09AF\u09BE\u09AA \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u0986\u09AC\u09B6\u09CD\u09AF\u0995",requires_value:"\u09A1\u09C7\u099F\u09BE \u0986\u09AC\u09B6\u09CD\u09AF\u0995",create_preset:"\u09AA\u09CD\u09B0\u09BF\u09B8\u09C7\u099F \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_panel:"\u09AA\u09CD\u09AF\u09BE\u09A8\u09C7\u09B2 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_role:"\u09AD\u09C2\u09AE\u09BF\u0995\u09BE \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_user:"\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",message:"\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE",delete_panel:"\u09AA\u09CD\u09AF\u09BE\u09A8\u09C7\u09B2 \u09AE\u09C1\u099B\u09C1\u09A8",create_webhook:"\u0993\u09AF\u09BC\u09C7\u09AC\u09B9\u09C1\u0995 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_translation_string:"\u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",no_translation_string:"\u0995\u09CB\u09A8 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09A8\u09C7\u0987",no_translation_string_copy:"\u098F\u0996\u09A8\u0993 \u0995\u09CB\u09A8 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09A8\u09C7\u0987\u0964",translation_string_key_placeholder:"\u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982-\u098F\u09B0 \u099A\u09BE\u09AC\u09BF...",translation_string_translations_placeholder:"\u09A8\u09A4\u09C1\u09A8 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8",edit_translation_string:"\u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09B8\u09AE\u09CD\u09AA\u09BE\u09A6\u09A8\u09BE \u0995\u09B0\u09C1\u09A8",delete_translation_string_copy:'\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09B8\u09A4\u09CD\u09AF\u09BF\u0987 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 "{key}" \u09AE\u09C1\u099B\u09A4\u09C7 \u099A\u09BE\u09A8? \u098F\u0987 \u0995\u09CD\u09B0\u09BF\u09AF\u09BC\u09BE\u099F\u09BF \u0986\u09B0 \u09AA\u09C2\u09B0\u09CD\u09AC\u09BE\u09AC\u09B8\u09CD\u09A5\u09BE\u09AF\u09BC \u09AB\u09BF\u09B0\u09BF\u09DF\u09C7 \u0986\u09A8\u09BE \u09AF\u09BE\u09AC\u09C7 \u09A8\u09BE\u0964',invite_users:"\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09A6\u09C7\u09B0 \u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u099C\u09BE\u09A8\u09BE\u09A8",invite:"\u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u0995\u09B0\u09C1\u09A8",email_already_invited:'\u098F\u0987 \u0987\u09AE\u09C7\u09B2\u099F\u09BF\u09A4\u09C7 "{email}" \u0987\u09A4\u09BF\u09AE\u09A7\u09CD\u09AF\u09C7\u0987 \u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u099C\u09BE\u09A8\u09BE\u09A8\u09CB \u09B9\u09AF\u09BC\u09C7\u099B\u09C7\u09F7',subject:"\u09AC\u09BF\u09B7\u09DF",inbox:"\u0987\u09A8\u09AC\u0995\u09CD\u09B8",emails:"\u0987\u09AE\u09C7\u0987\u09B2\u0997\u09C1\u09B2\u09BF",connection_excellent:"\u099A\u09AE\u09CE\u0995\u09BE\u09B0 \u09B8\u0982\u09AF\u09CB\u0997",connection_good:"\u09AD\u09BE\u09B2\u09CB \u09B8\u0982\u09AF\u09CB\u0997",connection_fair:"\u09AE\u09CB\u099F\u09BE\u09AE\u09C1\u099F\u09BF \u09B8\u0982\u09AF\u09CB\u0997",connection_poor:"\u0996\u09BE\u09B0\u09BE\u09AA \u09B8\u0982\u09AF\u09CB\u0997",primary:"\u09AA\u09CD\u09B0\u09BE\u09A5\u09AE\u09BF\u0995",rename_folder:"\u09AB\u09CB\u09B2\u09CD\u09A1\u09BE\u09B0\u09C7\u09B0 \u09A8\u09A4\u09C1\u09A8 \u09A8\u09BE\u09AE \u09A6\u09BF\u09A8",delete_folder:"\u09AB\u09CB\u09B2\u09CD\u09A1\u09BE\u09B0 \u09AE\u09C1\u099B\u09C1\u09A8",reset_bookmark:"\u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09B0\u09BF\u09B8\u09C7\u099F \u0995\u09B0\u09C1\u09A8",update_bookmark:"\u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u0986\u09AA\u09A1\u09C7\u099F \u0995\u09B0\u09C1\u09A8",delete_bookmark:"\u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",delete_bookmark_copy:'\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09B8\u09A4\u09CD\u09AF\u09BF\u0987 \u098F\u0987 "{bookmark}" \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995\u099F\u09BF\u0995\u09C7 \u09AE\u09C1\u099B\u09A4\u09C7 \u099A\u09BE\u09A8? \u098F\u0987 \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995\u099F\u09BF \u0995\u09BF\u09A8\u09CD\u09A4\u09C1 \u0986\u09B0 \u09AA\u09C2\u09B0\u09CD\u09AC\u09BE\u09AC\u09B8\u09CD\u09A5\u09BE\u09DF \u09AB\u09C7\u09B0\u09BE\u09A8\u09CB \u09AF\u09BE\u09AC\u09C7 \u09A8\u09BE\u0964',delete_personal_bookmark:"\u09AC\u09CD\u09AF\u0995\u09CD\u09A4\u09BF\u0997\u09A4 \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",delete_role_bookmark:"\u09AD\u09C2\u09AE\u09BF\u0995\u09BE \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",delete_global_bookmark:"\u0997\u09CD\u09B2\u09CB\u09AC\u09BE\u09B2 \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",logoutReason:{SIGN_OUT:"\u09B8\u09BE\u0987\u09A8 \u0986\u0989\u099F \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7",SESSION_EXPIRED:"\u09B8\u09C7\u09B6\u09A8 \u0989\u09A4\u09CD\u09A4\u09C0\u09B0\u09CD\u09A3"},public_label:"\u09B8\u09BE\u09B0\u09CD\u09AC\u099C\u09A8\u09C0\u09A8",public_description:"\u098F\u099F\u09BE \u09A8\u09BF\u09DF\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u0995\u09B0\u09C7 \u09AA\u09CD\u09B0\u09AE\u09BE\u09A3\u09C0\u0995\u09B0\u09A3 \u099B\u09BE\u09A1\u09BC\u09BE \u0995\u09CB\u09A8 \u0995\u09CB\u09A8 API \u09A1\u09C7\u099F\u09BE \u0989\u09AA\u09B2\u09AC\u09CD\u09A7\u0964",admin_description:"\u0985\u09A8\u09BF\u09AF\u09BC\u09A8\u09CD\u09A4\u09CD\u09B0\u09BF\u09A4 \u0985\u09CD\u09AF\u09BE\u09AA/\u098F\u09AA\u09BF\u0986\u0987 \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8 \u09B8\u09B9 \u09AA\u09CD\u09B0\u09BE\u09A5\u09AE\u09BF\u0995 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u09A8\u09BF\u0995 \u09AD\u09C2\u09AE\u09BF\u0995\u09BE\u0964",not_allowed:"\u0985\u09A8\u09C1\u09AE\u09A4\u09BF \u09A8\u09C7\u0987",directus_version:"\u09A1\u09BE\u0987\u09B0\u09C7\u0995\u09CD\u099F\u09BE\u09B8 \u09B8\u0982\u09B8\u09CD\u0995\u09B0\u09A3",node_version:"\u09A8\u09CB\u09A1 \u09B8\u0982\u09B8\u09CD\u0995\u09B0\u09A3",node_uptime:"\u09A8\u09CB\u09A1 \u0986\u09AA\u099F\u09BE\u0987\u09AE",os_type:"\u0995\u09CB\u09A8 OS",os_version:"OS \u09B8\u0982\u09B8\u09CD\u0995\u09B0\u09A3",os_uptime:"\u0993\u098F\u09B8 \u0986\u09AA\u099F\u09BE\u0987\u09AE",os_totalmem:"\u0993\u098F\u09B8 \u09AE\u09C7\u09AE\u09CB\u09B0\u09BF",archive:"\u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0",archive_confirm:"\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u09AF\u09C7 \u0986\u09AA\u09A8\u09BF \u098F\u0987 \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09C7 \u09AA\u09BE\u09A0\u09BE\u09A4\u09C7 \u099A\u09BE\u09A8?",archive_confirm_count:"\u0995\u09CB\u09A8 \u0986\u0987\u099F\u09C7\u09AE \u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09BF\u09A4 \u0995\u09B0\u09BE \u09B9\u09DF\u09A8\u09BF | \u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u09AF\u09C7 \u0986\u09AA\u09A8\u09BF \u098F\u0987 \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09C7 \u09AA\u09BE\u09A0\u09BE\u09A4\u09C7 \u099A\u09BE\u09A8? | \u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u0986\u09AA\u09A8\u09BF {count}\u099F\u09BF \u0986\u0987\u099F\u09C7\u09AE \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09C7 \u09AA\u09BE\u09A0\u09BE\u09A4\u09C7 \u099A\u09BE\u09A8?",reset_system_permissions_to:"\u09B8\u09BF\u09B8\u09CD\u099F\u09C7\u09AE \u0985\u09A8\u09C1\u09AE\u09A4\u09BF \u09B0\u09BF\u09B8\u09C7\u099F \u0995\u09B0\u09C1\u09A8:",reset_system_permissions_copy:"\u098F\u0987 \u0995\u09CD\u09B0\u09BF\u09AF\u09BC\u09BE\u099F\u09BF \u0986\u09AA\u09A8\u09BE\u09B0 \u09B8\u09BF\u09B8\u09CD\u099F\u09C7\u09AE\u09C7\u09B0 \u09B8\u0982\u0997\u09CD\u09B0\u09B9\u0997\u09C1\u09B2\u09BF\u09A4\u09C7 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u0997 \u0995\u09B0\u09BE \u09AF\u09C7\u0995\u09CB\u09A8\u09CB \u09AC\u09CD\u09AF\u09BE\u0995\u09CD\u09A4\u09BF\u0997\u09A4 \u0985\u09A8\u09C1\u09AE\u09A4\u09BF\u0997\u09C1\u09B2\u09BF\u0995\u09C7 \u0993\u09AD\u09BE\u09B0\u09B0\u09BE\u0987\u099F \u0995\u09B0\u09AC\u09C7\u09F7 \u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4?",the_following_are_minimum_permissions:'\u09AF\u0996\u09A8 "\u0985\u09CD\u09AF\u09BE\u09AA \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8" \u09B8\u0995\u09CD\u09B7\u09AE \u0995\u09B0\u09BE \u09A5\u09BE\u0995\u09C7 \u09A4\u0996\u09A8 \u09A8\u09BF\u09AE\u09CD\u09A8\u09B2\u09BF\u0996\u09BF\u09A4\u0997\u09C1\u09B2\u09BF \u09A8\u09CD\u09AF\u09C2\u09A8\u09A4\u09AE \u0985\u09A8\u09C1\u09AE\u09A4\u09BF\u0997\u09C1\u09B2\u09CB \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8\u09F7 \u0986\u09AA\u09A8\u09BF \u098F\u09B0 \u09AC\u09BE\u0987\u09B0\u09C7 \u0985\u09A8\u09CD\u09AF \u0995\u09CB\u09A8\u0993 \u0985\u09A8\u09C1\u09AE\u09A4\u09BF\u0993 \u099A\u09BE\u09B2\u09C1 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7\u09A8, \u09A4\u09AC\u09C7 \u09A8\u09BF\u099A\u09C7\u09B0\u0997\u09C1\u09B2\u09CB \u09A8\u09AF\u09BC\u0964',app_access_minimum:"\u09A8\u09CD\u09AF\u09C2\u09A8\u09A4\u09AE \u0985\u09CD\u09AF\u09BE\u09AA \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8\u0997\u09C1\u09B2\u09BF",recommended_defaults:"\u09AA\u09CD\u09B0\u09B8\u09CD\u09A4\u09BE\u09AC\u09BF\u09A4 \u09A1\u09BF\u09AB\u09B2\u09CD\u099F",unarchive:"\u0986\u09B0\u09CD\u0995\u09BE\u0987\u09AD \u09AE\u09C1\u0995\u09CD\u09A4 \u0995\u09B0\u09C1\u09A8",unarchive_confirm:"\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u09AF\u09C7 \u0986\u09AA\u09A8\u09BF \u098F\u0987 \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0 \u09A5\u09C7\u0995\u09C7 \u09AC\u09C7\u09B0 \u0995\u09B0\u09A4\u09C7 \u099A\u09BE\u09A8?",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"}},field_options:{directus_collections:{archive_divider:"\u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0"}},interfaces:{"presentation-links":{primary:"\u09AA\u09CD\u09B0\u09BE\u09A5\u09AE\u09BF\u0995"}},operations:{log:{message:"\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE"},notification:{message:"\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE"}}},r=e.identifier,a=e.avatar,i=e.application,o=e.default_provider,t=e.method,_=e.published,n=e.draft,s=e.archived,l=e.modules,d=e.module_bar,c=e.logs,v=e.reset_width,m=e.tile_size,p=e.edit_field,u=e.conditions,f=e.location,h=e.condition_rules,b=e.input,k=e.maps,g=e.switch_user,w=e.item_creation,y=e.item_revision,x=e.enter_a_name,q=e.duplicate_field,S=e.half_width,I=e.full_width,O=e.group,R=e.export_items,j=e.and,z=e.or,E=e.init,N=e.dataset_too_large_currently_showing_n_items,P=e.modifier,A=e.custom,D=e.hook,G=e.fill_width,T=e.field_name_translations,U=e.enter_password_to_enable_tfa,X=e.add_field,B=e.role_name,C=e.branch,F=e.leaf,H=e.indeterminate,J=e.edit_collection,K=e.exclusive,L=e.children,M=e.db_only_click_to_configure,Q=e.show_active_items,V=e.show_archived_items,W=e.show_all_items,Y=e.edited,Z=e.required,$=e.required_for_app_access,ee=e.requires_value,re=e.create_preset,ae=e.create_panel,ie=e.create_role,oe=e.create_user,te=e.message,_e=e.delete_panel,ne=e.create_webhook,se=e.create_translation_string,le=e.no_translation_string,de=e.no_translation_string_copy,ce=e.translation_string_key_placeholder,ve=e.translation_string_translations_placeholder,me=e.edit_translation_string,pe=e.delete_translation_string_copy,ue=e.invite_users,fe=e.invite,he=e.email_already_invited,be=e.subject,ke=e.inbox,ge=e.emails,we=e.connection_excellent,ye=e.connection_good,xe=e.connection_fair,qe=e.connection_poor,Se=e.primary,Ie=e.rename_folder,Oe=e.delete_folder,Re=e.reset_bookmark,je=e.update_bookmark,ze=e.delete_bookmark,Ee=e.delete_bookmark_copy,Ne=e.delete_personal_bookmark,Pe=e.delete_role_bookmark,Ae=e.delete_global_bookmark,De=e.logoutReason,Ge=e.public_label,Te=e.public_description,Ue=e.admin_description,Xe=e.not_allowed,Be=e.directus_version,Ce=e.node_version,Fe=e.node_uptime,He=e.os_type,Je=e.os_version,Ke=e.os_uptime,Le=e.os_totalmem,Me=e.archive,Qe=e.archive_confirm,Ve=e.archive_confirm_count,We=e.reset_system_permissions_to,Ye=e.reset_system_permissions_copy,Ze=e.the_following_are_minimum_permissions,$e=e.app_access_minimum,er=e.recommended_defaults,rr=e.unarchive,ar=e.unarchive_confirm,ir=e.fields,or=e.field_options,tr=e.interfaces,_r=e.operations;export{X as add_field,Ue as admin_description,j as and,$e as app_access_minimum,i as application,Me as archive,Qe as archive_confirm,Ve as archive_confirm_count,s as archived,a as avatar,C as branch,L as children,h as condition_rules,u as conditions,we as connection_excellent,xe as connection_fair,ye as connection_good,qe as connection_poor,ae as create_panel,re as create_preset,ie as create_role,se as create_translation_string,oe as create_user,ne as create_webhook,A as custom,N as dataset_too_large_currently_showing_n_items,M as db_only_click_to_configure,e as default,o as default_provider,ze as delete_bookmark,Ee as delete_bookmark_copy,Oe as delete_folder,Ae as delete_global_bookmark,_e as delete_panel,Ne as delete_personal_bookmark,Pe as delete_role_bookmark,pe as delete_translation_string_copy,Be as directus_version,n as draft,q as duplicate_field,J as edit_collection,p as edit_field,me as edit_translation_string,Y as edited,he as email_already_invited,ge as emails,x as enter_a_name,U as enter_password_to_enable_tfa,K as exclusive,R as export_items,T as field_name_translations,or as field_options,ir as fields,G as fill_width,I as full_width,O as group,S as half_width,D as hook,r as identifier,ke as inbox,H as indeterminate,E as init,b as input,tr as interfaces,fe as invite,ue as invite_users,w as item_creation,y as item_revision,F as leaf,f as location,De as logoutReason,c as logs,k as maps,te as message,t as method,P as modifier,d as module_bar,l as modules,le as no_translation_string,de as no_translation_string_copy,Fe as node_uptime,Ce as node_version,Xe as not_allowed,_r as operations,z as or,Le as os_totalmem,He as os_type,Ke as os_uptime,Je as os_version,Se as primary,Te as public_description,Ge as public_label,_ as published,er as recommended_defaults,Ie as rename_folder,Z as required,$ as required_for_app_access,ee as requires_value,Re as reset_bookmark,Ye as reset_system_permissions_copy,We as reset_system_permissions_to,v as reset_width,B as role_name,Q as show_active_items,W as show_all_items,V as show_archived_items,be as subject,g as switch_user,Ze as the_following_are_minimum_permissions,m as tile_size,ce as translation_string_key_placeholder,ve as translation_string_translations_placeholder,rr as unarchive,ar as unarchive_confirm,je as update_bookmark};
1
+ var e={identifier:"\u09B6\u09A8\u09BE\u0995\u09CD\u09A4\u0995\u09BE\u09B0\u09C0",avatar:"\u0985\u09AC\u09A4\u09BE\u09B0",application:"\u0985\u09CD\u09AF\u09BE\u09AA\u09CD\u09B2\u09BF\u0995\u09C7\u09B6\u09A8",default_provider:"\u09A1\u09BF\u09AB\u09B2\u09CD\u099F",method:"\u09AA\u09A6\u09CD\u09A7\u09A4\u09BF",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",logs:"\u0995\u09CD\u09B0\u09BF\u09DF\u09BE\u0995\u09B2\u09BE\u09AA",reset_width:"\u09AA\u09CD\u09B0\u09B8\u09CD\u09A5 \u09AA\u09C1\u09A8\u0983\u09B8\u09CD\u09A5\u09BE\u09AA\u09A8 \u0995\u09B0\u09C1\u09A8",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",location:"\u0985\u09AC\u09B8\u09CD\u09A5\u09BE\u09A8",condition_rules:"\u09B6\u09B0\u09CD\u09A4 \u09AC\u09BF\u09A7\u09BF",input:"\u0987\u09A8\u09AA\u09C1\u099F",maps:"\u09AE\u09BE\u09A8\u099A\u09BF\u09A4\u09CD\u09B0",switch_user:"\u0987\u0989\u099C\u09BE\u09B0 \u09AC\u09A6\u09B2\u09BE\u09A8",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",export_items:"\u0986\u0987\u099F\u09C7\u09AE \u09B0\u09AA\u09CD\u09A4\u09BE\u09A8\u09BF \u0995\u09B0\u09C1\u09A8",and:"\u098F\u09AC\u0982",or:"\u0985\u09A5\u09AC\u09BE",init:"\u098F\u099F\u09BE\u09DF",dataset_too_large_currently_showing_n_items:"\u09A1\u09C7\u099F\u09BE\u09B8\u09C7\u099F\u099F\u09BF \u0985\u09A8\u09C7\u0995 \u09AC\u09DC\u09CB\u0964 \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u09B6\u09C1\u09A7\u09C1 \u09AE\u09BE\u09A4\u09CD\u09B0 \u09AA\u09CD\u09B0\u09A5\u09AE {n} \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09A6\u09C7\u0996\u09BE\u09A8\u09CB \u09B9\u099A\u09CD\u099B\u09C7\u0964",modifier:"\u09AC\u09BE\u099B\u09BE\u0987\u0995\u09BE\u09B0\u09C0",custom:"\u09AC\u09CD\u09AF\u0995\u09CD\u09A4\u09BF\u0997\u09A4\u0995\u09B0\u09A3",hook:"\u09B9\u09C1\u0995",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",db_only_click_to_configure:"\u09B6\u09C1\u09A7\u09C1\u09AE\u09BE\u09A4\u09CD\u09B0 \u09A4\u09A5\u09CD\u09AF\u09B6\u09BE\u09B2: \u09B8\u099C\u09CD\u099C\u09BF\u09A4 \u0995\u09B0\u09A4\u09C7 \u0995\u09CD\u09B2\u09BF\u0995 \u0995\u09B0\u09C1\u09A8",show_active_items:"\u09B8\u0995\u09CD\u09B0\u09BF\u09DF \u0986\u0987\u099F\u09C7\u09AE\u0997\u09C1\u09B2\u09BF \u09A6\u09C7\u0996\u09C1\u09A8",show_archived_items:"\u0986\u0995\u09CD\u09B0\u09BE\u0987\u09AD \u0986\u0987\u099F\u09C7\u09AE \u09A6\u09C7\u0996\u09C1\u09A8",show_all_items:"\u09B8\u09AC \u0986\u0987\u099F\u09C7\u09AE",edited:"\u09B8\u09AE\u09CD\u09AA\u09BE\u09A6\u09BF\u09A4 \u09A1\u09C7\u099F\u09BE",required:"\u0986\u09AC\u09B6\u09CD\u09AF\u0995",required_for_app_access:"\u0985\u09CD\u09AF\u09BE\u09AA \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u0986\u09AC\u09B6\u09CD\u09AF\u0995",requires_value:"\u09A1\u09C7\u099F\u09BE \u0986\u09AC\u09B6\u09CD\u09AF\u0995",create_preset:"\u09AA\u09CD\u09B0\u09BF\u09B8\u09C7\u099F \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_panel:"\u09AA\u09CD\u09AF\u09BE\u09A8\u09C7\u09B2 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_role:"\u09AD\u09C2\u09AE\u09BF\u0995\u09BE \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_user:"\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",message:"\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE",delete_panel:"\u09AA\u09CD\u09AF\u09BE\u09A8\u09C7\u09B2 \u09AE\u09C1\u099B\u09C1\u09A8",create_webhook:"\u0993\u09AF\u09BC\u09C7\u09AC\u09B9\u09C1\u0995 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",create_translation_string:"\u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",no_translation_string:"\u0995\u09CB\u09A8 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09A8\u09C7\u0987",no_translation_string_copy:"\u098F\u0996\u09A8\u0993 \u0995\u09CB\u09A8 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09A8\u09C7\u0987\u0964",translation_string_key_placeholder:"\u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982-\u098F\u09B0 \u099A\u09BE\u09AC\u09BF...",translation_string_translations_placeholder:"\u09A8\u09A4\u09C1\u09A8 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8",edit_translation_string:"\u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 \u09B8\u09AE\u09CD\u09AA\u09BE\u09A6\u09A8\u09BE \u0995\u09B0\u09C1\u09A8",delete_translation_string_copy:'\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09B8\u09A4\u09CD\u09AF\u09BF\u0987 \u0985\u09A8\u09C1\u09AC\u09BE\u09A6 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982 "{key}" \u09AE\u09C1\u099B\u09A4\u09C7 \u099A\u09BE\u09A8? \u098F\u0987 \u0995\u09CD\u09B0\u09BF\u09AF\u09BC\u09BE\u099F\u09BF \u0986\u09B0 \u09AA\u09C2\u09B0\u09CD\u09AC\u09BE\u09AC\u09B8\u09CD\u09A5\u09BE\u09AF\u09BC \u09AB\u09BF\u09B0\u09BF\u09DF\u09C7 \u0986\u09A8\u09BE \u09AF\u09BE\u09AC\u09C7 \u09A8\u09BE\u0964',invite_users:"\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09A6\u09C7\u09B0 \u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u099C\u09BE\u09A8\u09BE\u09A8",invite:"\u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u0995\u09B0\u09C1\u09A8",email_already_invited:'\u098F\u0987 \u0987\u09AE\u09C7\u09B2\u099F\u09BF\u09A4\u09C7 "{email}" \u0987\u09A4\u09BF\u09AE\u09A7\u09CD\u09AF\u09C7\u0987 \u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u099C\u09BE\u09A8\u09BE\u09A8\u09CB \u09B9\u09AF\u09BC\u09C7\u099B\u09C7\u09F7',subject:"\u09AC\u09BF\u09B7\u09DF",inbox:"\u0987\u09A8\u09AC\u0995\u09CD\u09B8",emails:"\u0987\u09AE\u09C7\u0987\u09B2\u0997\u09C1\u09B2\u09BF",connection_excellent:"\u099A\u09AE\u09CE\u0995\u09BE\u09B0 \u09B8\u0982\u09AF\u09CB\u0997",connection_good:"\u09AD\u09BE\u09B2\u09CB \u09B8\u0982\u09AF\u09CB\u0997",connection_fair:"\u09AE\u09CB\u099F\u09BE\u09AE\u09C1\u099F\u09BF \u09B8\u0982\u09AF\u09CB\u0997",connection_poor:"\u0996\u09BE\u09B0\u09BE\u09AA \u09B8\u0982\u09AF\u09CB\u0997",primary:"\u09AA\u09CD\u09B0\u09BE\u09A5\u09AE\u09BF\u0995",rename_folder:"\u09AB\u09CB\u09B2\u09CD\u09A1\u09BE\u09B0\u09C7\u09B0 \u09A8\u09A4\u09C1\u09A8 \u09A8\u09BE\u09AE \u09A6\u09BF\u09A8",delete_folder:"\u09AB\u09CB\u09B2\u09CD\u09A1\u09BE\u09B0 \u09AE\u09C1\u099B\u09C1\u09A8",reset_bookmark:"\u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09B0\u09BF\u09B8\u09C7\u099F \u0995\u09B0\u09C1\u09A8",update_bookmark:"\u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u0986\u09AA\u09A1\u09C7\u099F \u0995\u09B0\u09C1\u09A8",delete_bookmark:"\u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",delete_bookmark_copy:'\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09B8\u09A4\u09CD\u09AF\u09BF\u0987 \u098F\u0987 "{bookmark}" \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995\u099F\u09BF\u0995\u09C7 \u09AE\u09C1\u099B\u09A4\u09C7 \u099A\u09BE\u09A8? \u098F\u0987 \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995\u099F\u09BF \u0995\u09BF\u09A8\u09CD\u09A4\u09C1 \u0986\u09B0 \u09AA\u09C2\u09B0\u09CD\u09AC\u09BE\u09AC\u09B8\u09CD\u09A5\u09BE\u09DF \u09AB\u09C7\u09B0\u09BE\u09A8\u09CB \u09AF\u09BE\u09AC\u09C7 \u09A8\u09BE\u0964',delete_personal_bookmark:"\u09AC\u09CD\u09AF\u0995\u09CD\u09A4\u09BF\u0997\u09A4 \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",delete_role_bookmark:"\u09AD\u09C2\u09AE\u09BF\u0995\u09BE \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",delete_global_bookmark:"\u0997\u09CD\u09B2\u09CB\u09AC\u09BE\u09B2 \u09AC\u09C1\u0995\u09AE\u09BE\u09B0\u09CD\u0995 \u09AE\u09C1\u099B\u09C1\u09A8",logoutReason:{SIGN_OUT:"\u09B8\u09BE\u0987\u09A8 \u0986\u0989\u099F \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7",SESSION_EXPIRED:"\u09B8\u09C7\u09B6\u09A8 \u0989\u09A4\u09CD\u09A4\u09C0\u09B0\u09CD\u09A3"},public_label:"\u09B8\u09BE\u09B0\u09CD\u09AC\u099C\u09A8\u09C0\u09A8",public_description:"\u098F\u099F\u09BE \u09A8\u09BF\u09DF\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u0995\u09B0\u09C7 \u09AA\u09CD\u09B0\u09AE\u09BE\u09A3\u09C0\u0995\u09B0\u09A3 \u099B\u09BE\u09A1\u09BC\u09BE \u0995\u09CB\u09A8 \u0995\u09CB\u09A8 API \u09A1\u09C7\u099F\u09BE \u0989\u09AA\u09B2\u09AC\u09CD\u09A7\u0964",admin_description:"\u0985\u09A8\u09BF\u09AF\u09BC\u09A8\u09CD\u09A4\u09CD\u09B0\u09BF\u09A4 \u0985\u09CD\u09AF\u09BE\u09AA/\u098F\u09AA\u09BF\u0986\u0987 \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8 \u09B8\u09B9 \u09AA\u09CD\u09B0\u09BE\u09A5\u09AE\u09BF\u0995 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u09A8\u09BF\u0995 \u09AD\u09C2\u09AE\u09BF\u0995\u09BE\u0964",not_allowed:"\u0985\u09A8\u09C1\u09AE\u09A4\u09BF \u09A8\u09C7\u0987",directus_version:"\u09A1\u09BE\u0987\u09B0\u09C7\u0995\u09CD\u099F\u09BE\u09B8 \u09B8\u0982\u09B8\u09CD\u0995\u09B0\u09A3",node_version:"\u09A8\u09CB\u09A1 \u09B8\u0982\u09B8\u09CD\u0995\u09B0\u09A3",node_uptime:"\u09A8\u09CB\u09A1 \u0986\u09AA\u099F\u09BE\u0987\u09AE",os_type:"\u0995\u09CB\u09A8 OS",os_version:"OS \u09B8\u0982\u09B8\u09CD\u0995\u09B0\u09A3",os_uptime:"\u0993\u098F\u09B8 \u0986\u09AA\u099F\u09BE\u0987\u09AE",os_totalmem:"\u0993\u098F\u09B8 \u09AE\u09C7\u09AE\u09CB\u09B0\u09BF",archive:"\u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0",archive_confirm:"\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u09AF\u09C7 \u0986\u09AA\u09A8\u09BF \u098F\u0987 \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09C7 \u09AA\u09BE\u09A0\u09BE\u09A4\u09C7 \u099A\u09BE\u09A8?",archive_confirm_count:"\u0995\u09CB\u09A8 \u0986\u0987\u099F\u09C7\u09AE \u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09BF\u09A4 \u0995\u09B0\u09BE \u09B9\u09DF\u09A8\u09BF | \u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u09AF\u09C7 \u0986\u09AA\u09A8\u09BF \u098F\u0987 \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09C7 \u09AA\u09BE\u09A0\u09BE\u09A4\u09C7 \u099A\u09BE\u09A8? | \u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u0986\u09AA\u09A8\u09BF {count}\u099F\u09BF \u0986\u0987\u099F\u09C7\u09AE \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0\u09C7 \u09AA\u09BE\u09A0\u09BE\u09A4\u09C7 \u099A\u09BE\u09A8?",reset_system_permissions_to:"\u09B8\u09BF\u09B8\u09CD\u099F\u09C7\u09AE \u0985\u09A8\u09C1\u09AE\u09A4\u09BF \u09B0\u09BF\u09B8\u09C7\u099F \u0995\u09B0\u09C1\u09A8:",reset_system_permissions_copy:"\u098F\u0987 \u0995\u09CD\u09B0\u09BF\u09AF\u09BC\u09BE\u099F\u09BF \u0986\u09AA\u09A8\u09BE\u09B0 \u09B8\u09BF\u09B8\u09CD\u099F\u09C7\u09AE\u09C7\u09B0 \u09B8\u0982\u0997\u09CD\u09B0\u09B9\u0997\u09C1\u09B2\u09BF\u09A4\u09C7 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u0997 \u0995\u09B0\u09BE \u09AF\u09C7\u0995\u09CB\u09A8\u09CB \u09AC\u09CD\u09AF\u09BE\u0995\u09CD\u09A4\u09BF\u0997\u09A4 \u0985\u09A8\u09C1\u09AE\u09A4\u09BF\u0997\u09C1\u09B2\u09BF\u0995\u09C7 \u0993\u09AD\u09BE\u09B0\u09B0\u09BE\u0987\u099F \u0995\u09B0\u09AC\u09C7\u09F7 \u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4?",the_following_are_minimum_permissions:'\u09AF\u0996\u09A8 "\u0985\u09CD\u09AF\u09BE\u09AA \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8" \u09B8\u0995\u09CD\u09B7\u09AE \u0995\u09B0\u09BE \u09A5\u09BE\u0995\u09C7 \u09A4\u0996\u09A8 \u09A8\u09BF\u09AE\u09CD\u09A8\u09B2\u09BF\u0996\u09BF\u09A4\u0997\u09C1\u09B2\u09BF \u09A8\u09CD\u09AF\u09C2\u09A8\u09A4\u09AE \u0985\u09A8\u09C1\u09AE\u09A4\u09BF\u0997\u09C1\u09B2\u09CB \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8\u09F7 \u0986\u09AA\u09A8\u09BF \u098F\u09B0 \u09AC\u09BE\u0987\u09B0\u09C7 \u0985\u09A8\u09CD\u09AF \u0995\u09CB\u09A8\u0993 \u0985\u09A8\u09C1\u09AE\u09A4\u09BF\u0993 \u099A\u09BE\u09B2\u09C1 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7\u09A8, \u09A4\u09AC\u09C7 \u09A8\u09BF\u099A\u09C7\u09B0\u0997\u09C1\u09B2\u09CB \u09A8\u09AF\u09BC\u0964',app_access_minimum:"\u09A8\u09CD\u09AF\u09C2\u09A8\u09A4\u09AE \u0985\u09CD\u09AF\u09BE\u09AA \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8\u0997\u09C1\u09B2\u09BF",recommended_defaults:"\u09AA\u09CD\u09B0\u09B8\u09CD\u09A4\u09BE\u09AC\u09BF\u09A4 \u09A1\u09BF\u09AB\u09B2\u09CD\u099F",unarchive:"\u0986\u09B0\u09CD\u0995\u09BE\u0987\u09AD \u09AE\u09C1\u0995\u09CD\u09A4 \u0995\u09B0\u09C1\u09A8",unarchive_confirm:"\u0986\u09AA\u09A8\u09BF \u0995\u09BF \u09A8\u09BF\u09B6\u09CD\u099A\u09BF\u09A4 \u09AF\u09C7 \u0986\u09AA\u09A8\u09BF \u098F\u0987 \u0986\u0987\u099F\u09C7\u09AE\u099F\u09BF \u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0 \u09A5\u09C7\u0995\u09C7 \u09AC\u09C7\u09B0 \u0995\u09B0\u09A4\u09C7 \u099A\u09BE\u09A8?",validationError:{eq:"\u09AE\u09BE\u09A8 {valid} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7",neq:"\u09AE\u09BE\u09A8 {invalid} \u09B9\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7 \u09A8\u09BE"},text:"\u09AA\u09BE\u09A0\u09CD\u09AF",time:"\u09B8\u09AE\u09DF",timestamp:"\u099F\u09BE\u0987\u09AE\u09B8\u09CD\u099F\u09CD\u09AF\u09BE\u09AE\u09CD\u09AA",uuid:"\u0987\u0989\u0987\u0989\u0986\u0987\u09A1\u09BF",hash:"\u09B9\u09CD\u09AF\u09BE\u09B6",geometry:"\u099C\u09CD\u09AF\u09BE\u09AE\u09BF\u09A4\u09BF (\u09B8\u09AE\u09B8\u09CD\u09A4)",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"}},field_options:{directus_collections:{archive_divider:"\u09B8\u0982\u09B0\u0995\u09CD\u09B7\u09A3\u09BE\u0997\u09BE\u09B0"}},interfaces:{"presentation-links":{primary:"\u09AA\u09CD\u09B0\u09BE\u09A5\u09AE\u09BF\u0995"},"input-hash":{hash:"\u09B9\u09CD\u09AF\u09BE\u09B6"}},displays:{"formatted-value":{text:"\u09AA\u09BE\u09A0\u09CD\u09AF"}},operations:{log:{message:"\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE"},notification:{message:"\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE"}}},r=e.identifier,a=e.avatar,i=e.application,t=e.default_provider,o=e.method,_=e.published,n=e.draft,s=e.archived,l=e.modules,d=e.module_bar,c=e.logs,v=e.reset_width,m=e.tile_size,p=e.edit_field,u=e.conditions,h=e.location,f=e.condition_rules,b=e.input,g=e.maps,k=e.switch_user,y=e.item_creation,w=e.item_revision,x=e.enter_a_name,q=e.duplicate_field,E=e.half_width,S=e.full_width,I=e.group,O=e.export_items,R=e.and,j=e.or,z=e.init,N=e.dataset_too_large_currently_showing_n_items,P=e.modifier,A=e.custom,D=e.hook,G=e.fill_width,T=e.field_name_translations,U=e.enter_password_to_enable_tfa,X=e.add_field,B=e.role_name,C=e.branch,F=e.leaf,H=e.indeterminate,J=e.edit_collection,K=e.exclusive,L=e.children,M=e.db_only_click_to_configure,Q=e.show_active_items,V=e.show_archived_items,W=e.show_all_items,Y=e.edited,Z=e.required,$=e.required_for_app_access,ee=e.requires_value,re=e.create_preset,ae=e.create_panel,ie=e.create_role,te=e.create_user,oe=e.message,_e=e.delete_panel,ne=e.create_webhook,se=e.create_translation_string,le=e.no_translation_string,de=e.no_translation_string_copy,ce=e.translation_string_key_placeholder,ve=e.translation_string_translations_placeholder,me=e.edit_translation_string,pe=e.delete_translation_string_copy,ue=e.invite_users,he=e.invite,fe=e.email_already_invited,be=e.subject,ge=e.inbox,ke=e.emails,ye=e.connection_excellent,we=e.connection_good,xe=e.connection_fair,qe=e.connection_poor,Ee=e.primary,Se=e.rename_folder,Ie=e.delete_folder,Oe=e.reset_bookmark,Re=e.update_bookmark,je=e.delete_bookmark,ze=e.delete_bookmark_copy,Ne=e.delete_personal_bookmark,Pe=e.delete_role_bookmark,Ae=e.delete_global_bookmark,De=e.logoutReason,Ge=e.public_label,Te=e.public_description,Ue=e.admin_description,Xe=e.not_allowed,Be=e.directus_version,Ce=e.node_version,Fe=e.node_uptime,He=e.os_type,Je=e.os_version,Ke=e.os_uptime,Le=e.os_totalmem,Me=e.archive,Qe=e.archive_confirm,Ve=e.archive_confirm_count,We=e.reset_system_permissions_to,Ye=e.reset_system_permissions_copy,Ze=e.the_following_are_minimum_permissions,$e=e.app_access_minimum,er=e.recommended_defaults,rr=e.unarchive,ar=e.unarchive_confirm,ir=e.validationError,tr=e.text,or=e.time,_r=e.timestamp,nr=e.uuid,sr=e.hash,lr=e.geometry,dr=e.fields,cr=e.field_options,vr=e.interfaces,mr=e.displays,pr=e.operations;export{X as add_field,Ue as admin_description,R as and,$e as app_access_minimum,i as application,Me as archive,Qe as archive_confirm,Ve as archive_confirm_count,s as archived,a as avatar,C as branch,L as children,f as condition_rules,u as conditions,ye as connection_excellent,xe as connection_fair,we as connection_good,qe as connection_poor,ae as create_panel,re as create_preset,ie as create_role,se as create_translation_string,te as create_user,ne as create_webhook,A as custom,N as dataset_too_large_currently_showing_n_items,M as db_only_click_to_configure,e as default,t as default_provider,je as delete_bookmark,ze as delete_bookmark_copy,Ie as delete_folder,Ae as delete_global_bookmark,_e as delete_panel,Ne as delete_personal_bookmark,Pe as delete_role_bookmark,pe as delete_translation_string_copy,Be as directus_version,mr as displays,n as draft,q as duplicate_field,J as edit_collection,p as edit_field,me as edit_translation_string,Y as edited,fe as email_already_invited,ke as emails,x as enter_a_name,U as enter_password_to_enable_tfa,K as exclusive,O as export_items,T as field_name_translations,cr as field_options,dr as fields,G as fill_width,S as full_width,lr as geometry,I as group,E as half_width,sr as hash,D as hook,r as identifier,ge as inbox,H as indeterminate,z as init,b as input,vr as interfaces,he as invite,ue as invite_users,y as item_creation,w as item_revision,F as leaf,h as location,De as logoutReason,c as logs,g as maps,oe as message,o as method,P as modifier,d as module_bar,l as modules,le as no_translation_string,de as no_translation_string_copy,Fe as node_uptime,Ce as node_version,Xe as not_allowed,pr as operations,j as or,Le as os_totalmem,He as os_type,Ke as os_uptime,Je as os_version,Ee as primary,Te as public_description,Ge as public_label,_ as published,er as recommended_defaults,Se as rename_folder,Z as required,$ as required_for_app_access,ee as requires_value,Oe as reset_bookmark,Ye as reset_system_permissions_copy,We as reset_system_permissions_to,v as reset_width,B as role_name,Q as show_active_items,W as show_all_items,V as show_archived_items,be as subject,k as switch_user,tr as text,Ze as the_following_are_minimum_permissions,m as tile_size,or as time,_r as timestamp,ce as translation_string_key_placeholder,ve as translation_string_translations_placeholder,rr as unarchive,ar as unarchive_confirm,Re as update_bookmark,nr as uuid,ir as validationError};
@@ -0,0 +1 @@
1
+ import{z as u}from"./index.f8fd6ee3.entry.js";function l(f,i){for(var t=0;t<i.length;t++){const o=i[t];if(typeof o!="string"&&!Array.isArray(o)){for(const e in o)if(e!=="default"&&!(e in f)){const n=Object.getOwnPropertyDescriptor(o,e);n&&Object.defineProperty(f,e,n.get?n:{enumerable:!0,get:()=>o[e]})}}}return Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var c={exports:{}};(function(f,i){(function(t){t(u.exports)})(function(t){var o="><+-.,[]".split("");t.defineMode("brainfuck",function(){return{startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,n){if(e.eatSpace())return null;e.sol()&&(n.commentLine=!1);var r=e.next().toString();if(o.indexOf(r)!==-1){if(n.commentLine===!0)return e.eol()&&(n.commentLine=!1),"comment";if(r==="]"||r==="[")return r==="["?n.left++:n.right++,"bracket";if(r==="+"||r==="-")return"keyword";if(r==="<"||r===">")return"atom";if(r==="."||r===",")return"def"}else return n.commentLine=!0,e.eol()&&(n.commentLine=!1),"comment";e.eol()&&(n.commentLine=!1)}}}),t.defineMIME("text/x-brainfuck","brainfuck")})})();const m=c.exports,s=l({__proto__:null,default:m},[c.exports]);export{s as b};
@@ -0,0 +1,97 @@
1
+ import{a as i,o as h,e as r,y as n,u as s,t as c,q as t,z as l}from"./runtime-core.esm-bundler.22ec0346.js";const d={class:"markdown-body"},j={class:"tip hint"},f={class:"hint-title"},_=s("strong",null,"Directus Version:",-1),m=s("h2",{id:"explanation",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#explanation"},"#"),t(" Explanation")],-1),g=s("p",null,[t("In documentation, it is incredibly common "),s("em",null,"(if not the standard)"),t(" to have a hierarchy of content or data: "),s("em",null,"a parent page, with child pages.")],-1),w=s("p",null,"If you\u2019re working with markdown files or an SSG, content hierarchies are created easily with files and folders. If your content is in a database, you can create a hierarchy of nested items with a recursive O2M relationship, which is the focus of this recipe.",-1),y=s("p",null,"For this recipe, we\u2019ll use Tree View to build a simple content hierarchy for documentation:",-1),b=s("ul",null,[s("li",null,[s("code",null,"App Overview")]),s("li",null,[s("code",null,"Configuration"),s("ul",null,[s("li",null,[s("code",null,"Flows")]),s("li",null,[s("code",null,"Data Model"),s("ul",null,[s("li",null,[s("code",null,"Collections")]),s("li",null,[s("code",null,"Fields")])])])])])],-1),v=s("p",null,"Here\u2019s the general outline of what\u2019s to come:",-1),k=s("ul",null,[s("li",null,[t("Use Tree View to create a recursive relationship in a collection called "),s("code",null,"docs"),t(".")]),s("li",null,[t("Add "),s("code",null,"parent"),t(" <-> "),s("code",null,"child"),t(" items to the collection, using that recursive relationship.")]),s("li",null,[t("Give the public role read permissions on "),s("code",null,"docs"),t(" , so users can access them.")])],-1),T=s("p",null,[t("At the end, in "),s("a",{href:"#final-tips"},"Final Tips"),t(", we\u2019ll point out some additional steps you can take to make your content hierarchy easier to work with in a frontend.")],-1),C=s("h2",{id:"the-recipe",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#the-recipe"},"#"),t(" The Recipe")],-1),x={class:"tip hint"},O=s("div",{class:"hint-title"},"Requirements",-1),A=s("pre",null,[s("code",null,`docs
2
+ - id
3
+ - title (a STRING input field)
4
+ - parent_id (an integer input field)
5
+ - children (a Tree View O2M alias field, configured with docs.parent_id as the foreign key and the O2M Interface)
6
+ - body (optional: a text input field with a Markdown interface)
7
+ `)],-1),M={start:"2"},H=s("code",null,"docs",-1),V=s("p",null,[t("Create nested items on the "),s("code",null,"docs"),t(" collection as desired:")],-1),q=s("strong",null,"Create New",-1),D=s("strong",null,"Add Existing",-1),F=s("h2",{id:"final-tips",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#final-tips"},"#"),t(" Final Tips")],-1),I=s("p",null,"Now that your nested content is created, you\u2019ll need to access and use it in the frontend. Here are two key points to consider.",-1),N=s("h3",{id:"fetch-nested-data",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#fetch-nested-data"},"#"),t(" Fetch Nested Data")],-1),E=s("code",null,"/items/docs/",-1),B=s("p",null,":::details Toggle open to view flat data.",-1),W=s("pre",null,[s("code",{class:"language-json"},[s("span",{class:"hljs-punctuation"},"{"),t(`
8
+ `),s("span",{class:"hljs-attr"},'"data"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),t(`
9
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
10
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"1"),s("span",{class:"hljs-punctuation"},","),t(`
11
+ `),s("span",{class:"hljs-attr"},'"title"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"App Overview"'),s("span",{class:"hljs-punctuation"},","),t(`
12
+ `),s("span",{class:"hljs-attr"},'"parent_id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-literal"},[s("span",{class:"hljs-keyword"},"null")]),s("span",{class:"hljs-punctuation"},","),t(`
13
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# App Overview\\n\\nGeneral info about the app."'),s("span",{class:"hljs-punctuation"},","),t(`
14
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"1"),s("span",{class:"hljs-punctuation"},","),t(`
15
+ `),s("span",{class:"hljs-attr"},'"children"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-punctuation"},"]"),t(`
16
+ `),s("span",{class:"hljs-punctuation"},"}"),s("span",{class:"hljs-punctuation"},","),t(`
17
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
18
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"2"),s("span",{class:"hljs-punctuation"},","),t(`
19
+ `),s("span",{class:"hljs-attr"},'"title"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Config Overview"'),s("span",{class:"hljs-punctuation"},","),t(`
20
+ `),s("span",{class:"hljs-attr"},'"parent_id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-literal"},[s("span",{class:"hljs-keyword"},"null")]),s("span",{class:"hljs-punctuation"},","),t(`
21
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# Config Overview\\n\\nThere are many config options available"'),s("span",{class:"hljs-punctuation"},","),t(`
22
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"2"),s("span",{class:"hljs-punctuation"},","),t(`
23
+ `),s("span",{class:"hljs-attr"},'"children"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},"]"),t(`
24
+ `),s("span",{class:"hljs-punctuation"},"}"),s("span",{class:"hljs-punctuation"},","),t(`
25
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
26
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},","),t(`
27
+ `),s("span",{class:"hljs-attr"},'"title"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Data Model"'),s("span",{class:"hljs-punctuation"},","),t(`
28
+ `),s("span",{class:"hljs-attr"},'"parent_id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"2"),s("span",{class:"hljs-punctuation"},","),t(`
29
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# How the Data Model Works\\n\\n"'),s("span",{class:"hljs-punctuation"},","),t(`
30
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},","),t(`
31
+ `),s("span",{class:"hljs-attr"},'"children"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-number"},"4"),s("span",{class:"hljs-punctuation"},","),t(),s("span",{class:"hljs-number"},"5"),s("span",{class:"hljs-punctuation"},"]"),t(`
32
+ `),s("span",{class:"hljs-punctuation"},"}"),s("span",{class:"hljs-punctuation"},","),t(`
33
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
34
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"4"),s("span",{class:"hljs-punctuation"},","),t(`
35
+ `),s("span",{class:"hljs-attr"},'"title"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Fields"'),s("span",{class:"hljs-punctuation"},","),t(`
36
+ `),s("span",{class:"hljs-attr"},'"parent_id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},","),t(`
37
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# How Fields Work"'),s("span",{class:"hljs-punctuation"},","),t(`
38
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"4"),s("span",{class:"hljs-punctuation"},","),t(`
39
+ `),s("span",{class:"hljs-attr"},'"children"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-punctuation"},"]"),t(`
40
+ `),s("span",{class:"hljs-punctuation"},"}"),s("span",{class:"hljs-punctuation"},","),t(`
41
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
42
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"5"),s("span",{class:"hljs-punctuation"},","),t(`
43
+ `),s("span",{class:"hljs-attr"},'"title"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Collections"'),s("span",{class:"hljs-punctuation"},","),t(`
44
+ `),s("span",{class:"hljs-attr"},'"parent_id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},","),t(`
45
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},`"# Collections\\n\\nThey're data tables."`),s("span",{class:"hljs-punctuation"},","),t(`
46
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"5"),s("span",{class:"hljs-punctuation"},","),t(`
47
+ `),s("span",{class:"hljs-attr"},'"children"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-punctuation"},"]"),t(`
48
+ `),s("span",{class:"hljs-punctuation"},"}"),t(`
49
+ `),s("span",{class:"hljs-punctuation"},"]"),t(`
50
+ `),s("span",{class:"hljs-punctuation"},"}"),t(`
51
+ `)])],-1),G=s("p",null,":::",-1),P=s("em",null,"could",-1),R=s("pre",null,[s("code",null,`/items/docs?
52
+ filter[parent_id][_null]=true
53
+ &fields=id,title,body,sort,
54
+ children.id,children.body,children.title,children.sort,
55
+ children.children.id,children.children.title,children.children.body,children.children.sort, children.children.children
56
+ `)],-1),S=s("p",null,"Which will return data properly nested as seen here:",-1),$=s("p",null,":::details Toggle open to view nested data",-1),Y=s("pre",null,[s("code",{class:"language-json"},[s("span",{class:"hljs-punctuation"},"{"),t(`
57
+ `),s("span",{class:"hljs-attr"},'"data"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),t(`
58
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
59
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"1"),s("span",{class:"hljs-punctuation"},","),t(`
60
+ `),s("span",{class:"hljs-attr"},'"name"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"App Overview"'),s("span",{class:"hljs-punctuation"},","),t(`
61
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# App Overview\\n\\nGeneral info about the app."'),s("span",{class:"hljs-punctuation"},","),t(`
62
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"1"),s("span",{class:"hljs-punctuation"},","),t(`
63
+ `),s("span",{class:"hljs-attr"},'"nest"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-punctuation"},"]"),t(`
64
+ `),s("span",{class:"hljs-punctuation"},"}"),s("span",{class:"hljs-punctuation"},","),t(`
65
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
66
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"2"),s("span",{class:"hljs-punctuation"},","),t(`
67
+ `),s("span",{class:"hljs-attr"},'"name"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Config Overview"'),s("span",{class:"hljs-punctuation"},","),t(`
68
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# Config Overview\\n\\nMany config options available"'),s("span",{class:"hljs-punctuation"},","),t(`
69
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"2"),s("span",{class:"hljs-punctuation"},","),t(`
70
+ `),s("span",{class:"hljs-attr"},'"nest"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),t(`
71
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
72
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},","),t(`
73
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# How the Data Model Works"'),s("span",{class:"hljs-punctuation"},","),t(`
74
+ `),s("span",{class:"hljs-attr"},'"name"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Data Model"'),s("span",{class:"hljs-punctuation"},","),t(`
75
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"3"),s("span",{class:"hljs-punctuation"},","),t(`
76
+ `),s("span",{class:"hljs-attr"},'"nest"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),t(`
77
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
78
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"4"),s("span",{class:"hljs-punctuation"},","),t(`
79
+ `),s("span",{class:"hljs-attr"},'"name"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Fields"'),s("span",{class:"hljs-punctuation"},","),t(`
80
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"# How Fields Work"'),s("span",{class:"hljs-punctuation"},","),t(`
81
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"4"),s("span",{class:"hljs-punctuation"},","),t(`
82
+ `),s("span",{class:"hljs-attr"},'"nest"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-punctuation"},"]"),t(`
83
+ `),s("span",{class:"hljs-punctuation"},"}"),s("span",{class:"hljs-punctuation"},","),t(`
84
+ `),s("span",{class:"hljs-punctuation"},"{"),t(`
85
+ `),s("span",{class:"hljs-attr"},'"id"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"5"),s("span",{class:"hljs-punctuation"},","),t(`
86
+ `),s("span",{class:"hljs-attr"},'"name"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},'"Collections"'),s("span",{class:"hljs-punctuation"},","),t(`
87
+ `),s("span",{class:"hljs-attr"},'"body"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-string"},`"# Collections\\n\\nThey're data tables."`),s("span",{class:"hljs-punctuation"},","),t(`
88
+ `),s("span",{class:"hljs-attr"},'"sort"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-number"},"5"),s("span",{class:"hljs-punctuation"},","),t(`
89
+ `),s("span",{class:"hljs-attr"},'"nest"'),s("span",{class:"hljs-punctuation"},":"),t(),s("span",{class:"hljs-punctuation"},"["),s("span",{class:"hljs-punctuation"},"]"),t(`
90
+ `),s("span",{class:"hljs-punctuation"},"}"),t(`
91
+ `),s("span",{class:"hljs-punctuation"},"]"),t(`
92
+ `),s("span",{class:"hljs-punctuation"},"}"),t(`
93
+ `),s("span",{class:"hljs-punctuation"},"]"),t(`
94
+ `),s("span",{class:"hljs-punctuation"},"}"),t(`
95
+ `),s("span",{class:"hljs-punctuation"},"]"),t(`
96
+ `),s("span",{class:"hljs-punctuation"},"}"),t(`
97
+ `)])],-1),z=s("p",null,":::",-1),U=s("code",null,"filter[parent_id][_null]=true",-1),J=s("ul",null,[s("li",null,[s("em",null,"We knew our content hierarchy was three levels deep."),t(" You\u2019ll also need to be aware of "),s("em",null,"(and account for)"),t(" the depth of your content hierarchy and make the api call accordingly.")]),s("li",null,[t("The "),s("code",null,"parent_id"),t(" foreign key field was not added, as it would re-nest parent item data under its own child items, which is duplicate and useless.")])],-1),K=s("h3",{id:"create-relative-paths",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#create-relative-paths"},"#"),t(" Create Relative Paths")],-1),L=s("li",null,[t("Add a "),s("code",null,"path"),t(" field to the "),s("code",null,"docs"),t(" collection and configure it so edits are turned off on the item detail page.")],-1),Q=s("code",null,"Event Hook",-1),X=s("code",null,"items.create",-1),Z=s("code",null,"items.update",-1),ss=s("code",null,"docs",-1),ts=s("li",null,[t("Add operations to the flow to read the parent\u2019s path of the item being created or updated, append the item\u2019s title, write the new path into the present item\u2019s "),s("code",null,"path"),t(" field value, then update the paths of its children "),s("em",null,"(if it has any children)"),t(".")],-1),ns=s("div",{class:"tip hint"},[s("p",null,[t("In this recipe, for the sake of a clean visual example, we created a "),s("code",null,"body"),t(" field directly on the "),s("code",null,"docs"),t(" collection. However, you may find it more user-friendly to keep the markdown content in another relationally-linked collection, then just use Tree View to store the path and/or keep track of the content hierarchy.")])],-1),cs="Build a Content Hierarchy",os=!1,is="This recipe explains how to construct a documentation content hierarchy by using Tree View, the M2O alias for creating recursive relationships.",ps=[],us=null,hs="9.18.1",rs=null,ds="Eron Powell",js={__name:"build-a-content-hierarchy",setup(as,{expose:p}){const o={title:"Build a Content Hierarchy",modularExtension:!1,description:"This recipe explains how to construct a documentation content hierarchy by using Tree View, the M2O alias for creating recursive relationships.",tags:[],skill_level:null,directus_version:"9.18.1",author_override:null,author:"Eron Powell"};return p({frontmatter:o}),(e,ls)=>{const a=i("router-link"),u=i("docs-wrapper");return h(),r(u,{frontmatter:o},{default:n(()=>[s("div",d,[s("blockquote",null,[s("p",null,c(e.$frontmatter.description),1)]),s("div",j,[s("div",f,"Author: "+c(e.$frontmatter.author),1),s("p",null,[_,t(" "+c(e.$frontmatter.directus_version),1)])]),m,g,w,s("p",null,[t("In Directus, there is a special O2M "),l(a,{to:"/docs/getting-started/glossary.html#alias"},{default:n(()=>[t("alias field")]),_:1}),t(" called Tree View, which makes it easier to create and manage this type of recursive relationship.")]),y,b,v,k,T,C,s("div",x,[O,s("p",null,[t("You\u2019ll need to be familiar with "),l(a,{to:"/docs/configuration/users-roles-permissions.md"},{default:n(()=>[t("permissions")]),_:1}),t(".")])]),s("ol",null,[s("li",null,[l(a,{to:"/docs/configuration/data-model/collections.md#create-a-collection"},{default:n(()=>[t("Create a collection")]),_:1}),t(" and "),l(a,{to:"/docs/configuration/data-model/fields.md#create-a-field-standard"},{default:n(()=>[t("add fields")]),_:1}),t(" as follows:")])]),A,s("ol",M,[s("li",null,[s("p",null,[t("Configure the public role with "),l(a,{to:"/docs/configuration/users-roles-permissions/permissions.md#configure-permissions"},{default:n(()=>[t("read permissions")]),_:1}),t(" for the "),H,t(" collection.")])]),s("li",null,[V,s("ul",null,[s("li",null,[t("To create top-level parent items, "),l(a,{to:"/docs/app/content/items.md#create-an-item"},{default:n(()=>[t("create an item")]),_:1}),t(" as usual.")]),s("li",null,[t("To add a nested child, "),l(a,{to:"/docs/app/content/items.md#edit-an-item"},{default:n(()=>[t("edit the parent item")]),_:1}),t(" and click "),q,t(" or "),D,t(".")])])]),s("li",null,[s("p",null,[t("Optional: "),l(a,{to:"/docs/app/content/collections.md#manually-sort-items"},{default:n(()=>[t("manually sort items")]),_:1}),t(" into desired order.")])])]),F,I,N,s("p",null,[t("A basic api call to "),l(a,{to:"/docs/reference/items.md"},{default:n(()=>[t("get items")]),_:1}),t(", such as "),E,t(", returns flat data:")]),B,W,G,s("p",null,[t("To fix this, you "),P,t(" write an algorithm that iterates through each item in the data array and re-nests it on the frontend. But that may be a bit resource intensive, depending on your collection\u2019s data. Alternatively, we can add "),l(a,{to:"/docs/reference/query.md"},{default:n(()=>[t("query parameters")]),_:1}),t(" on the Directus API call to nest it for us. In this case, we could make an api call like this:")]),R,S,$,Y,z,s("p",null,[t("In the call above, the "),U,t(" query parameter serves to "),l(a,{to:"/docs/reference/query.md#filter"},{default:n(()=>[t("filter")]),_:1}),t(" non-parents at the first level. The "),l(a,{to:"/docs/reference/query.md#fields"},{default:n(()=>[t("fields")]),_:1}),t(" query parameters let us extract specific fields, including nested relational fields. There are two key things to note with this type of query:")]),J,K,s("p",null,[t("Nested content by itself is nice, but it would be helpful if we could create a path for each item, for routing in frontend navigation. To do this, you could use "),l(a,{to:"/docs/configuration/flows.md"},{default:n(()=>[t("flows")]),_:1}),t(" to create a path dynamically. Here\u2019s one general approach:")]),s("ul",null,[L,s("li",null,[l(a,{to:"/docs/configuration/flows.md#configure-a-flow"},{default:n(()=>[t("Configure a flow")]),_:1}),t(" with an "),Q,t(" trigger, which runs on "),X,t(" and "),Z,t(" for the "),ss,t(" collection.")]),ts]),ns])]),_:1})}}};export{ds as author,rs as author_override,js as default,is as description,hs as directus_version,os as modularExtension,us as skill_level,ps as tags,cs as title};
@@ -1,4 +1,4 @@
1
- import{a as s,o as c,b as u,w as n,l as e,E as t,e as l}from"./runtime-core.esm-bundler.fe249c5c.js";const d={class:"markdown-body"},p=e("h2",{id:"1.-confirm-minimum-requirements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#1.-confirm-minimum-requirements"},"#"),t(" 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",null,"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",null,"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",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#2.-create-a-project"},"#"),t(" 2. Create a Project")],-1),w=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),v=e("pre",null,[e("code",{class:"language-bash"},`npm init directus-project my-project
1
+ import{a as s,o as c,e as u,y as n,u as e,q as t,z as l}from"./runtime-core.esm-bundler.22ec0346.js";const d={class:"markdown-body"},p=e("h2",{id:"1.-confirm-minimum-requirements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#1.-confirm-minimum-requirements"},"#"),t(" 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",null,"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",null,"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",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#2.-create-a-project"},"#"),t(" 2. Create a Project")],-1),w=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),v=e("pre",null,[e("code",{class:"language-bash"},`npm init directus-project my-project
2
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",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#3.-start-your-project"},"#"),t(" 3. Start your Project")],-1),D=e("p",null,[t("To start Directus, navigate to the project directory, "),e("em",null,"my-project"),t(".")],-1),L=e("pre",null,[e("code",{class:"language-bash"},[e("span",{class:"hljs-built_in"},"cd"),t(` my-project
3
3
  `)])],-1),k=e("p",null,"Run the following command in your project directory.",-1),x=e("pre",null,[e("code",{class:"language-bash"},`npx directus start
4
- `)],-1),C=e("h2",{id:"4.-view-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#4.-view-your-project"},"#"),t(" 4. View your Project")],-1),M=e("p",null,[t("The default port used by Directus is 8055. To view your project locally, go to "),e("code",null,"http://localhost:8055"),t(" in your browser.")],-1),P={class:"tip hint"},Q=e("div",{class:"hint-title"},"Changing Port",-1),T=e("code",null,"PORT",-1),I=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},".env Permissions"),e("p",null,[t("By default, the "),e("code",null,"create-directus-project"),t(" tool will set the file permissions of the generated "),e("code",null,".env"),t(" to "),e("code",null,"-rw-r-----"),t(" (0640). If you run Directus from a separate user on your machine, make sure these permissions are correct.")])],-1),q=e("h2",{id:"configure-%2F-update-%2F-upgrade-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#configure-%2F-update-%2F-upgrade-your-project"},"#"),t(" Configure / Update / Upgrade your Project")],-1),F="Installing from CLI",R=!1,U="How to install Directus via CLI",E="2 min read",O={__name:"cli",setup(A,{expose:a}){const o={title:"Installing from CLI",modularExtension:!1,description:"How to install Directus via CLI",readTime:"2 min read"};return a({frontmatter:o}),(B,N)=>{const r=s("router-link"),i=s("docs-wrapper");return c(),u(i,{frontmatter:o},{default:n(()=>[e("div",d,[p,h,_,m,f,g,y,b,w,v,j,S,D,L,k,x,C,M,e("div",P,[Q,e("p",null,[t("If you want to use a different port, use "),l(r,{to:"/docs/self-hosted/config-options#general"},{default:n(()=>[t("the "),T,t(" environment variable")]),_:1}),t(".")])]),I,q,e("p",null,[t("See the "),l(r,{to:"/docs/self-hosted/upgrades-migrations"},{default:n(()=>[t("Updates & Migrations")]),_:1}),t(" to learn how to maintain your project moving forward.")])])]),_:1})}}};export{O as default,U as description,R as modularExtension,E as readTime,F as title};
4
+ `)],-1),C=e("h2",{id:"4.-view-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#4.-view-your-project"},"#"),t(" 4. View your Project")],-1),M=e("p",null,[t("The default port used by Directus is 8055. To view your project locally, go to "),e("code",null,"http://localhost:8055"),t(" in your browser.")],-1),P={class:"tip hint"},Q=e("div",{class:"hint-title"},"Changing Port",-1),T=e("code",null,"PORT",-1),q=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},".env Permissions"),e("p",null,[t("By default, the "),e("code",null,"create-directus-project"),t(" tool will set the file permissions of the generated "),e("code",null,".env"),t(" to "),e("code",null,"-rw-r-----"),t(" (0640). If you run Directus from a separate user on your machine, make sure these permissions are correct.")])],-1),I=e("h2",{id:"configure-%2F-update-%2F-upgrade-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#configure-%2F-update-%2F-upgrade-your-project"},"#"),t(" Configure / Update / Upgrade your Project")],-1),F="Installing from CLI",R=!1,U="How to install Directus via CLI",O="2 min read",E={__name:"cli",setup(A,{expose:a}){const o={title:"Installing from CLI",modularExtension:!1,description:"How to install Directus via CLI",readTime:"2 min read"};return a({frontmatter:o}),(B,N)=>{const r=s("router-link"),i=s("docs-wrapper");return c(),u(i,{frontmatter:o},{default:n(()=>[e("div",d,[p,h,_,m,f,g,y,b,w,v,j,S,D,L,k,x,C,M,e("div",P,[Q,e("p",null,[t("If you want to use a different port, use "),l(r,{to:"/docs/self-hosted/config-options#general"},{default:n(()=>[t("the "),T,t(" environment variable")]),_:1}),t(".")])]),q,I,e("p",null,[t("See the "),l(r,{to:"/docs/self-hosted/upgrades-migrations"},{default:n(()=>[t("Updates & Migrations")]),_:1}),t(" to learn how to maintain your project moving forward.")])])]),_:1})}}};export{E as default,U as description,R as modularExtension,O as readTime,F as title};