@directus/app 9.5.1 → 9.5.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 (359) hide show
  1. package/dist/assets/{@directus_extensions-sdk.3cf05510.entry.js → @directus_extensions-sdk.fdb93800.entry.js} +1 -1
  2. package/dist/assets/{active-line.6d34314c.js → active-line.91ff5c8d.js} +1 -1
  3. package/dist/assets/{activity-log.66ed5d6c.js → activity-log.97fbae42.js} +1 -1
  4. package/dist/assets/{activity.cc14795b.js → activity.088d1c35.js} +1 -1
  5. package/dist/assets/{apl.2ad16f17.js → apl.92e6230c.js} +1 -1
  6. package/dist/assets/{asciiarmor.336dc2e3.js → asciiarmor.d335dc7c.js} +1 -1
  7. package/dist/assets/{asn.1.25e6a7c5.js → asn.1.d315920f.js} +1 -1
  8. package/dist/assets/{asterisk.2773a853.js → asterisk.8cfced94.js} +1 -1
  9. package/dist/assets/{authentication.5ec9ad8a.js → authentication.0adbdab6.js} +1 -1
  10. package/dist/assets/{autorefresh.30ac5e2f.js → autorefresh.2d612ff9.js} +1 -1
  11. package/dist/assets/{aws.e33862c0.js → aws.a670afd3.js} +1 -1
  12. package/dist/assets/{backing-directus.1337e62f.js → backing-directus.2899551f.js} +1 -1
  13. package/dist/assets/bg-BG.0d877a81.js +2 -0
  14. package/dist/assets/{br-FR.6a75d7c1.js → br-FR.b5bf22f7.js} +1 -1
  15. package/dist/assets/{brainfuck.5af1e43d.js → brainfuck.0a18d08d.js} +1 -1
  16. package/dist/assets/{ca-ES.e335da6d.js → ca-ES.4ec66903.js} +1 -1
  17. package/dist/assets/{cli.0d34ef7d.js → cli.91a7b0ef.js} +15 -14
  18. package/dist/assets/{cli.5b3b9963.js → cli.bc06663f.js} +1 -1
  19. package/dist/assets/{clike.543490fd.js → clike.f1d85fe8.js} +1 -1
  20. package/dist/assets/{clojure.9f5468f0.js → clojure.3e724d4b.js} +1 -1
  21. package/dist/assets/{cloudron.823254d1.js → cloudron.fa37a185.js} +1 -1
  22. package/dist/assets/{cmake.d5ff0ab2.js → cmake.b3c9ae9d.js} +1 -1
  23. package/dist/assets/{cobol.d1205c4d.js → cobol.236f6c6d.js} +1 -1
  24. package/dist/assets/{codebase-overview.f51b759c.js → codebase-overview.0c0f5cba.js} +1 -1
  25. package/dist/assets/{coffeescript.f4b30f40.js → coffeescript.69af43ea.js} +1 -1
  26. package/dist/assets/{collections.064a3bd6.js → collections.f48d1811.js} +1 -1
  27. package/dist/assets/{commonlisp.9a02cefb.js → commonlisp.ae043fd0.js} +1 -1
  28. package/dist/assets/{config-options.7098eca6.js → config-options.b997fb3e.js} +1 -1
  29. package/dist/assets/{content-collections.ece14f28.js → content-collections.96c41bd1.js} +1 -1
  30. package/dist/assets/{content-items.e9c73ca6.js → content-items.f1fc2a9e.js} +1 -1
  31. package/dist/assets/{content.1091e52f.js → content.ef11e1cb.js} +1 -1
  32. package/dist/assets/{creating-extensions.b6c76056.js → creating-extensions.8be00e4c.js} +1 -1
  33. package/dist/assets/{crystal.6e2bb73a.js → crystal.05d16dee.js} +1 -1
  34. package/dist/assets/{css.bd97e209.js → css.62b091b8.js} +1 -1
  35. package/dist/assets/{cypher.120e49e2.js → cypher.d55c23f3.js} +1 -1
  36. package/dist/assets/{d.a0adfdc1.js → d.5c2e5119.js} +1 -1
  37. package/dist/assets/da-DK.e4e3715f.js +1 -0
  38. package/dist/assets/{dart.2b866b57.js → dart.60c85b71.js} +1 -1
  39. package/dist/assets/{data-model.0637636b.js → data-model.4b43400f.js} +1 -1
  40. package/dist/assets/de-DE.2f3867e9.js +1 -0
  41. package/dist/assets/{diff.5f519d5f.js → diff.13039cc0.js} +1 -1
  42. package/dist/assets/{digitalocean-app-platform.7819a966.js → digitalocean-app-platform.9dbbd151.js} +1 -1
  43. package/dist/assets/{displays.6a4daf50.js → displays.05a0ba75.js} +1 -1
  44. package/dist/assets/{django.41c6c2a0.js → django.a3de2d81.js} +1 -1
  45. package/dist/assets/{docker.49871af8.js → docker.94eebb00.js} +2 -2
  46. package/dist/assets/{dockerfile.87f55929.js → dockerfile.87ef21a5.js} +1 -1
  47. package/dist/assets/{documentation.fad370ee.js → documentation.5662403f.js} +1 -1
  48. package/dist/assets/{dtd.2128151b.js → dtd.bd6b4051.js} +1 -1
  49. package/dist/assets/{dylan.baab8db7.js → dylan.520b25cf.js} +1 -1
  50. package/dist/assets/{ebnf.36149d6d.js → ebnf.2730fea9.js} +1 -1
  51. package/dist/assets/{ecl.66a969cc.js → ecl.9a6d1532.js} +1 -1
  52. package/dist/assets/{eiffel.4fd5f845.js → eiffel.b322eaa7.js} +1 -1
  53. package/dist/assets/elm.9bd5d49d.js +1 -0
  54. package/dist/assets/{email-templates.d7413ac1.js → email-templates.2622f4f5.js} +2 -2
  55. package/dist/assets/{en-CA.abfa05d9.js → en-CA.54b75dac.js} +1 -1
  56. package/dist/assets/en-GB.5d984991.js +1 -0
  57. package/dist/assets/{endpoints.a31864aa.js → endpoints.90c6640c.js} +1 -1
  58. package/dist/assets/{erlang.f0e6cc30.js → erlang.b9d69a18.js} +1 -1
  59. package/dist/assets/es-419.768b23e7.js +1 -0
  60. package/dist/assets/es-CL.fd6804fd.js +1 -0
  61. package/dist/assets/es-ES.2a2421e3.js +1 -0
  62. package/dist/assets/{et-EE.c6c25e0e.js → et-EE.3c82a2a7.js} +1 -1
  63. package/dist/assets/{extensions.6669c998.js → extensions.087c9534.js} +2 -2
  64. package/dist/assets/{factor.3893c637.js → factor.f7077407.js} +1 -1
  65. package/dist/assets/{faq.225071a3.js → faq.b35d46ed.js} +1 -1
  66. package/dist/assets/{fcl.7378bd6e.js → fcl.45028b4e.js} +1 -1
  67. package/dist/assets/{fi-FI.ffa1989d.js → fi-FI.ea8c811c.js} +1 -1
  68. package/dist/assets/{fields.8ac43b39.js → fields.6654fb8d.js} +3 -3
  69. package/dist/assets/{file-library.85190425.js → file-library.cc49fa2f.js} +1 -1
  70. package/dist/assets/{files.4be2b7d8.js → files.39a1fdcf.js} +1 -1
  71. package/dist/assets/{filter-rules.da1f7a0c.js → filter-rules.afe98b80.js} +2 -2
  72. package/dist/assets/{folders.fda5443a.js → folders.9d2e334f.js} +1 -1
  73. package/dist/assets/{forth.92be39ae.js → forth.195887c3.js} +1 -1
  74. package/dist/assets/{fortran.63e04dee.js → fortran.5d5c335b.js} +1 -1
  75. package/dist/assets/fr-CA.98b1ca99.js +1 -0
  76. package/dist/assets/fr-FR.76a38bd1.js +1 -0
  77. package/dist/assets/{gas.12ab5fd7.js → gas.16c12037.js} +1 -1
  78. package/dist/assets/{gcp.b79ff7ab.js → gcp.9b7c4ed6.js} +2 -2
  79. package/dist/assets/{gfm.7ee80754.js → gfm.d799b563.js} +1 -1
  80. package/dist/assets/{gherkin.919f3328.js → gherkin.2b39b6dd.js} +1 -1
  81. package/dist/assets/{github-ci.ecfe6bcc.js → github-ci.8c797816.js} +2 -2
  82. package/dist/assets/{glossary.0a56cc9b.js → glossary.2aef84aa.js} +1 -1
  83. package/dist/assets/{go.237d6144.js → go.a9b03085.js} +1 -1
  84. package/dist/assets/{groovy.492fc790.js → groovy.29bd8618.js} +1 -1
  85. package/dist/assets/{haml.334d5557.js → haml.6e79da90.js} +1 -1
  86. package/dist/assets/{handlebars.ff8e7285.js → handlebars.2cc03606.js} +1 -1
  87. package/dist/assets/{haskell-literate.882e524e.js → haskell-literate.7d265fa0.js} +1 -1
  88. package/dist/assets/{haskell.22676b92.js → haskell.74b99322.js} +1 -1
  89. package/dist/assets/{haxe.3d65e7b4.js → haxe.cded41ab.js} +1 -1
  90. package/dist/assets/{hooks.4528122b.js → hooks.57af13af.js} +1 -1
  91. package/dist/assets/hr-HR.4258bbeb.js +1 -0
  92. package/dist/assets/{htmlembedded.a9785cf4.js → htmlembedded.49f79187.js} +1 -1
  93. package/dist/assets/htmlmixed.d6f11e3c.js +1 -0
  94. package/dist/assets/{http.0a3b81f0.js → http.068172f8.js} +1 -1
  95. package/dist/assets/{hu-HU.5f89d00f.js → hu-HU.94582835.js} +1 -1
  96. package/dist/assets/{id-ID.a9d3d91d.js → id-ID.73df63e3.js} +1 -1
  97. package/dist/assets/{idl.fac301bd.js → idl.2f22f15a.js} +1 -1
  98. package/dist/assets/{iis.5bf49b8f.js → iis.0756b349.js} +1 -1
  99. package/dist/assets/{index.4db93bd3.js → index.03be9954.js} +1 -1
  100. package/dist/assets/index.0ba1faa9.css +1 -0
  101. package/dist/assets/{index.0ae37273.js → index.1610ceeb.js} +1 -1
  102. package/dist/assets/{index.5b18068a.js → index.1760c023.js} +1 -1
  103. package/dist/assets/{index.a4b9b487.js → index.17858738.js} +1 -1
  104. package/dist/assets/{index.17a41c6f.js → index.1792b218.js} +1 -1
  105. package/dist/assets/{index.94b6142e.js → index.17dcd22b.js} +1 -1
  106. package/dist/assets/{index.e0bf3865.js → index.1a2bd336.js} +1 -1
  107. package/dist/assets/{index.b4db1ec0.js → index.1e433f7c.js} +1 -1
  108. package/dist/assets/{index.a1cb4c13.js → index.1ef15bd0.js} +1 -1
  109. package/dist/assets/{index.374349c1.js → index.25bd5335.js} +1 -1
  110. package/dist/assets/{index.4d1dceef.js → index.284ad9ae.js} +1 -1
  111. package/dist/assets/{index.714fac13.js → index.28c78852.js} +1 -1
  112. package/dist/assets/{index.d122fc87.js → index.30c48506.js} +1 -1
  113. package/dist/assets/{index.35cb22c1.js → index.34ca1f4f.js} +1 -1
  114. package/dist/assets/{index.b71684e3.js → index.3d64863b.js} +1 -1
  115. package/dist/assets/{index.62dc6f98.js → index.42cf46e8.js} +1 -1
  116. package/dist/assets/{index.2a8495be.js → index.43aaad2f.js} +1 -1
  117. package/dist/assets/{index.38548ee0.js → index.482eee81.js} +1 -1
  118. package/dist/assets/{index.f5dcea21.js → index.4c1678f5.js} +1 -1
  119. package/dist/assets/{index.64fceca2.js → index.505c3128.js} +1 -1
  120. package/dist/assets/{index.063518b5.js → index.51e25346.js} +1 -1
  121. package/dist/assets/{index.f828d625.js → index.536d6c04.js} +1 -1
  122. package/dist/assets/{index.81a51a62.js → index.538fe012.js} +1 -1
  123. package/dist/assets/{index.a504aee5.js → index.53fd3b94.js} +1 -1
  124. package/dist/assets/{index.d0faaeb2.js → index.5792c56d.js} +1 -1
  125. package/dist/assets/{index.9b0d3651.js → index.5991f264.js} +1 -1
  126. package/dist/assets/{index.1fb7c96e.js → index.59d23ad1.js} +1 -1
  127. package/dist/assets/{index.57b78798.js → index.6019766b.js} +1 -1
  128. package/dist/assets/{index.dc3f8342.js → index.637ecec8.js} +1 -1
  129. package/dist/assets/{index.ac05a9e7.js → index.65607570.js} +1 -1
  130. package/dist/assets/{index.0e9bbd23.js → index.6944de49.js} +3 -3
  131. package/dist/assets/{index.a9aa949b.js → index.6b7b67e0.js} +1 -1
  132. package/dist/assets/{index.cf7cc265.js → index.6d163e82.js} +1 -1
  133. package/dist/assets/{index.30554737.js → index.6f216b4a.js} +1 -1
  134. package/dist/assets/{index.6648089d.css → index.71a497d6.css} +1 -1
  135. package/dist/assets/{index.90a09533.js → index.7405e309.js} +1 -1
  136. package/dist/assets/{index.f79fe5d2.js → index.7b7245a9.js} +1 -1
  137. package/dist/assets/{index.775dfdc1.js → index.7ddd41bb.js} +1 -1
  138. package/dist/assets/{index.e3384276.js → index.8305bbeb.js} +1 -1
  139. package/dist/assets/{index.d2c590ba.js → index.86c67d5c.js} +1 -1
  140. package/dist/assets/{index.7b5b2b11.js → index.893a69a1.js} +1 -1
  141. package/dist/assets/{index.395fae9e.js → index.8cbec1ee.js} +1 -1
  142. package/dist/assets/{index.4ab0d6c4.js → index.8f1e1fba.js} +1 -1
  143. package/dist/assets/{index.2c9ea780.js → index.8fc5fb54.js} +1 -1
  144. package/dist/assets/{index.b8487b1d.js → index.91639619.js} +1 -1
  145. package/dist/assets/{index.dfb4d31b.js → index.94f09a1f.js} +1 -1
  146. package/dist/assets/{index.4e8d7951.js → index.989d0b7b.js} +1 -1
  147. package/dist/assets/{index.324f5e2b.js → index.9e12d78b.js} +1 -1
  148. package/dist/assets/{index.33ba115d.js → index.9f18eda4.js} +1 -1
  149. package/dist/assets/{index.be99047d.js → index.a0704c57.js} +1 -1
  150. package/dist/assets/{index.9611946d.js → index.a08492e1.js} +1 -1
  151. package/dist/assets/{index.6bab7763.js → index.a1a28b7c.js} +1 -1
  152. package/dist/assets/index.a253b413.entry.js +531 -0
  153. package/dist/assets/{index.5bb5011a.js → index.a54b3a96.js} +1 -1
  154. package/dist/assets/{index.c503ba3f.js → index.a635ff40.js} +1 -1
  155. package/dist/assets/{index.32dbcbf2.js → index.a6b0b229.js} +1 -1
  156. package/dist/assets/{index.8de84e0a.js → index.b033f81e.js} +1 -1
  157. package/dist/assets/{index.c0b38d5d.js → index.b42be304.js} +1 -1
  158. package/dist/assets/{index.cda9c09a.js → index.b4f1966d.js} +1 -1
  159. package/dist/assets/{index.e81a390a.js → index.b687f719.js} +1 -1
  160. package/dist/assets/{index.6b133e41.js → index.b6d4c7ef.js} +1 -1
  161. package/dist/assets/{index.0adc5df5.js → index.b883b34b.js} +1 -1
  162. package/dist/assets/{index.d7fea83b.js → index.bcedb140.js} +1 -1
  163. package/dist/assets/{index.36fb5a72.js → index.bdc76b24.js} +1 -1
  164. package/dist/assets/{index.9cd9812a.js → index.c2d5da76.js} +1 -1
  165. package/dist/assets/{index.cf0076d3.js → index.c5f25555.js} +1 -1
  166. package/dist/assets/{index.0c331bf1.js → index.c8f131d2.js} +1 -1
  167. package/dist/assets/{index.534ed83b.js → index.d1768a4c.js} +1 -1
  168. package/dist/assets/{index.ec02f495.js → index.d20355f1.js} +1 -1
  169. package/dist/assets/{index.c172fe45.js → index.da8f8bd1.js} +1 -1
  170. package/dist/assets/{index.948899e1.js → index.ddf80deb.js} +1 -1
  171. package/dist/assets/{index.aca2fbce.js → index.e15ede3f.js} +1 -1
  172. package/dist/assets/{index.18ffc04f.js → index.ec1cae03.js} +1 -1
  173. package/dist/assets/{index.7b9af633.js → index.ed021a7e.js} +1 -1
  174. package/dist/assets/{index.3c746c21.js → index.f1402ddb.js} +1 -1
  175. package/dist/assets/{index.b15bbf59.js → index.f2f0b19e.js} +1 -1
  176. package/dist/assets/{index.8b1b9273.js → index.f39fd82c.js} +1 -1
  177. package/dist/assets/{index.2cbdf5a0.js → index.f4cd1717.js} +1 -1
  178. package/dist/assets/{index.190da52d.js → index.f76046f7.js} +1 -1
  179. package/dist/assets/{index.713639ce.js → index.f969f456.js} +1 -1
  180. package/dist/assets/{index.04b70838.js → index.fd1147cb.js} +1 -1
  181. package/dist/assets/{index.6c8a6f17.js → index.fe41cd97.js} +1 -1
  182. package/dist/assets/{index.a870dd39.js → index.ff3abc12.js} +1 -1
  183. package/dist/assets/input-rich-text-html.bd11c29f.js +239 -0
  184. package/dist/assets/{input-rich-text-html.80761684.css → input-rich-text-html.f98395ca.css} +1 -1
  185. package/dist/assets/{insights.e3562dc5.js → insights.6b9e65c2.js} +1 -1
  186. package/dist/assets/{installation.d26988a1.js → installation.170112a4.js} +1 -1
  187. package/dist/assets/{interfaces.7b56a1f6.js → interfaces.db39b9ff.js} +3 -3
  188. package/dist/assets/{introduction.c8833986.js → introduction.831e086e.js} +1 -1
  189. package/dist/assets/{introduction.186ea1c2.js → introduction.ba72705e.js} +1 -1
  190. package/dist/assets/{introduction.8bc94b3b.js → introduction.d83586e5.js} +1 -1
  191. package/dist/assets/{introduction.e862a41c.js → introduction.f0c7891e.js} +1 -1
  192. package/dist/assets/it-IT.93477255.js +1 -0
  193. package/dist/assets/{items.5070c7cb.js → items.2fff6572.js} +1 -1
  194. package/dist/assets/{javascript-hint.b144c8de.js → javascript-hint.ff0e6747.js} +1 -1
  195. package/dist/assets/{javascript.40e26531.js → javascript.85c4d25b.js} +1 -1
  196. package/dist/assets/{jinja2.88480640.js → jinja2.7a8fb070.js} +1 -1
  197. package/dist/assets/{jsx.d71b99b9.js → jsx.561c3147.js} +1 -1
  198. package/dist/assets/{julia.d16cf79c.js → julia.e3b41c51.js} +1 -1
  199. package/dist/assets/{layouts.ca9fafb4.js → layouts.cebfaaa8.js} +1 -1
  200. package/dist/assets/{livescript.92db6aa4.js → livescript.da5167f8.js} +1 -1
  201. package/dist/assets/{localization.2cbec683.js → localization.f77ab14f.js} +1 -1
  202. package/dist/assets/{lua.c89a03a0.js → lua.68934f2f.js} +1 -1
  203. package/dist/assets/{manual.b46e3870.js → manual.6a6a9570.js} +1 -1
  204. package/dist/assets/{mark-selection.568b46ae.js → mark-selection.d8696dde.js} +1 -1
  205. package/dist/assets/{match-highlighter.03ac7c48.js → match-highlighter.011c3968.js} +1 -1
  206. package/dist/assets/{mathematica.d93d953c.js → mathematica.970914fe.js} +1 -1
  207. package/dist/assets/{mbox.6a756fb0.js → mbox.798fd6c8.js} +1 -1
  208. package/dist/assets/{migrations.3d2a34de.js → migrations.cbdea1ca.js} +1 -1
  209. package/dist/assets/{mirc.f3166b71.js → mirc.03c69e34.js} +1 -1
  210. package/dist/assets/{mllike.30ca2866.js → mllike.01ddd025.js} +1 -1
  211. package/dist/assets/{modelica.53ca7e82.js → modelica.29193581.js} +1 -1
  212. package/dist/assets/{modules.2533e6f7.js → modules.32110248.js} +1 -1
  213. package/dist/assets/{mscgen.57208a49.js → mscgen.129c1a92.js} +1 -1
  214. package/dist/assets/{multiplex.08d43a90.js → multiplex.07740103.js} +2 -2
  215. package/dist/assets/{mumps.35e9490e.js → mumps.6bf32390.js} +1 -1
  216. package/dist/assets/{nginx.6e11e9f9.js → nginx.becfadad.js} +1 -1
  217. package/dist/assets/nl-NL.a0c67bbb.js +1 -0
  218. package/dist/assets/{notifications.fea8d4c4.js → notifications.b9d06648.js} +1 -1
  219. package/dist/assets/{nsis.53e47910.js → nsis.60778189.js} +1 -1
  220. package/dist/assets/{ntriples.a049a5c9.js → ntriples.57e7f534.js} +1 -1
  221. package/dist/assets/{octave.96253883.js → octave.9d8386d3.js} +1 -1
  222. package/dist/assets/{overlay.6a10de99.js → overlay.4aee4ad9.js} +1 -1
  223. package/dist/assets/{overview.62c5e348.js → overview.c10655c2.js} +1 -1
  224. package/dist/assets/{overview.5483f71c.js → overview.ed8cc8fc.js} +1 -1
  225. package/dist/assets/{oz.a4fae36d.js → oz.9bd8f7e7.js} +1 -1
  226. package/dist/assets/{panels.bebf918f.js → panels.241a2491.js} +1 -1
  227. package/dist/assets/{pascal.59a7db39.js → pascal.97e8c58d.js} +1 -1
  228. package/dist/assets/{pegjs.7f9022ee.js → pegjs.a585faf9.js} +1 -1
  229. package/dist/assets/{perl.205584d7.js → perl.01cca948.js} +1 -1
  230. package/dist/assets/{permissions.c84e9940.js → permissions.f4ad3029.js} +1 -1
  231. package/dist/assets/{php.ecedf73e.js → php.fd86de38.js} +1 -1
  232. package/dist/assets/{pig.219ccd88.js → pig.44da9cf6.js} +1 -1
  233. package/dist/assets/pinia.b8958608.entry.js +1 -0
  234. package/dist/assets/pl-PL.65bde531.js +1 -0
  235. package/dist/assets/plesk-screenshot.00f26a33.png +0 -0
  236. package/dist/assets/plesk.eef0ffe8.js +21 -0
  237. package/dist/assets/{powershell.d1ed864a.js → powershell.432aa4e3.js} +1 -1
  238. package/dist/assets/{presets-bookmarks.58587602.js → presets-bookmarks.1c9f5558.js} +1 -1
  239. package/dist/assets/{presets.34b168d1.js → presets.a78e9fbc.js} +1 -1
  240. package/dist/assets/{project-settings.42d5f9c2.js → project-settings.72e83679.js} +1 -1
  241. package/dist/assets/{properties.dda8a0c7.js → properties.41f6ef8f.js} +1 -1
  242. package/dist/assets/{protobuf.7521b574.js → protobuf.985c6ff9.js} +1 -1
  243. package/dist/assets/{pt-BR.5d2cff88.js → pt-BR.fcdcd0d6.js} +1 -1
  244. package/dist/assets/{pug.b1804d25.js → pug.46a9325f.js} +1 -1
  245. package/dist/assets/{puppet.74373bd4.js → puppet.978fb907.js} +1 -1
  246. package/dist/assets/{python.e9c10263.js → python.197cf682.js} +1 -1
  247. package/dist/assets/{q.6e4ce851.js → q.eb66a399.js} +1 -1
  248. package/dist/assets/{query.8f0b770d.js → query.b41e6991.js} +1 -1
  249. package/dist/assets/{quickstart.80242153.js → quickstart.eea06952.js} +1 -1
  250. package/dist/assets/{r.364f4683.js → r.30005c51.js} +1 -1
  251. package/dist/assets/{relations.69d90d24.js → relations.7a9fbe53.js} +1 -1
  252. package/dist/assets/{relationships.ac91c590.js → relationships.b1c4c4d7.js} +1 -1
  253. package/dist/assets/{revisions.cc89f55e.js → revisions.999a1447.js} +2 -2
  254. package/dist/assets/{ro-RO.cbc76b89.js → ro-RO.e9e3a460.js} +1 -1
  255. package/dist/assets/{roles.48ceba6d.js → roles.c650ebd6.js} +5 -5
  256. package/dist/assets/{rpm.507c17f5.js → rpm.fb52e459.js} +1 -1
  257. package/dist/assets/rst.f7c5571b.js +1 -0
  258. package/dist/assets/{ru-RU.b5582235.js → ru-RU.799cee27.js} +1 -1
  259. package/dist/assets/{ruby.f21dab2b.js → ruby.edf804f9.js} +1 -1
  260. package/dist/assets/{running-locally.50bd627b.js → running-locally.efb945d9.js} +1 -1
  261. package/dist/assets/{rust.7eb73218.js → rust.8b6761b2.js} +1 -1
  262. package/dist/assets/{sas.e3ef6c88.js → sas.8c2a5af3.js} +1 -1
  263. package/dist/assets/{sass.9e649df5.js → sass.f9cb449a.js} +1 -1
  264. package/dist/assets/{scheme.7a001213.js → scheme.060ff4c7.js} +1 -1
  265. package/dist/assets/{sdk.fb856e77.js → sdk.9c072015.js} +59 -52
  266. package/dist/assets/{security.17eafeaa.js → security.db7f2ed1.js} +1 -1
  267. package/dist/assets/{server.1eecb229.js → server.bb95f58d.js} +1 -1
  268. package/dist/assets/{settings.647a37d5.js → settings.676a9d6b.js} +1 -1
  269. package/dist/assets/{settings.71512657.js → settings.82d42ce8.js} +1 -1
  270. package/dist/assets/{shell.0962d93f.js → shell.b9a0e740.js} +1 -1
  271. package/dist/assets/{show-hint.e9fbbc4b.js → show-hint.64cd9d68.js} +1 -1
  272. package/dist/assets/sieve.2e435557.js +1 -0
  273. package/dist/assets/{simple.2235ba1e.js → simple.0840e902.js} +1 -1
  274. package/dist/assets/{sl-SI.a0734f51.js → sl-SI.59c76b0a.js} +1 -1
  275. package/dist/assets/{slim.40c1025a.js → slim.04b2111c.js} +1 -1
  276. package/dist/assets/{smalltalk.8189fdc0.js → smalltalk.4fb3b1b9.js} +1 -1
  277. package/dist/assets/{smarty.cdcb9db5.js → smarty.f6122c9b.js} +1 -1
  278. package/dist/assets/{solr.9a8bccfa.js → solr.5d518e61.js} +1 -1
  279. package/dist/assets/{soy.e90a0965.js → soy.7fcab156.js} +1 -1
  280. package/dist/assets/{sparql.2a1e619b.js → sparql.f1a7f051.js} +1 -1
  281. package/dist/assets/{spreadsheet.5c6a58a1.js → spreadsheet.4c6df545.js} +1 -1
  282. package/dist/assets/{sql.619134f5.js → sql.a01b495c.js} +1 -1
  283. package/dist/assets/{sr-CS.7f2f9516.js → sr-CS.9a714a93.js} +1 -1
  284. package/dist/assets/{sso.15d8311f.js → sso.6c672b92.js} +3 -3
  285. package/dist/assets/{stex.d08542a5.js → stex.6cab0c16.js} +1 -1
  286. package/dist/assets/{stylus.d0fb8f7c.js → stylus.7577596a.js} +1 -1
  287. package/dist/assets/{support.d1353668.js → support.27c0edd9.js} +1 -1
  288. package/dist/assets/{sv-SE.23424e62.js → sv-SE.7051901e.js} +1 -1
  289. package/dist/assets/{swift.f66b151d.js → swift.0d939f23.js} +1 -1
  290. package/dist/assets/{tcl.a4b584af.js → tcl.7f858309.js} +1 -1
  291. package/dist/assets/{textile.44eb1e19.js → textile.237e1506.js} +1 -1
  292. package/dist/assets/{th-TH.73da43c8.js → th-TH.ed8c9ce8.js} +1 -1
  293. package/dist/assets/{themes.f20fd12b.js → themes.deee4299.js} +1 -1
  294. package/dist/assets/{tiddlywiki.7ac72961.js → tiddlywiki.08bed973.js} +1 -1
  295. package/dist/assets/{tiki.072c562d.js → tiki.9dce5bfd.js} +1 -1
  296. package/dist/assets/{toml.1c068984.js → toml.faf5f476.js} +1 -1
  297. package/dist/assets/{tornado.4dd1a5aa.js → tornado.4323d4a2.js} +1 -1
  298. package/dist/assets/{translations.b1bcc017.js → translations.5ffeab6c.js} +1 -1
  299. package/dist/assets/{troff.f9041b19.js → troff.82b9a6c7.js} +1 -1
  300. package/dist/assets/{ttcn-cfg.af43e5b0.js → ttcn-cfg.3e28bc75.js} +1 -1
  301. package/dist/assets/{ttcn.9655edb3.js → ttcn.f9c675ae.js} +1 -1
  302. package/dist/assets/{turtle.c79431e1.js → turtle.97cf58a5.js} +1 -1
  303. package/dist/assets/{twig.f2ca58fc.js → twig.36068343.js} +1 -1
  304. package/dist/assets/{ubuntu.9358f45c.js → ubuntu.e99e20d0.js} +1 -1
  305. package/dist/assets/{uk-UA.20b58ca2.js → uk-UA.1bd8aa98.js} +1 -1
  306. package/dist/assets/{upgrades-migrations.4d55de78.js → upgrades-migrations.37c4532e.js} +1 -1
  307. package/dist/assets/{use-sync.8032b12d.js → use-sync.04f09f9e.js} +1 -1
  308. package/dist/assets/{user-directory.00d32f4f.js → user-directory.1a185dd0.js} +1 -1
  309. package/dist/assets/{users-roles-permissions.c1282af0.js → users-roles-permissions.f59c381a.js} +1 -1
  310. package/dist/assets/{users.dcef8dce.js → users.461a15d2.js} +5 -5
  311. package/dist/assets/{utilities.20549f4c.js → utilities.ff6cf557.js} +1 -1
  312. package/dist/assets/{vb.e0bb0f3c.js → vb.5aaf8565.js} +1 -1
  313. package/dist/assets/{vbscript.1bf2a908.js → vbscript.c07dc3c8.js} +1 -1
  314. package/dist/assets/{velocity.fa905b51.js → velocity.f7cdf7e5.js} +1 -1
  315. package/dist/assets/{vendor.62e5a05d.js → vendor.f59145b7.js} +67 -67
  316. package/dist/assets/{verilog.76d34fc6.js → verilog.55a49c38.js} +1 -1
  317. package/dist/assets/{vhdl.9986a053.js → vhdl.fc40f629.js} +1 -1
  318. package/dist/assets/vue-i18n.ec7ef603.entry.js +1 -0
  319. package/dist/assets/vue-router.59b4e0a8.entry.js +1 -0
  320. package/dist/assets/{vue.9f9dbabf.js → vue.0daa2612.js} +1 -1
  321. package/dist/assets/vue.ad7417ec.entry.js +1 -0
  322. package/dist/assets/{wast.ee96f878.js → wast.a9fb00d6.js} +1 -1
  323. package/dist/assets/{webhooks.d85993c6.js → webhooks.8438538b.js} +1 -1
  324. package/dist/assets/{webhooks.afcddb72.js → webhooks.9b515577.js} +1 -1
  325. package/dist/assets/{webidl.09b4846d.js → webidl.dbd219d1.js} +1 -1
  326. package/dist/assets/{xquery.f13c3599.js → xquery.1638d97d.js} +1 -1
  327. package/dist/assets/{yacas.73705eb4.js → yacas.d19e357f.js} +1 -1
  328. package/dist/assets/{yaml-frontmatter.d9710e50.js → yaml-frontmatter.94aa6732.js} +1 -1
  329. package/dist/assets/{yaml.91118312.js → yaml.52d92099.js} +1 -1
  330. package/dist/assets/{z80.7da94b69.js → z80.36722ea0.js} +1 -1
  331. package/dist/assets/zh-CN.c2a147a6.js +1 -0
  332. package/dist/index.html +4 -5
  333. package/package.json +6 -6
  334. package/dist/assets/bg-BG.177b7163.js +0 -2
  335. package/dist/assets/da-DK.31685da1.js +0 -1
  336. package/dist/assets/de-DE.aa267b89.js +0 -1
  337. package/dist/assets/elm.6d0378b9.js +0 -1
  338. package/dist/assets/en-GB.d9ec0957.js +0 -1
  339. package/dist/assets/es-419.acfe801e.js +0 -1
  340. package/dist/assets/es-CL.9e233b1a.js +0 -1
  341. package/dist/assets/es-ES.7bd56b6c.js +0 -1
  342. package/dist/assets/fr-CA.00ffaa22.js +0 -1
  343. package/dist/assets/fr-FR.0b2acd5f.js +0 -1
  344. package/dist/assets/htmlmixed.a7e052a7.js +0 -1
  345. package/dist/assets/index.43280c70.css +0 -1
  346. package/dist/assets/index.7af4eb85.entry.js +0 -531
  347. package/dist/assets/input-rich-text-html.a83f04a4.js +0 -233
  348. package/dist/assets/it-IT.12117185.js +0 -1
  349. package/dist/assets/nl-NL.01bfcc35.js +0 -1
  350. package/dist/assets/pinia.2ded1a30.entry.js +0 -1
  351. package/dist/assets/pl-PL.b682b73e.js +0 -1
  352. package/dist/assets/plesk-screenshot.9485a115.png +0 -0
  353. package/dist/assets/plesk.4bf1fae2.js +0 -21
  354. package/dist/assets/rst.3ebce1b8.js +0 -1
  355. package/dist/assets/sieve.6af3ccc7.js +0 -1
  356. package/dist/assets/vue-i18n.3a3605b7.entry.js +0 -1
  357. package/dist/assets/vue-router.74cb0c8d.entry.js +0 -1
  358. package/dist/assets/vue.01fe05ef.entry.js +0 -1
  359. package/dist/assets/zh-CN.77260539.js +0 -1
@@ -1 +1 @@
1
- import{r as s,p as c,q as u,w as o,z as e,t as r,S as t}from"./vendor.62e5a05d.js";const d={class:"markdown-body"},h=t("A Project is a complete instance of Directus, including its "),p=e("strong",null,"Database",-1),g=t(", config file, asset storage, and any custom extensions. "),m=t("Learn more about Projects"),_=t("."),f=e("h2",{id:"upgrading-%2F-updating-a-project"},[t("Upgrading / Updating a Project "),e("a",{class:"header-anchor",href:"#upgrading-%2F-updating-a-project"},"#")],-1),y=e("ol",null,[e("li",null,"Backup your project"),e("li",null,[t("Run "),e("code",null,"npm update")]),e("li",null,[t("Run "),e("code",null,"npx directus database migrate:latest"),t(" to update the DB")])],-1),b=e("h2",{id:"backing-up-a-project"},[t("Backing-up a Project "),e("a",{class:"header-anchor",href:"#backing-up-a-project"},"#")],-1),v=e("ol",null,[e("li",null,[t("Make a copy of the "),e("strong",null,"files within each storage adapter"),t(", and store them in a safe place")]),e("li",null,[t("Make a copy of the "),e("strong",null,"Env file"),t(" ("),e("code",null,"/api/.env"),t("), and store it in a safe place")]),e("li",null,"Create a database dump")],-1),w=e("h2",{id:"migrating-a-project"},[t("Migrating a Project "),e("a",{class:"header-anchor",href:"#migrating-a-project"},"#")],-1),k=e("p",null,"Directus doesn\u2019t rely on anything besides the database for it\u2019s operation. Therefore, migrating your Directus project can be done by moving the whole database to a new location using a database dump.",-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"File Storage"),e("p",null,"If you have files uploaded, make sure to copy those over as well, or use the same storage location in the new location of Directus.")],-1),D=e("h2",{id:"downgrading-a-project"},[t("Downgrading a Project "),e("a",{class:"header-anchor",href:"#downgrading-a-project"},"#")],-1),x=e("p",null,[t("Directus can be reverted to an earlier version by going to your terminal, navigating into your project folder and running "),e("code",null,"npm install directus@<version>"),t(".")],-1),B=e("p",null,[t("If you ran any database migrations for a newer version, you can revert those by running "),e("code",null,"npx directus database migrate:down")],-1),P=e("h2",{id:"deleting-a-project"},[t("Deleting a Project "),e("a",{class:"header-anchor",href:"#deleting-a-project"},"#")],-1),I=e("ol",null,[e("li",null,[t("Optional: "),e("strong",null,"Backup any local files"),t(" stored within the project\u2019s root directory")]),e("li",null,[t("Optional: "),e("strong",null,"Backup any custom code and extensions"),t(" within the project\u2019s root directory")]),e("li",null,[t("Optional: "),e("strong",null,"Backup your entire database"),t(", only system tables, or only project tables")]),e("li",null,[e("strong",null,"Delete the project\u2019s root directory"),t(" from the server")]),e("li",null,[e("strong",null,"Delete all Directus system tables"),t(" ("),e("code",null,"directus_*"),t(") from the database")])],-1),S=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Pure SQL"),e("p",null,"After completing this process, you will be left with a pure SQL database, with no trace that Directus was ever installed. Any external services connecting to your database\u2019s project tables directly (eg: SQL queries) should continue working normally.")],-1),T=e("h2",{id:"migrating-from-v8"},[t("Migrating from v8 "),e("a",{class:"header-anchor",href:"#migrating-from-v8"},"#")],-1),A=e("p",null,"There are two ways to migrate from an existing Directus 8.X instance:",-1),F=e("ul",null,[e("li",null,[e("a",{href:"#automated-script"},"Automated Script"),t(" (recommended)")]),e("li",null,[e("a",{href:"#manual-database-export-import"},"Manual Database Export/Import")])],-1),M=e("p",null,[t("Be sure to check the "),e("a",{href:"#breaking-changes"},"Breaking changes"),t(" if you are consuming the API from an application.")],-1),U=e("h2",{id:"automated-script"},[t("Automated Script "),e("a",{class:"header-anchor",href:"#automated-script"},"#")],-1),q=e("p",null,"We created a (community maintained) script, that will automatically copy over the schema, content, files, users, and roles from an existing v8 instance to a new v9 instance. This is the most hands-off approach to moving from a v8 to a v9 instance, and is the recommended way of migrating your v8 instance.",-1),N=e("div",{class:"tip hint"},[e("p",null,[t("The script, and instructions on how to run it, can be found on the"),e("br"),e("a",{href:"https://github.com/directus-community/migration-tool",target:"_blank",rel:"noopener noreferrer"},[e("code",null,"directus-community/migration-tool")]),t(" repo.")])],-1),O=e("p",null,"This tool will copy over:",-1),C=e("ul",null,[e("li",null,"Schema (collections / fields)"),e("li",null,"Files (including file contents)"),e("li",null,"User data (eg all items in all collections)"),e("li",null,"Roles"),e("li",null,"Users")],-1),E=e("p",null,[t("Due to significant differences in data structure between versions, this tool will "),e("strong",null,"NOT"),t(" copy over:")],-1),L=e("ul",null,[e("li",null,"Interface/display configurations"),e("li",null,"Permissions"),e("li",null,"Activity / revisions")],-1),W=e("h2",{id:"manual-database-export%2Fimport"},[t("Manual Database Export/Import "),e("a",{class:"header-anchor",href:"#manual-database-export%2Fimport"},"#")],-1),Q=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Automated"),e("p",null,"We highly recommend using the automated migration tool mentioned above. If that\u2019s not possible, you can perform the following steps to migrate your v8 instance.")],-1),R=e("p",null,"Directus v9 is a breaking change coming from v8 (hence the major version bump), so you won\u2019t be able to just use your existing v8 database and run v9 on top of it. However, due to the database-mirroring approach of Directus, it\u2019s fairly straightforward to migrate your content from v8 to v9.",-1),V=e("h4",{id:"1)-setup-a-fresh-v9-instance"},[t("1) Setup a Fresh v9 Instance "),e("a",{class:"header-anchor",href:"#1)-setup-a-fresh-v9-instance"},"#")],-1),z=e("p",null,"By installing Directus \u201Cfresh\u201D, you\u2019re ensured your system tables are up-to-date and ready to go.",-1),H=e("h4",{id:"2)-migrate-your-data"},[t("2) Migrate your Data "),e("a",{class:"header-anchor",href:"#2)-migrate-your-data"},"#")],-1),X=e("p",null,[t("Using a tool like "),e("a",{href:"http://sequelpro.com",target:"_blank",rel:"noopener noreferrer"},"Sequel Pro"),t(" or "),e("a",{href:"https://tableplus.com",target:"_blank",rel:"noopener noreferrer"},"TablePlus"),t(", export your v8 user-tables and import them into your v9 database.")],-1),G=e("p",null,"Directus v9 will automatically recognize your tables, and you\u2019ll be ready to get started in v9.",-1),J=e("p",null,[e("strong",null,"Note:"),t(" If you have references to users and files, make sure to update them to the new UUID format.")],-1),K=e("h4",{id:"3)-configure-directus"},[t("3) Configure Directus "),e("a",{class:"header-anchor",href:"#3)-configure-directus"},"#")],-1),Y=e("p",null,"Once the tables are in, you can start configuring the details of the schema. This includes choosing the correct interfaces, displays, and their options for your fields.",-1),Z=e("p",null,"This would also be a good time to reconfigure your permissions, to ensure they are accurate.",-1),$=e("h2",{id:"breaking-changes"},[t("Breaking changes "),e("a",{class:"header-anchor",href:"#breaking-changes"},"#")],-1),ee=t("Filter operators"),te=t(" have changed, now they are preceded with an underscore eg: "),oe=e("code",null,"/items/users?filter[comments.thread.title][like]=Directus",-1),ne=t(" is now "),ae=e("code",null,"/items/users?filter[comments][thread][title][_like]=Directus",-1),ce={setup(se,{expose:i}){const n={title:"Upgrades & Migrations",modularExtension:!1};return i({frontmatter:n}),(re,ie)=>{const a=s("router-link"),l=s("DocsWrapper");return c(),u(l,{frontmatter:n},{default:o(()=>[e("div",d,[e("blockquote",null,[e("p",null,[h,p,g,r(a,{to:"/docs/getting-started/glossary/#projects"},{default:o(()=>[m]),_:1}),_])]),f,y,b,v,w,k,j,D,x,B,P,I,S,T,A,F,M,U,q,N,O,C,E,L,W,Q,R,V,z,H,X,G,J,K,Y,Z,$,e("ul",null,[e("li",null,[r(a,{to:"/docs/configuration/filter-rules/"},{default:o(()=>[ee]),_:1}),te,oe,ne,ae])])])]),_:1})}}};export{ce as default};
1
+ import{r as s,p as c,q as u,w as o,z as e,t as r,S as t}from"./vendor.f59145b7.js";const d={class:"markdown-body"},h=t("A Project is a complete instance of Directus, including its "),p=e("strong",null,"Database",-1),g=t(", config file, asset storage, and any custom extensions. "),m=t("Learn more about Projects"),_=t("."),f=e("h2",{id:"upgrading-%2F-updating-a-project"},[t("Upgrading / Updating a Project "),e("a",{class:"header-anchor",href:"#upgrading-%2F-updating-a-project"},"#")],-1),y=e("ol",null,[e("li",null,"Backup your project"),e("li",null,[t("Run "),e("code",null,"npm update")]),e("li",null,[t("Run "),e("code",null,"npx directus database migrate:latest"),t(" to update the DB")])],-1),b=e("h2",{id:"backing-up-a-project"},[t("Backing-up a Project "),e("a",{class:"header-anchor",href:"#backing-up-a-project"},"#")],-1),v=e("ol",null,[e("li",null,[t("Make a copy of the "),e("strong",null,"files within each storage adapter"),t(", and store them in a safe place")]),e("li",null,[t("Make a copy of the "),e("strong",null,"Env file"),t(" ("),e("code",null,"/api/.env"),t("), and store it in a safe place")]),e("li",null,"Create a database dump")],-1),w=e("h2",{id:"migrating-a-project"},[t("Migrating a Project "),e("a",{class:"header-anchor",href:"#migrating-a-project"},"#")],-1),k=e("p",null,"Directus doesn\u2019t rely on anything besides the database for it\u2019s operation. Therefore, migrating your Directus project can be done by moving the whole database to a new location using a database dump.",-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"File Storage"),e("p",null,"If you have files uploaded, make sure to copy those over as well, or use the same storage location in the new location of Directus.")],-1),D=e("h2",{id:"downgrading-a-project"},[t("Downgrading a Project "),e("a",{class:"header-anchor",href:"#downgrading-a-project"},"#")],-1),x=e("p",null,[t("Directus can be reverted to an earlier version by going to your terminal, navigating into your project folder and running "),e("code",null,"npm install directus@<version>"),t(".")],-1),B=e("p",null,[t("If you ran any database migrations for a newer version, you can revert those by running "),e("code",null,"npx directus database migrate:down")],-1),P=e("h2",{id:"deleting-a-project"},[t("Deleting a Project "),e("a",{class:"header-anchor",href:"#deleting-a-project"},"#")],-1),I=e("ol",null,[e("li",null,[t("Optional: "),e("strong",null,"Backup any local files"),t(" stored within the project\u2019s root directory")]),e("li",null,[t("Optional: "),e("strong",null,"Backup any custom code and extensions"),t(" within the project\u2019s root directory")]),e("li",null,[t("Optional: "),e("strong",null,"Backup your entire database"),t(", only system tables, or only project tables")]),e("li",null,[e("strong",null,"Delete the project\u2019s root directory"),t(" from the server")]),e("li",null,[e("strong",null,"Delete all Directus system tables"),t(" ("),e("code",null,"directus_*"),t(") from the database")])],-1),S=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Pure SQL"),e("p",null,"After completing this process, you will be left with a pure SQL database, with no trace that Directus was ever installed. Any external services connecting to your database\u2019s project tables directly (eg: SQL queries) should continue working normally.")],-1),T=e("h2",{id:"migrating-from-v8"},[t("Migrating from v8 "),e("a",{class:"header-anchor",href:"#migrating-from-v8"},"#")],-1),A=e("p",null,"There are two ways to migrate from an existing Directus 8.X instance:",-1),F=e("ul",null,[e("li",null,[e("a",{href:"#automated-script"},"Automated Script"),t(" (recommended)")]),e("li",null,[e("a",{href:"#manual-database-export-import"},"Manual Database Export/Import")])],-1),M=e("p",null,[t("Be sure to check the "),e("a",{href:"#breaking-changes"},"Breaking changes"),t(" if you are consuming the API from an application.")],-1),U=e("h2",{id:"automated-script"},[t("Automated Script "),e("a",{class:"header-anchor",href:"#automated-script"},"#")],-1),q=e("p",null,"We created a (community maintained) script, that will automatically copy over the schema, content, files, users, and roles from an existing v8 instance to a new v9 instance. This is the most hands-off approach to moving from a v8 to a v9 instance, and is the recommended way of migrating your v8 instance.",-1),N=e("div",{class:"tip hint"},[e("p",null,[t("The script, and instructions on how to run it, can be found on the"),e("br"),e("a",{href:"https://github.com/directus-community/migration-tool",target:"_blank",rel:"noopener noreferrer"},[e("code",null,"directus-community/migration-tool")]),t(" repo.")])],-1),O=e("p",null,"This tool will copy over:",-1),C=e("ul",null,[e("li",null,"Schema (collections / fields)"),e("li",null,"Files (including file contents)"),e("li",null,"User data (eg all items in all collections)"),e("li",null,"Roles"),e("li",null,"Users")],-1),E=e("p",null,[t("Due to significant differences in data structure between versions, this tool will "),e("strong",null,"NOT"),t(" copy over:")],-1),L=e("ul",null,[e("li",null,"Interface/display configurations"),e("li",null,"Permissions"),e("li",null,"Activity / revisions")],-1),W=e("h2",{id:"manual-database-export%2Fimport"},[t("Manual Database Export/Import "),e("a",{class:"header-anchor",href:"#manual-database-export%2Fimport"},"#")],-1),Q=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Automated"),e("p",null,"We highly recommend using the automated migration tool mentioned above. If that\u2019s not possible, you can perform the following steps to migrate your v8 instance.")],-1),R=e("p",null,"Directus v9 is a breaking change coming from v8 (hence the major version bump), so you won\u2019t be able to just use your existing v8 database and run v9 on top of it. However, due to the database-mirroring approach of Directus, it\u2019s fairly straightforward to migrate your content from v8 to v9.",-1),V=e("h4",{id:"1)-setup-a-fresh-v9-instance"},[t("1) Setup a Fresh v9 Instance "),e("a",{class:"header-anchor",href:"#1)-setup-a-fresh-v9-instance"},"#")],-1),z=e("p",null,"By installing Directus \u201Cfresh\u201D, you\u2019re ensured your system tables are up-to-date and ready to go.",-1),H=e("h4",{id:"2)-migrate-your-data"},[t("2) Migrate your Data "),e("a",{class:"header-anchor",href:"#2)-migrate-your-data"},"#")],-1),X=e("p",null,[t("Using a tool like "),e("a",{href:"http://sequelpro.com",target:"_blank",rel:"noopener noreferrer"},"Sequel Pro"),t(" or "),e("a",{href:"https://tableplus.com",target:"_blank",rel:"noopener noreferrer"},"TablePlus"),t(", export your v8 user-tables and import them into your v9 database.")],-1),G=e("p",null,"Directus v9 will automatically recognize your tables, and you\u2019ll be ready to get started in v9.",-1),J=e("p",null,[e("strong",null,"Note:"),t(" If you have references to users and files, make sure to update them to the new UUID format.")],-1),K=e("h4",{id:"3)-configure-directus"},[t("3) Configure Directus "),e("a",{class:"header-anchor",href:"#3)-configure-directus"},"#")],-1),Y=e("p",null,"Once the tables are in, you can start configuring the details of the schema. This includes choosing the correct interfaces, displays, and their options for your fields.",-1),Z=e("p",null,"This would also be a good time to reconfigure your permissions, to ensure they are accurate.",-1),$=e("h2",{id:"breaking-changes"},[t("Breaking changes "),e("a",{class:"header-anchor",href:"#breaking-changes"},"#")],-1),ee=t("Filter operators"),te=t(" have changed, now they are preceded with an underscore eg: "),oe=e("code",null,"/items/users?filter[comments.thread.title][like]=Directus",-1),ne=t(" is now "),ae=e("code",null,"/items/users?filter[comments][thread][title][_like]=Directus",-1),ce={setup(se,{expose:i}){const n={title:"Upgrades & Migrations",modularExtension:!1};return i({frontmatter:n}),(re,ie)=>{const a=s("router-link"),l=s("DocsWrapper");return c(),u(l,{frontmatter:n},{default:o(()=>[e("div",d,[e("blockquote",null,[e("p",null,[h,p,g,r(a,{to:"/docs/getting-started/glossary/#projects"},{default:o(()=>[m]),_:1}),_])]),f,y,b,v,w,k,j,D,x,B,P,I,S,T,A,F,M,U,q,N,O,C,E,L,W,Q,R,V,z,H,X,G,J,K,Y,Z,$,e("ul",null,[e("li",null,[r(a,{to:"/docs/configuration/filter-rules/"},{default:o(()=>[ee]),_:1}),te,oe,ne,ae])])])]),_:1})}}};export{ce as default};
@@ -1 +1 @@
1
- var G=Object.defineProperty,K=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var R=(e,t,n)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A=(e,t)=>{for(var n in t||(t={}))Y.call(t,n)&&R(e,n,t[n]);if(N)for(var n of N(t))Z.call(t,n)&&R(e,n,t[n]);return e},M=(e,t)=>K(e,V(t));import{H as P,v as F,o as c,l as I,y as ee,ah as y,ad as q,n as te,ao as ne,a1 as le}from"./vendor.62e5a05d.js";function ge(e){return e}function Se(e){return e}function be(e){return e}function we(e){return e}function Fe(e){return e}function Ee(e){return e}function Te(e){return e}function $e(e){if(e===null)return[];const t=/{{(.*?)}}/g;let n=e.match(t);return Array.isArray(n)?(n=n.map(i=>i.replace(/{{/g,"").replace(/}}/g,"").trim()),n):[]}function Ce(e){var t,n,i;const{relation:l,collection:a,field:r}=e;return l?l.collection===a&&l.field===r&&((t=l.meta)===null||t===void 0?void 0:t.one_collection_field)&&((n=l.meta)===null||n===void 0?void 0:n.one_allowed_collections)?"m2a":l.collection===a&&l.field===r?"m2o":l.related_collection===a&&((i=l.meta)===null||i===void 0?void 0:i.one_field)===r?"o2m":null:null}const ue="stores",oe="api",ie="extensions";function ae(e,t,n){const i=e[t],l=e.length,a=t-n;if(i===void 0)return e;if(a>0)return[...e.slice(0,n),i,...e.slice(n,t),...e.slice(t+1,l)];if(a<0){const r=n+1;return[...e.slice(0,t),...e.slice(t+1,r),i,...e.slice(r,l)]}return e}function re(){const e=P(ue);if(!e)throw new Error("[useStores]: The stores could not be found.");return e}function se(){const e=P(oe);if(!e)throw new Error("[useApi]: The api could not be found.");return e}function ce(){const e=P(ie);if(!e)throw new Error("[useExtensions]: The extensions could not be found.");return e}function de(e){const{useCollectionsStore:t,useFieldsStore:n}=re(),i=t(),l=n(),a=typeof e=="string"?F(e):e,r=c(()=>i.collections.find(({collection:u})=>u===a.value)||null),h=c(()=>a.value?l.getFieldsForCollection(a.value):[]),T=c(()=>{var u;if(!h.value)return{};const o={};for(const p of h.value)((u=p.schema)===null||u===void 0?void 0:u.default_value)&&(o[p.field]=p.schema.default_value);return o}),$=c(()=>h.value.find(u=>{var o;return u.collection===a.value&&((o=u.schema)===null||o===void 0?void 0:o.is_primary_key)===!0})||null),m=c(()=>{var u;return((u=h.value)===null||u===void 0?void 0:u.find(o=>{var p;return(((p=o.meta)===null||p===void 0?void 0:p.special)||[]).includes("user_created")}))||null}),C=c(()=>{var u,o;return((o=(u=r.value)===null||u===void 0?void 0:u.meta)===null||o===void 0?void 0:o.sort_field)||null}),_=c(()=>{var u,o;return((o=(u=r.value)===null||u===void 0?void 0:u.meta)===null||o===void 0?void 0:o.singleton)===!0}),E=c(()=>!r.value||!r.value.meta?null:r.value.meta.accountability);return{info:r,fields:h,defaults:T,primaryKeyField:$,userCreatedField:m,sortField:C,isSingleton:_,accountabilityScope:E}}function Oe(e,t,n=!0){const i=se(),{primaryKeyField:l}=de(e),{fields:a,limit:r,sort:h,search:T,filter:$,page:m}=t,C=c(()=>e.value?e.value.startsWith("directus_")?`/${e.value.substring(9)}`:`/items/${e.value}`:null),_=F([]),E=F(!1),u=F(null),o=F(null),p=F(null),J=c(()=>{var d,f;return o.value===null||o.value<((d=y(r))!==null&&d!==void 0?d:100)?1:Math.ceil(o.value/((f=y(r))!==null&&f!==void 0?f:100))});let S=null,b=null;const W=I.exports.throttle(x,500);return n&&W(),ee([e,r,h,T,$,a,m],async(d,f)=>{if(I.exports.isEqual(d,f))return;const[v,s,g,w,j,O,pe]=d,[L,Q,X,D,z,me,_e]=f;!v||!t||((!I.exports.isEqual(j,z)||!I.exports.isEqual(g,X)||s!==Q||w!==D)&&L&&(m.value=1),v!==L&&U(),W())},{deep:!0,immediate:!0}),{itemCount:o,totalCount:p,items:_,totalPages:J,loading:E,error:u,changeManualSort:H,getItems:x};async function x(){var d,f;if(!C.value)return;S==null||S.cancel(),S=null,u.value=null,b&&clearTimeout(b),b=setTimeout(()=>{E.value=!0},150);let v=[...(d=y(a))!==null&&d!==void 0?d:[]];!((f=y(a))===null||f===void 0?void 0:f.includes("*"))&&l.value&&v.includes(l.value.field)===!1&&v.push(l.value.field),v=v.filter(s=>s.startsWith("$")===!1);try{S=q.CancelToken.source();const s=await i.get(C.value,{params:{limit:y(r),fields:v,sort:y(h),page:y(m),search:y(T),filter:y($),meta:["filter_count","total_count"]},cancelToken:S.token});let g=s.data.data;e.value==="directus_files"&&(g=g.map(w=>M(A({},w),{$thumbnail:w}))),_.value=g,p.value=s.data.meta.total_count,o.value=s.data.meta.filter_count,m&&g.length===0&&(m==null?void 0:m.value)!==1&&(m.value=1)}catch(s){q.isCancel(s)||(u.value=s)}finally{b&&(clearTimeout(b),b=null),E.value=!1}}function U(){_.value=[],p.value=null,o.value=null}async function H({item:d,to:f}){var v;const s=(v=l.value)===null||v===void 0?void 0:v.field;if(!s)return;const g=_.value.findIndex(O=>O[s]===d),w=_.value.findIndex(O=>O[s]===f);_.value=ae(_.value,g,w);const j=c(()=>`/utils/sort/${e.value}`);await i.post(j.value,{item:d,to:f})}}const k="wrapper",B=["selection","layoutOptions","layoutQuery"];function fe(e){return B.includes(e)}function ve(e){return te({name:`${e.id}-${k}`,props:{collection:{type:String,required:!0},selection:{type:Array,default:()=>[]},layoutOptions:{type:Object,default:()=>({})},layoutQuery:{type:Object,default:()=>({})},filter:{type:Object,default:null},filterUser:{type:Object,default:null},filterSystem:{type:Object,default:null},search:{type:String,default:null},showSelect:{type:String,default:"multiple"},selectMode:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},resetPreset:{type:Function,default:null},clearFilters:{type:Function,default:null}},emits:B.map(t=>`update:${t}`),setup(t,{emit:n}){const i=ne(A(A({},e.setup(t,{emit:n})),le(t)));for(const l in i)i[`onUpdate:${l}`]=a=>{fe(l)?n(`update:${l}`,a):Object.keys(t).includes(l)||(i[l]=a)};return{state:i}},render(t){return t.$slots.default!==void 0?t.$slots.default({layoutState:t.state}):null}})}function Ae(e){const{layouts:t}=ce(),n=c(()=>t.value.map(l=>ve(l)));return{layoutWrapper:c(()=>{const l=n.value.find(a=>a.name===`${e.value}-${k}`);return l===void 0?n.value.find(a=>a.name===`tabular-${k}`):l})}}function Ie(e,t,n){return c({get(){return e[t]},set(i){n(`update:${t}`,i)}})}export{oe as A,ie as E,ue as S,Ae as a,de as b,Ce as c,we as d,Te as e,Se as f,$e as g,ge as h,be as i,Oe as j,Fe as k,Ee as l,re as m,se as n,ce as o,Ie as u};
1
+ var G=Object.defineProperty,K=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var R=(e,t,n)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A=(e,t)=>{for(var n in t||(t={}))Y.call(t,n)&&R(e,n,t[n]);if(N)for(var n of N(t))Z.call(t,n)&&R(e,n,t[n]);return e},M=(e,t)=>K(e,V(t));import{H as P,v as F,o as c,l as I,y as ee,ah as y,ad as q,n as te,ao as ne,a1 as le}from"./vendor.f59145b7.js";function ge(e){return e}function Se(e){return e}function be(e){return e}function we(e){return e}function Fe(e){return e}function Ee(e){return e}function Te(e){return e}function $e(e){if(e===null)return[];const t=/{{(.*?)}}/g;let n=e.match(t);return Array.isArray(n)?(n=n.map(i=>i.replace(/{{/g,"").replace(/}}/g,"").trim()),n):[]}function Ce(e){var t,n,i;const{relation:l,collection:a,field:r}=e;return l?l.collection===a&&l.field===r&&((t=l.meta)===null||t===void 0?void 0:t.one_collection_field)&&((n=l.meta)===null||n===void 0?void 0:n.one_allowed_collections)?"m2a":l.collection===a&&l.field===r?"m2o":l.related_collection===a&&((i=l.meta)===null||i===void 0?void 0:i.one_field)===r?"o2m":null:null}const ue="stores",oe="api",ie="extensions";function ae(e,t,n){const i=e[t],l=e.length,a=t-n;if(i===void 0)return e;if(a>0)return[...e.slice(0,n),i,...e.slice(n,t),...e.slice(t+1,l)];if(a<0){const r=n+1;return[...e.slice(0,t),...e.slice(t+1,r),i,...e.slice(r,l)]}return e}function re(){const e=P(ue);if(!e)throw new Error("[useStores]: The stores could not be found.");return e}function se(){const e=P(oe);if(!e)throw new Error("[useApi]: The api could not be found.");return e}function ce(){const e=P(ie);if(!e)throw new Error("[useExtensions]: The extensions could not be found.");return e}function de(e){const{useCollectionsStore:t,useFieldsStore:n}=re(),i=t(),l=n(),a=typeof e=="string"?F(e):e,r=c(()=>i.collections.find(({collection:u})=>u===a.value)||null),h=c(()=>a.value?l.getFieldsForCollection(a.value):[]),T=c(()=>{var u;if(!h.value)return{};const o={};for(const p of h.value)((u=p.schema)===null||u===void 0?void 0:u.default_value)&&(o[p.field]=p.schema.default_value);return o}),$=c(()=>h.value.find(u=>{var o;return u.collection===a.value&&((o=u.schema)===null||o===void 0?void 0:o.is_primary_key)===!0})||null),m=c(()=>{var u;return((u=h.value)===null||u===void 0?void 0:u.find(o=>{var p;return(((p=o.meta)===null||p===void 0?void 0:p.special)||[]).includes("user_created")}))||null}),C=c(()=>{var u,o;return((o=(u=r.value)===null||u===void 0?void 0:u.meta)===null||o===void 0?void 0:o.sort_field)||null}),_=c(()=>{var u,o;return((o=(u=r.value)===null||u===void 0?void 0:u.meta)===null||o===void 0?void 0:o.singleton)===!0}),E=c(()=>!r.value||!r.value.meta?null:r.value.meta.accountability);return{info:r,fields:h,defaults:T,primaryKeyField:$,userCreatedField:m,sortField:C,isSingleton:_,accountabilityScope:E}}function Oe(e,t,n=!0){const i=se(),{primaryKeyField:l}=de(e),{fields:a,limit:r,sort:h,search:T,filter:$,page:m}=t,C=c(()=>e.value?e.value.startsWith("directus_")?`/${e.value.substring(9)}`:`/items/${e.value}`:null),_=F([]),E=F(!1),u=F(null),o=F(null),p=F(null),J=c(()=>{var d,f;return o.value===null||o.value<((d=y(r))!==null&&d!==void 0?d:100)?1:Math.ceil(o.value/((f=y(r))!==null&&f!==void 0?f:100))});let S=null,b=null;const W=I.exports.throttle(x,500);return n&&W(),ee([e,r,h,T,$,a,m],async(d,f)=>{if(I.exports.isEqual(d,f))return;const[v,s,g,w,j,O,pe]=d,[L,Q,X,D,z,me,_e]=f;!v||!t||((!I.exports.isEqual(j,z)||!I.exports.isEqual(g,X)||s!==Q||w!==D)&&L&&(m.value=1),v!==L&&U(),W())},{deep:!0,immediate:!0}),{itemCount:o,totalCount:p,items:_,totalPages:J,loading:E,error:u,changeManualSort:H,getItems:x};async function x(){var d,f;if(!C.value)return;S==null||S.cancel(),S=null,u.value=null,b&&clearTimeout(b),b=setTimeout(()=>{E.value=!0},150);let v=[...(d=y(a))!==null&&d!==void 0?d:[]];!((f=y(a))===null||f===void 0?void 0:f.includes("*"))&&l.value&&v.includes(l.value.field)===!1&&v.push(l.value.field),v=v.filter(s=>s.startsWith("$")===!1);try{S=q.CancelToken.source();const s=await i.get(C.value,{params:{limit:y(r),fields:v,sort:y(h),page:y(m),search:y(T),filter:y($),meta:["filter_count","total_count"]},cancelToken:S.token});let g=s.data.data;e.value==="directus_files"&&(g=g.map(w=>M(A({},w),{$thumbnail:w}))),_.value=g,p.value=s.data.meta.total_count,o.value=s.data.meta.filter_count,m&&g.length===0&&(m==null?void 0:m.value)!==1&&(m.value=1)}catch(s){q.isCancel(s)||(u.value=s)}finally{b&&(clearTimeout(b),b=null),E.value=!1}}function U(){_.value=[],p.value=null,o.value=null}async function H({item:d,to:f}){var v;const s=(v=l.value)===null||v===void 0?void 0:v.field;if(!s)return;const g=_.value.findIndex(O=>O[s]===d),w=_.value.findIndex(O=>O[s]===f);_.value=ae(_.value,g,w);const j=c(()=>`/utils/sort/${e.value}`);await i.post(j.value,{item:d,to:f})}}const k="wrapper",B=["selection","layoutOptions","layoutQuery"];function fe(e){return B.includes(e)}function ve(e){return te({name:`${e.id}-${k}`,props:{collection:{type:String,required:!0},selection:{type:Array,default:()=>[]},layoutOptions:{type:Object,default:()=>({})},layoutQuery:{type:Object,default:()=>({})},filter:{type:Object,default:null},filterUser:{type:Object,default:null},filterSystem:{type:Object,default:null},search:{type:String,default:null},showSelect:{type:String,default:"multiple"},selectMode:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},resetPreset:{type:Function,default:null},clearFilters:{type:Function,default:null}},emits:B.map(t=>`update:${t}`),setup(t,{emit:n}){const i=ne(A(A({},e.setup(t,{emit:n})),le(t)));for(const l in i)i[`onUpdate:${l}`]=a=>{fe(l)?n(`update:${l}`,a):Object.keys(t).includes(l)||(i[l]=a)};return{state:i}},render(t){return t.$slots.default!==void 0?t.$slots.default({layoutState:t.state}):null}})}function Ae(e){const{layouts:t}=ce(),n=c(()=>t.value.map(l=>ve(l)));return{layoutWrapper:c(()=>{const l=n.value.find(a=>a.name===`${e.value}-${k}`);return l===void 0?n.value.find(a=>a.name===`tabular-${k}`):l})}}function Ie(e,t,n){return c({get(){return e[t]},set(i){n(`update:${t}`,i)}})}export{oe as A,ie as E,ue as S,Ae as a,de as b,Ce as c,we as d,Te as e,Se as f,$e as g,ge as h,be as i,Oe as j,Fe as k,Ee as l,re as m,se as n,ce as o,Ie as u};
@@ -1 +1 @@
1
- import{r as l,p as c,q as u,w as t,z as e,t as n,S as s}from"./vendor.62e5a05d.js";var h="assets/user-directory-overview.69a80519.png",d="assets/user-overview.5cc16f64.png";const g={class:"markdown-body"},p=s("Users"),_=s(" are the individual accounts for logging in to the App. Each user belongs to a "),f=s("Role"),m=s(" which defines its "),v=s("Permissions"),w=s(". The User Directory shows all users within the project, each with their own customizable profile page."),y=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#browsing-users"},"Browsing Users")]),e("li",null,[e("a",{href:"#viewing-a-user"},"Viewing a User")]),e("li",null,[e("a",{href:"#editing-a-user"},"Editing a User")])])])],-1),b=e("h2",{id:"browsing-users"},[s("Browsing Users "),e("a",{class:"header-anchor",href:"#browsing-users"},"#")],-1),T=e("p",null,[e("img",{src:h,alt:"User Directory Overview"})],-1),A=s("Lists all users of the project, with a navigation that allows quick access to the different role groups. This page has the same functionality as other "),U=s("Content Pages"),k=s("."),D=e("h2",{id:"viewing-a-user"},[s("Viewing a User "),e("a",{class:"header-anchor",href:"#viewing-a-user"},"#")],-1),x=e("p",null,[e("img",{src:d,alt:"User Overview"})],-1),L=e("p",null,"Users are referenced throughout the app, often for accountability purposes. Hovering over a user in this context will provide a popover for basic information, and clicking that popover will navigate you to a readonly view of that user\u2019s profile page.",-1),B=e("h2",{id:"editing-a-user"},[s("Editing a User "),e("a",{class:"header-anchor",href:"#editing-a-user"},"#")],-1),E=s("You can access your profile page from the User Directory or by clicking the User Menu in the "),N=s("Module Bar"),P=s(". The profile page has the same features and functionality as the "),V=s("Item Page"),q=s(". Administrators can customize the fields on this page, but the following are available by default."),C=e("ul",null,[e("li",null,[e("strong",null,"First Name"),s(" \u2014 The given name")]),e("li",null,[e("strong",null,"Last Name"),s(" \u2014 The family/surname")]),e("li",null,[e("strong",null,"Email"),s(" \u2014 A unique email address")]),e("li",null,[e("strong",null,"Password"),s(" \u2014 A hashed system password")]),e("li",null,[e("strong",null,"Avatar"),s(" \u2014 An image to represent the user")]),e("li",null,[e("strong",null,"Location"),s(" \u2014 The city, country, office, or branch name")]),e("li",null,[e("strong",null,"Title"),s(" \u2014 The professional staff title")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A freeform text description")]),e("li",null,[e("strong",null,"Tags"),s(" \u2014 Keywords for searchability")]),e("li",null,[e("strong",null,"Language"),s(" \u2014 The preferred App language/locale")]),e("li",null,[e("strong",null,"Theme"),s(" \u2014 Light or Dark mode (or based on system preferences)")]),e("li",null,[e("strong",null,"Multi-Factor Authentication"),s(" \u2014 Configuration for MFA")]),e("li",null,[e("strong",null,"Email Notifications"),s(" - Receive emails for notifications")])],-1),F=e("p",null,"The sidebar\u2019s info component also includes the following readonly details:",-1),M=e("ul",null,[e("li",null,[e("strong",null,"User Key"),s(" \u2014 The primary key of the user")]),e("li",null,[e("strong",null,"Last Page"),s(" \u2014 The last App page accessed by the user")]),e("li",null,[e("strong",null,"Last Access"),s(" \u2014 The timestamp of the user\u2019s last App or API action")])],-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"System Fields"),e("p",null,"Administrators have access to additional system fields.")],-1),R={setup(z,{expose:r}){const i={title:"User Directory",modularExtension:!1};return r({frontmatter:i}),(I,K)=>{const o=l("router-link"),a=l("DocsWrapper");return c(),u(a,{frontmatter:i},{default:t(()=>[e("div",g,[e("blockquote",null,[e("p",null,[n(o,{to:"/docs/getting-started/glossary#users"},{default:t(()=>[p]),_:1}),_,n(o,{to:"/docs/getting-started/glossary#roles"},{default:t(()=>[f]),_:1}),m,n(o,{to:"/docs/getting-started/glossary#permissions"},{default:t(()=>[v]),_:1}),w])]),y,b,T,e("p",null,[A,n(o,{to:"/docs/app/content-collections/"},{default:t(()=>[U]),_:1}),k]),D,x,L,B,e("p",null,[E,n(o,{to:"/docs/app/overview/#_1-module-bar"},{default:t(()=>[N]),_:1}),P,n(o,{to:"/docs/app/content-items/"},{default:t(()=>[V]),_:1}),q]),C,F,M,j])]),_:1})}}};export{R as default};
1
+ import{r as l,p as c,q as u,w as t,z as e,t as n,S as s}from"./vendor.f59145b7.js";var h="assets/user-directory-overview.69a80519.png",d="assets/user-overview.5cc16f64.png";const g={class:"markdown-body"},p=s("Users"),_=s(" are the individual accounts for logging in to the App. Each user belongs to a "),f=s("Role"),m=s(" which defines its "),v=s("Permissions"),w=s(". The User Directory shows all users within the project, each with their own customizable profile page."),y=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#browsing-users"},"Browsing Users")]),e("li",null,[e("a",{href:"#viewing-a-user"},"Viewing a User")]),e("li",null,[e("a",{href:"#editing-a-user"},"Editing a User")])])])],-1),b=e("h2",{id:"browsing-users"},[s("Browsing Users "),e("a",{class:"header-anchor",href:"#browsing-users"},"#")],-1),T=e("p",null,[e("img",{src:h,alt:"User Directory Overview"})],-1),A=s("Lists all users of the project, with a navigation that allows quick access to the different role groups. This page has the same functionality as other "),U=s("Content Pages"),k=s("."),D=e("h2",{id:"viewing-a-user"},[s("Viewing a User "),e("a",{class:"header-anchor",href:"#viewing-a-user"},"#")],-1),x=e("p",null,[e("img",{src:d,alt:"User Overview"})],-1),L=e("p",null,"Users are referenced throughout the app, often for accountability purposes. Hovering over a user in this context will provide a popover for basic information, and clicking that popover will navigate you to a readonly view of that user\u2019s profile page.",-1),B=e("h2",{id:"editing-a-user"},[s("Editing a User "),e("a",{class:"header-anchor",href:"#editing-a-user"},"#")],-1),E=s("You can access your profile page from the User Directory or by clicking the User Menu in the "),N=s("Module Bar"),P=s(". The profile page has the same features and functionality as the "),V=s("Item Page"),q=s(". Administrators can customize the fields on this page, but the following are available by default."),C=e("ul",null,[e("li",null,[e("strong",null,"First Name"),s(" \u2014 The given name")]),e("li",null,[e("strong",null,"Last Name"),s(" \u2014 The family/surname")]),e("li",null,[e("strong",null,"Email"),s(" \u2014 A unique email address")]),e("li",null,[e("strong",null,"Password"),s(" \u2014 A hashed system password")]),e("li",null,[e("strong",null,"Avatar"),s(" \u2014 An image to represent the user")]),e("li",null,[e("strong",null,"Location"),s(" \u2014 The city, country, office, or branch name")]),e("li",null,[e("strong",null,"Title"),s(" \u2014 The professional staff title")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A freeform text description")]),e("li",null,[e("strong",null,"Tags"),s(" \u2014 Keywords for searchability")]),e("li",null,[e("strong",null,"Language"),s(" \u2014 The preferred App language/locale")]),e("li",null,[e("strong",null,"Theme"),s(" \u2014 Light or Dark mode (or based on system preferences)")]),e("li",null,[e("strong",null,"Multi-Factor Authentication"),s(" \u2014 Configuration for MFA")]),e("li",null,[e("strong",null,"Email Notifications"),s(" - Receive emails for notifications")])],-1),F=e("p",null,"The sidebar\u2019s info component also includes the following readonly details:",-1),M=e("ul",null,[e("li",null,[e("strong",null,"User Key"),s(" \u2014 The primary key of the user")]),e("li",null,[e("strong",null,"Last Page"),s(" \u2014 The last App page accessed by the user")]),e("li",null,[e("strong",null,"Last Access"),s(" \u2014 The timestamp of the user\u2019s last App or API action")])],-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"System Fields"),e("p",null,"Administrators have access to additional system fields.")],-1),R={setup(z,{expose:r}){const i={title:"User Directory",modularExtension:!1};return r({frontmatter:i}),(I,K)=>{const o=l("router-link"),a=l("DocsWrapper");return c(),u(a,{frontmatter:i},{default:t(()=>[e("div",g,[e("blockquote",null,[e("p",null,[n(o,{to:"/docs/getting-started/glossary#users"},{default:t(()=>[p]),_:1}),_,n(o,{to:"/docs/getting-started/glossary#roles"},{default:t(()=>[f]),_:1}),m,n(o,{to:"/docs/getting-started/glossary#permissions"},{default:t(()=>[v]),_:1}),w])]),y,b,T,e("p",null,[A,n(o,{to:"/docs/app/content-collections/"},{default:t(()=>[U]),_:1}),k]),D,x,L,B,e("p",null,[E,n(o,{to:"/docs/app/overview/#_1-module-bar"},{default:t(()=>[N]),_:1}),P,n(o,{to:"/docs/app/content-items/"},{default:t(()=>[V]),_:1}),q]),C,F,M,j])]),_:1})}}};export{R as default};
@@ -1 +1 @@
1
- import{r as o,p as c,q as u,w as t,z as e,t as l,S as s}from"./vendor.62e5a05d.js";const d={class:"markdown-body"},h=s("Users"),g=s(" are the individual accounts for authenticating into the API and App. Each user belongs to a "),_=s("Role"),p=s(" which defines its access "),f=s("Permissions"),m=s("."),v=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#creating-a-user"},"Creating a User")]),e("li",null,[e("a",{href:"#inviting-a-user"},"Inviting a User")]),e("li",null,[e("a",{href:"#configuring-a-user"},"Configuring a User")]),e("li",null,[e("a",{href:"#archiving-a-user"},"Archiving a User")]),e("li",null,[e("a",{href:"#deleting-a-user"},"Deleting a User")]),e("li",null,[e("a",{href:"#creating-a-role"},"Creating a Role")]),e("li",null,[e("a",{href:"#configuring-a-role"},"Configuring a Role")]),e("li",null,[e("a",{href:"#deleting-a-role"},"Deleting a Role")]),e("li",null,[e("a",{href:"#configuring-permissions"},"Configuring Permissions")]),e("li",null,[e("a",{href:"#configuring-workflows"},"Configuring Workflows")])])])],-1),b=e("h2",{id:"creating-a-user"},[s("Creating a User "),e("a",{class:"header-anchor",href:"#creating-a-user"},"#")],-1),y=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter an "),e("strong",null,"Email Address")]),e("li",null,[s("Optional: Complete the "),e("strong",null,"other user form fields")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"check"),s(" to save the user.")])],-1),w=e("h2",{id:"inviting-a-user"},[s("Inviting a User "),e("a",{class:"header-anchor",href:"#inviting-a-user"},"#")],-1),A=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",sec:""},"person_add"),s(" in the header")]),e("li",null,[s("Enter "),e("strong",null,"one or more email addresses"),s(", separated by new lines, in the modal")]),e("li",null,[s("Select the "),e("strong",null,"Role"),s(" you want to assign to the user(s)")]),e("li",null,[s("Click "),e("strong",null,"Invite")])],-1),k=e("p",null,"At this point the invited user(s) will receive an email with a link to the App where they set a password and enable their account.",-1),C=e("h2",{id:"configuring-a-user"},[s("Configuring a User "),e("a",{class:"header-anchor",href:"#configuring-a-user"},"#")],-1),P=e("li",null,[s("Navigate to the "),e("strong",null,"User Library")],-1),R=e("li",null,[e("strong",null,"Click on the user"),s(" you wish to manage")],-1),U=e("strong",null,"Complete the form",-1),I=s(" of "),D=s("User Fields"),T=e("p",null,"The User Detail is only editable by the current user and admins, and the following fields are only available to admins:",-1),F=e("li",null,[e("strong",null,"Status"),s(" \u2014 Determines if an account is able to access the platform or not. Only the "),e("code",null,"active"),s(" state is able to authenticate, all others are simply descriptive inactive states. "),e("ul",null,[e("li",null,[e("strong",null,"Draft"),s(" \u2014 An incomplete user; no App/API access")]),e("li",null,[e("strong",null,"Invited"),s(" \u2014 Has a pending invite to the project; no App/API access until accepted")]),e("li",null,[e("strong",null,"Active"),s(" \u2014 The only status that has proper access to the App and API")]),e("li",null,[e("strong",null,"Suspended"),s(" \u2014 A user that has been temporarily disabled; no App/API access")]),e("li",null,[e("strong",null,"Archived"),s(" \u2014 A soft-deleted user; no App/API access")])])],-1),N=e("li",null,[e("strong",null,"Role"),s(" \u2014 The user\u2019s role determines their permissions and access")],-1),S=e("strong",null,"Token",-1),x=s(" \u2014 A user\u2019s token is an alternate way to "),L=s("authenticate into the API"),E=s(" using a static string. When NULL, the token is disabled. When enabled, ensure that a secure string is used."),q=e("h2",{id:"archiving-a-user"},[s("Archiving a User "),e("a",{class:"header-anchor",href:"#archiving-a-user"},"#")],-1),W=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,"Click the user you with to archive to go to their User Detail page"),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",warn:""},"archive"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Archive"),s(" in the dialog")])],-1),j=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Disables Access"),e("p",null,[s("Archiving uses "),e("em",null,"soft-delete"),s(", therefore archived users are unable to access the App or API.")])],-1),V=e("h2",{id:"deleting-a-user"},[s("Deleting a User "),e("a",{class:"header-anchor",href:"#deleting-a-user"},"#")],-1),z=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,"Select one or more users you wish to delete"),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),B=e("div",{class:"danger hint"},[e("div",{class:"hint-title"},"Irreversible Change"),e("p",null,"Unlike the soft-delete of archiving, this process is a hard-delete. Therefore, this action is permanent and can not be undone. Please proceed with caution.")],-1),M=e("h2",{id:"creating-a-role"},[s("Creating a Role "),e("a",{class:"header-anchor",href:"#creating-a-role"},"#")],-1),O=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter a unique "),e("strong",null,"Role Name")]),e("li",null,[s("Enabling "),e("strong",null,"App Access"),s(" allows logging in to the App")]),e("li",null,[s("Enabling "),e("strong",null,"Admin Access"),s(" gives full permission to project data and Settings")]),e("li",null,[s("Click on "),e("strong",null,"Save"),s(" to save the role")])],-1),Y=e("h2",{id:"configuring-a-role"},[s("Configuring a Role "),e("a",{class:"header-anchor",href:"#configuring-a-role"},"#")],-1),G=e("ul",null,[e("li",null,[e("strong",null,"Permissions"),s(" \u2014 Defines the role\u2019s access permissions")]),e("li",null,[e("strong",null,"Role Name"),s(" \u2014 This is the name of the role")]),e("li",null,[e("strong",null,"Role Icon"),s(" \u2014 The icon used throughout the App when referencing this role")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A helpful note that explains the role\u2019s purpose")]),e("li",null,[e("strong",null,"App Access"),s(" \u2014 Allows logging in to the App")]),e("li",null,[e("strong",null,"Admin Access"),s(" \u2014 Gives full permission to project data and Settings")]),e("li",null,[e("strong",null,"IP Access"),s(" \u2014 An allow-list of IP addresses from which the platform can be accessed, empty allows all")]),e("li",null,[e("strong",null,"Require 2FA"),s(" \u2014 Forces all users within this role to use two-factor authentication")]),e("li",null,[e("strong",null,"Users in Role"),s(" \u2014 A list of all users within this role")])],-1),H=e("h2",{id:"deleting-a-role"},[s("Deleting a Role "),e("a",{class:"header-anchor",href:"#deleting-a-role"},"#")],-1),K=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),J={class:"warning hint"},Q=e("div",{class:"hint-title"},"Users in a Deleted Role",-1),X=s("If you delete a role that still has users in it, those users will be given a "),Z=e("code",null,"NULL",-1),$=s(" role, which denies their App access and limits them to the "),ee=s("Public Role"),se=s(" permissions. They can then be reassigned to a new role by an admin."),te=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Last Admin"),e("p",null,"You must maintain at least one role/user with Admin Access so that you can still properly manage the project.")],-1),ne=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Public Role"),e("p",null,"You can not delete the Public role, as it is part of the core platform. To disable it completely, simply turn off all Public access permissions.")],-1),le=e("h2",{id:"configuring-permissions"},[s("Configuring Permissions "),e("a",{class:"header-anchor",href:"#configuring-permissions"},"#")],-1),ie=e("p",null,"Directus possesses an extremely granular, yet easy to configure, permissions system. When creating a new role, permissions are disabled for all project collections by default \u2014 allowing you to give explicit access to only what is required. Individual permissions are applied to the role, and each is scoped to a specific collection and CRUD action (create, read, update, delete).",-1),oe=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Saves Automatically"),e("p",null,"Every change made to the permissions of a role is saved automatically and instantly.")],-1),ae=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Admin Roles"),e("p",null,[s("If a role is set to "),e("strong",null,"Admin Access"),s(" then it is granted complete access to the platform, and therefore the permission configuration field is disabled.")])],-1),re=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Scroll to the "),e("strong",null,"Permissions"),s(" section")]),e("li",null,[e("strong",null,"Click the icon"),s(" for the collection (row) and action (column) you want to set")]),e("li",null,[s("Choose the desired permission level: "),e("span",{mi:"",icon:""},"check"),s(),e("strong",null,"All Access"),s(", "),e("span",{mi:"",icon:""},"block"),s(),e("strong",null,"No Access"),s(", or "),e("span",{mi:"",icon:""},"rule"),s(),e("strong",null,"Use Custom")])],-1),ce=e("p",null,[e("strong",null,[s("If you selected \u201C"),e("span",{mi:"",icon:""},"check"),s(" All Access\u201D or \u201C"),e("span",{mi:"",icon:""},"block"),s(" No Access\u201D then setup is complete.")]),s(" If you chose to customize permissions then continue with the appropriate guide below based on the relevant "),e("em",null,"action"),s(".")],-1),ue=e("h3",{id:"create-(custom-access)"},[s("Create (Custom Access) "),e("a",{class:"header-anchor",href:"#create-(custom-access)"},"#")],-1),de=e("ol",{start:"5"},[e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields accept a value on create. Fields are individually toggled.")]),e("li",null,[e("strong",null,"Field Validation"),s(" define the rules for field values on create")]),e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when creating an item")])],-1),he=e("h3",{id:"read-(custom-access)"},[s("Read (Custom Access) "),e("a",{class:"header-anchor",href:"#read-(custom-access)"},"#")],-1),ge={start:"5"},_e=e("strong",null,"Item Permissions",-1),pe=s(" control which items can be read, as defined by the "),fe=s("Filter Rules"),me=s(" entered."),ve=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be read. Fields are individually toggled.")],-1),be=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Read Field Permissions"),e("p",null,[s("The Directus App always requires read access to the Primary Key field (eg: "),e("code",null,"id"),s(") so it can uniquely identify items. Also, if a Collection has \u201CArchive\u201D or \u201CSort\u201D fields configured, those fields will also need read access to use the App\u2019s soft-delete and manual sorting features.")])],-1),ye=e("h3",{id:"update-(custom-access)"},[s("Update (Custom Access) "),e("a",{class:"header-anchor",href:"#update-(custom-access)"},"#")],-1),we={start:"5"},Ae=e("strong",null,"Item Permissions",-1),ke=s(" control which items can be updated, as defined by "),Ce=s("Filter Rules"),Pe=s("."),Re=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be updated. Fields are individually toggled.")],-1),Ue=e("strong",null,"Field Validation",-1),Ie=s(" define the rules for field values on update, as defined by "),De=s("Filter Rules"),Te=s("."),Fe=e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when updating an item")],-1),Ne=e("h3",{id:"delete-(custom-access)"},[s("Delete (Custom Access) "),e("a",{class:"header-anchor",href:"#delete-(custom-access)"},"#")],-1),Se={start:"5"},xe=e("strong",null,"Item Permissions",-1),Le=s(" control which items can be deleted, as defined by the "),Ee=s("Filter Rules"),qe=s(" entered."),We=e("hr",null,null,-1),je=e("h3",{id:"configuring-public-permissions"},[s("Configuring Public Permissions "),e("a",{class:"header-anchor",href:"#configuring-public-permissions"},"#")],-1),Ve=e("p",null,"The Public permissions control what project data is accessible without authentication. This is managed via the Public \u201Crole\u201D, which is included in the system by default and can not be deleted.",-1),ze=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Private by Default"),e("p",null,"All of the data within the platform is private by default. Permissions for the public role can be granted on a case-by-case basis by administrators.")],-1),Be=e("h3",{id:"configuring-system-permissions"},[s("Configuring System Permissions "),e("a",{class:"header-anchor",href:"#configuring-system-permissions"},"#")],-1),Me=e("p",null,[s("In addition to permissions for "),e("em",null,"your"),s(" custom collections, you can also customize the permissions for "),e("em",null,"system"),s(" collections. It is important to note that when App Access is enabled for a role, Directus will automatically add permission for the necessary system collections. To edit system permissions, simply click \u201CSystem Collections\u201D at the bottom of the permissions configuration.")],-1),Oe=e("p",null,"There are two pre-configured options you can use for resetting the role\u2019s system permissions and ensure proper App access. To access these, click \u201CSystem Collections\u201D to expand, and then click one of the buttons at the bottom of the listing.",-1),Ye=e("ul",null,[e("li",null,[e("strong",null,"App Access Minimum"),s(" \u2014 The minimum permissions required to properly access the App")]),e("li",null,[e("strong",null,"Recommended Defaults"),s(" \u2014 More permissive but balanced for a better App user experience")])],-1),Ge=e("h2",{id:"configuring-workflows"},[s("Configuring Workflows "),e("a",{class:"header-anchor",href:"#configuring-workflows"},"#")],-1),He=e("p",null,"Workflows are a way to add structured stages to the flow of content authoring. They are primarily defined through the permissions for a Collection, but can be further enhanced via email notifications, custom interfaces, and automation. Directus supports endlessly configurable workflows, so we will only cover one simple example below.",-1),Ke=s("To create a structured workflow for "),Je=e("strong",null,"Articles",-1),Qe=s(", the first step is "),Xe=s("Creating a Field"),Ze=s(" to track the article \u201Cstatus\u201D \u2014 we\u2019ll call it "),$e=e("strong",null,"Status",-1),es=s(", but it can be named anything."),ss=e("li",null,[s("Next, create different Roles for each stage of the workflow, such as "),e("code",null,"author"),s(" and "),e("code",null,"manager"),s(".")],-1),ts=e("li",null,[s("Finally, configure the Role permissions based on the possible values of that Status field, such as "),e("code",null,"draft"),s(", "),e("code",null,"review"),s(", "),e("code",null,"approved"),s(", and "),e("code",null,"published"),s(", so that they are properly restricted to create content and update the status. "),e("ul",null,[e("li",null,[s("The Author can create content, but only save a status of "),e("code",null,"draft"),s(" or "),e("code",null,"review"),s(".")]),e("li",null,[s("The Manager has additional permissions that allow them to save statuses of "),e("code",null,"approved"),s(" or "),e("code",null,"published"),s(".")])])],-1),as={setup(ns,{expose:a}){const i={title:"Users, Roles & Permissions",modularExtension:!1};return a({frontmatter:i}),(ls,is)=>{const n=o("router-link"),r=o("DocsWrapper");return c(),u(r,{frontmatter:i},{default:t(()=>[e("div",d,[e("blockquote",null,[e("p",null,[l(n,{to:"/docs/getting-started/glossary/#users"},{default:t(()=>[h]),_:1}),g,l(n,{to:"/docs/getting-started/glossary/#roles"},{default:t(()=>[_]),_:1}),p,l(n,{to:"/docs/getting-started/glossary/#permissions"},{default:t(()=>[f]),_:1}),m])]),v,b,y,w,A,k,C,e("ol",null,[P,R,e("li",null,[U,I,l(n,{to:"/docs/app/user-directory/#editing-a-user"},{default:t(()=>[D]),_:1})])]),T,e("ul",null,[F,N,e("li",null,[S,x,l(n,{to:"/docs/reference/authentication/"},{default:t(()=>[L]),_:1}),E])]),q,W,j,V,z,B,M,O,Y,G,H,K,e("div",J,[Q,e("p",null,[X,Z,$,l(n,{to:"/docs/configuration/users-roles-permissions/#configuring-public-permissions"},{default:t(()=>[ee]),_:1}),se])]),te,ne,le,ie,oe,ae,re,ce,ue,de,he,e("ol",ge,[e("li",null,[_e,pe,l(n,{to:"/docs/configuration/filter-rules"},{default:t(()=>[fe]),_:1}),me]),ve]),be,ye,e("ol",we,[e("li",null,[Ae,ke,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Ce]),_:1}),Pe]),Re,e("li",null,[Ue,Ie,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[De]),_:1}),Te]),Fe]),Ne,e("ol",Se,[e("li",null,[xe,Le,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Ee]),_:1}),qe])]),We,je,Ve,ze,Be,Me,Oe,Ye,Ge,He,e("ol",null,[e("li",null,[Ke,Je,Qe,l(n,{to:"/docs/configuration/data-model/#creating-a-field"},{default:t(()=>[Xe]),_:1}),Ze,$e,es]),ss,ts])])]),_:1})}}};export{as as default};
1
+ import{r as o,p as c,q as u,w as t,z as e,t as l,S as s}from"./vendor.f59145b7.js";const d={class:"markdown-body"},h=s("Users"),g=s(" are the individual accounts for authenticating into the API and App. Each user belongs to a "),_=s("Role"),p=s(" which defines its access "),f=s("Permissions"),m=s("."),v=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#creating-a-user"},"Creating a User")]),e("li",null,[e("a",{href:"#inviting-a-user"},"Inviting a User")]),e("li",null,[e("a",{href:"#configuring-a-user"},"Configuring a User")]),e("li",null,[e("a",{href:"#archiving-a-user"},"Archiving a User")]),e("li",null,[e("a",{href:"#deleting-a-user"},"Deleting a User")]),e("li",null,[e("a",{href:"#creating-a-role"},"Creating a Role")]),e("li",null,[e("a",{href:"#configuring-a-role"},"Configuring a Role")]),e("li",null,[e("a",{href:"#deleting-a-role"},"Deleting a Role")]),e("li",null,[e("a",{href:"#configuring-permissions"},"Configuring Permissions")]),e("li",null,[e("a",{href:"#configuring-workflows"},"Configuring Workflows")])])])],-1),b=e("h2",{id:"creating-a-user"},[s("Creating a User "),e("a",{class:"header-anchor",href:"#creating-a-user"},"#")],-1),y=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter an "),e("strong",null,"Email Address")]),e("li",null,[s("Optional: Complete the "),e("strong",null,"other user form fields")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"check"),s(" to save the user.")])],-1),w=e("h2",{id:"inviting-a-user"},[s("Inviting a User "),e("a",{class:"header-anchor",href:"#inviting-a-user"},"#")],-1),A=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",sec:""},"person_add"),s(" in the header")]),e("li",null,[s("Enter "),e("strong",null,"one or more email addresses"),s(", separated by new lines, in the modal")]),e("li",null,[s("Select the "),e("strong",null,"Role"),s(" you want to assign to the user(s)")]),e("li",null,[s("Click "),e("strong",null,"Invite")])],-1),k=e("p",null,"At this point the invited user(s) will receive an email with a link to the App where they set a password and enable their account.",-1),C=e("h2",{id:"configuring-a-user"},[s("Configuring a User "),e("a",{class:"header-anchor",href:"#configuring-a-user"},"#")],-1),P=e("li",null,[s("Navigate to the "),e("strong",null,"User Library")],-1),R=e("li",null,[e("strong",null,"Click on the user"),s(" you wish to manage")],-1),U=e("strong",null,"Complete the form",-1),I=s(" of "),D=s("User Fields"),T=e("p",null,"The User Detail is only editable by the current user and admins, and the following fields are only available to admins:",-1),F=e("li",null,[e("strong",null,"Status"),s(" \u2014 Determines if an account is able to access the platform or not. Only the "),e("code",null,"active"),s(" state is able to authenticate, all others are simply descriptive inactive states. "),e("ul",null,[e("li",null,[e("strong",null,"Draft"),s(" \u2014 An incomplete user; no App/API access")]),e("li",null,[e("strong",null,"Invited"),s(" \u2014 Has a pending invite to the project; no App/API access until accepted")]),e("li",null,[e("strong",null,"Active"),s(" \u2014 The only status that has proper access to the App and API")]),e("li",null,[e("strong",null,"Suspended"),s(" \u2014 A user that has been temporarily disabled; no App/API access")]),e("li",null,[e("strong",null,"Archived"),s(" \u2014 A soft-deleted user; no App/API access")])])],-1),N=e("li",null,[e("strong",null,"Role"),s(" \u2014 The user\u2019s role determines their permissions and access")],-1),S=e("strong",null,"Token",-1),x=s(" \u2014 A user\u2019s token is an alternate way to "),L=s("authenticate into the API"),E=s(" using a static string. When NULL, the token is disabled. When enabled, ensure that a secure string is used."),q=e("h2",{id:"archiving-a-user"},[s("Archiving a User "),e("a",{class:"header-anchor",href:"#archiving-a-user"},"#")],-1),W=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,"Click the user you with to archive to go to their User Detail page"),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",warn:""},"archive"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Archive"),s(" in the dialog")])],-1),j=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Disables Access"),e("p",null,[s("Archiving uses "),e("em",null,"soft-delete"),s(", therefore archived users are unable to access the App or API.")])],-1),V=e("h2",{id:"deleting-a-user"},[s("Deleting a User "),e("a",{class:"header-anchor",href:"#deleting-a-user"},"#")],-1),z=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,"Select one or more users you wish to delete"),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),B=e("div",{class:"danger hint"},[e("div",{class:"hint-title"},"Irreversible Change"),e("p",null,"Unlike the soft-delete of archiving, this process is a hard-delete. Therefore, this action is permanent and can not be undone. Please proceed with caution.")],-1),M=e("h2",{id:"creating-a-role"},[s("Creating a Role "),e("a",{class:"header-anchor",href:"#creating-a-role"},"#")],-1),O=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter a unique "),e("strong",null,"Role Name")]),e("li",null,[s("Enabling "),e("strong",null,"App Access"),s(" allows logging in to the App")]),e("li",null,[s("Enabling "),e("strong",null,"Admin Access"),s(" gives full permission to project data and Settings")]),e("li",null,[s("Click on "),e("strong",null,"Save"),s(" to save the role")])],-1),Y=e("h2",{id:"configuring-a-role"},[s("Configuring a Role "),e("a",{class:"header-anchor",href:"#configuring-a-role"},"#")],-1),G=e("ul",null,[e("li",null,[e("strong",null,"Permissions"),s(" \u2014 Defines the role\u2019s access permissions")]),e("li",null,[e("strong",null,"Role Name"),s(" \u2014 This is the name of the role")]),e("li",null,[e("strong",null,"Role Icon"),s(" \u2014 The icon used throughout the App when referencing this role")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A helpful note that explains the role\u2019s purpose")]),e("li",null,[e("strong",null,"App Access"),s(" \u2014 Allows logging in to the App")]),e("li",null,[e("strong",null,"Admin Access"),s(" \u2014 Gives full permission to project data and Settings")]),e("li",null,[e("strong",null,"IP Access"),s(" \u2014 An allow-list of IP addresses from which the platform can be accessed, empty allows all")]),e("li",null,[e("strong",null,"Require 2FA"),s(" \u2014 Forces all users within this role to use two-factor authentication")]),e("li",null,[e("strong",null,"Users in Role"),s(" \u2014 A list of all users within this role")])],-1),H=e("h2",{id:"deleting-a-role"},[s("Deleting a Role "),e("a",{class:"header-anchor",href:"#deleting-a-role"},"#")],-1),K=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),J={class:"warning hint"},Q=e("div",{class:"hint-title"},"Users in a Deleted Role",-1),X=s("If you delete a role that still has users in it, those users will be given a "),Z=e("code",null,"NULL",-1),$=s(" role, which denies their App access and limits them to the "),ee=s("Public Role"),se=s(" permissions. They can then be reassigned to a new role by an admin."),te=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Last Admin"),e("p",null,"You must maintain at least one role/user with Admin Access so that you can still properly manage the project.")],-1),ne=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Public Role"),e("p",null,"You can not delete the Public role, as it is part of the core platform. To disable it completely, simply turn off all Public access permissions.")],-1),le=e("h2",{id:"configuring-permissions"},[s("Configuring Permissions "),e("a",{class:"header-anchor",href:"#configuring-permissions"},"#")],-1),ie=e("p",null,"Directus possesses an extremely granular, yet easy to configure, permissions system. When creating a new role, permissions are disabled for all project collections by default \u2014 allowing you to give explicit access to only what is required. Individual permissions are applied to the role, and each is scoped to a specific collection and CRUD action (create, read, update, delete).",-1),oe=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Saves Automatically"),e("p",null,"Every change made to the permissions of a role is saved automatically and instantly.")],-1),ae=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Admin Roles"),e("p",null,[s("If a role is set to "),e("strong",null,"Admin Access"),s(" then it is granted complete access to the platform, and therefore the permission configuration field is disabled.")])],-1),re=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Scroll to the "),e("strong",null,"Permissions"),s(" section")]),e("li",null,[e("strong",null,"Click the icon"),s(" for the collection (row) and action (column) you want to set")]),e("li",null,[s("Choose the desired permission level: "),e("span",{mi:"",icon:""},"check"),s(),e("strong",null,"All Access"),s(", "),e("span",{mi:"",icon:""},"block"),s(),e("strong",null,"No Access"),s(", or "),e("span",{mi:"",icon:""},"rule"),s(),e("strong",null,"Use Custom")])],-1),ce=e("p",null,[e("strong",null,[s("If you selected \u201C"),e("span",{mi:"",icon:""},"check"),s(" All Access\u201D or \u201C"),e("span",{mi:"",icon:""},"block"),s(" No Access\u201D then setup is complete.")]),s(" If you chose to customize permissions then continue with the appropriate guide below based on the relevant "),e("em",null,"action"),s(".")],-1),ue=e("h3",{id:"create-(custom-access)"},[s("Create (Custom Access) "),e("a",{class:"header-anchor",href:"#create-(custom-access)"},"#")],-1),de=e("ol",{start:"5"},[e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields accept a value on create. Fields are individually toggled.")]),e("li",null,[e("strong",null,"Field Validation"),s(" define the rules for field values on create")]),e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when creating an item")])],-1),he=e("h3",{id:"read-(custom-access)"},[s("Read (Custom Access) "),e("a",{class:"header-anchor",href:"#read-(custom-access)"},"#")],-1),ge={start:"5"},_e=e("strong",null,"Item Permissions",-1),pe=s(" control which items can be read, as defined by the "),fe=s("Filter Rules"),me=s(" entered."),ve=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be read. Fields are individually toggled.")],-1),be=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Read Field Permissions"),e("p",null,[s("The Directus App always requires read access to the Primary Key field (eg: "),e("code",null,"id"),s(") so it can uniquely identify items. Also, if a Collection has \u201CArchive\u201D or \u201CSort\u201D fields configured, those fields will also need read access to use the App\u2019s soft-delete and manual sorting features.")])],-1),ye=e("h3",{id:"update-(custom-access)"},[s("Update (Custom Access) "),e("a",{class:"header-anchor",href:"#update-(custom-access)"},"#")],-1),we={start:"5"},Ae=e("strong",null,"Item Permissions",-1),ke=s(" control which items can be updated, as defined by "),Ce=s("Filter Rules"),Pe=s("."),Re=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be updated. Fields are individually toggled.")],-1),Ue=e("strong",null,"Field Validation",-1),Ie=s(" define the rules for field values on update, as defined by "),De=s("Filter Rules"),Te=s("."),Fe=e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when updating an item")],-1),Ne=e("h3",{id:"delete-(custom-access)"},[s("Delete (Custom Access) "),e("a",{class:"header-anchor",href:"#delete-(custom-access)"},"#")],-1),Se={start:"5"},xe=e("strong",null,"Item Permissions",-1),Le=s(" control which items can be deleted, as defined by the "),Ee=s("Filter Rules"),qe=s(" entered."),We=e("hr",null,null,-1),je=e("h3",{id:"configuring-public-permissions"},[s("Configuring Public Permissions "),e("a",{class:"header-anchor",href:"#configuring-public-permissions"},"#")],-1),Ve=e("p",null,"The Public permissions control what project data is accessible without authentication. This is managed via the Public \u201Crole\u201D, which is included in the system by default and can not be deleted.",-1),ze=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Private by Default"),e("p",null,"All of the data within the platform is private by default. Permissions for the public role can be granted on a case-by-case basis by administrators.")],-1),Be=e("h3",{id:"configuring-system-permissions"},[s("Configuring System Permissions "),e("a",{class:"header-anchor",href:"#configuring-system-permissions"},"#")],-1),Me=e("p",null,[s("In addition to permissions for "),e("em",null,"your"),s(" custom collections, you can also customize the permissions for "),e("em",null,"system"),s(" collections. It is important to note that when App Access is enabled for a role, Directus will automatically add permission for the necessary system collections. To edit system permissions, simply click \u201CSystem Collections\u201D at the bottom of the permissions configuration.")],-1),Oe=e("p",null,"There are two pre-configured options you can use for resetting the role\u2019s system permissions and ensure proper App access. To access these, click \u201CSystem Collections\u201D to expand, and then click one of the buttons at the bottom of the listing.",-1),Ye=e("ul",null,[e("li",null,[e("strong",null,"App Access Minimum"),s(" \u2014 The minimum permissions required to properly access the App")]),e("li",null,[e("strong",null,"Recommended Defaults"),s(" \u2014 More permissive but balanced for a better App user experience")])],-1),Ge=e("h2",{id:"configuring-workflows"},[s("Configuring Workflows "),e("a",{class:"header-anchor",href:"#configuring-workflows"},"#")],-1),He=e("p",null,"Workflows are a way to add structured stages to the flow of content authoring. They are primarily defined through the permissions for a Collection, but can be further enhanced via email notifications, custom interfaces, and automation. Directus supports endlessly configurable workflows, so we will only cover one simple example below.",-1),Ke=s("To create a structured workflow for "),Je=e("strong",null,"Articles",-1),Qe=s(", the first step is "),Xe=s("Creating a Field"),Ze=s(" to track the article \u201Cstatus\u201D \u2014 we\u2019ll call it "),$e=e("strong",null,"Status",-1),es=s(", but it can be named anything."),ss=e("li",null,[s("Next, create different Roles for each stage of the workflow, such as "),e("code",null,"author"),s(" and "),e("code",null,"manager"),s(".")],-1),ts=e("li",null,[s("Finally, configure the Role permissions based on the possible values of that Status field, such as "),e("code",null,"draft"),s(", "),e("code",null,"review"),s(", "),e("code",null,"approved"),s(", and "),e("code",null,"published"),s(", so that they are properly restricted to create content and update the status. "),e("ul",null,[e("li",null,[s("The Author can create content, but only save a status of "),e("code",null,"draft"),s(" or "),e("code",null,"review"),s(".")]),e("li",null,[s("The Manager has additional permissions that allow them to save statuses of "),e("code",null,"approved"),s(" or "),e("code",null,"published"),s(".")])])],-1),as={setup(ns,{expose:a}){const i={title:"Users, Roles & Permissions",modularExtension:!1};return a({frontmatter:i}),(ls,is)=>{const n=o("router-link"),r=o("DocsWrapper");return c(),u(r,{frontmatter:i},{default:t(()=>[e("div",d,[e("blockquote",null,[e("p",null,[l(n,{to:"/docs/getting-started/glossary/#users"},{default:t(()=>[h]),_:1}),g,l(n,{to:"/docs/getting-started/glossary/#roles"},{default:t(()=>[_]),_:1}),p,l(n,{to:"/docs/getting-started/glossary/#permissions"},{default:t(()=>[f]),_:1}),m])]),v,b,y,w,A,k,C,e("ol",null,[P,R,e("li",null,[U,I,l(n,{to:"/docs/app/user-directory/#editing-a-user"},{default:t(()=>[D]),_:1})])]),T,e("ul",null,[F,N,e("li",null,[S,x,l(n,{to:"/docs/reference/authentication/"},{default:t(()=>[L]),_:1}),E])]),q,W,j,V,z,B,M,O,Y,G,H,K,e("div",J,[Q,e("p",null,[X,Z,$,l(n,{to:"/docs/configuration/users-roles-permissions/#configuring-public-permissions"},{default:t(()=>[ee]),_:1}),se])]),te,ne,le,ie,oe,ae,re,ce,ue,de,he,e("ol",ge,[e("li",null,[_e,pe,l(n,{to:"/docs/configuration/filter-rules"},{default:t(()=>[fe]),_:1}),me]),ve]),be,ye,e("ol",we,[e("li",null,[Ae,ke,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Ce]),_:1}),Pe]),Re,e("li",null,[Ue,Ie,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[De]),_:1}),Te]),Fe]),Ne,e("ol",Se,[e("li",null,[xe,Le,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Ee]),_:1}),qe])]),We,je,Ve,ze,Be,Me,Oe,Ye,Ge,He,e("ol",null,[e("li",null,[Ke,Je,Qe,l(n,{to:"/docs/configuration/data-model/#creating-a-field"},{default:t(()=>[Xe]),_:1}),Ze,$e,es]),ss,ts])])]),_:1})}}};export{as as default};
@@ -1,4 +1,4 @@
1
- import{r,p as h,q as i,w as a,z as e,t as l,S as s}from"./vendor.62e5a05d.js";const d={class:"markdown-body"},u={class:"two-up"},p={class:"left"},_=s("Directus Users are the individual accounts that let you authenticate into the API and App. Each user belongs to a Role which defines its granular Permissions. "),g=s("Learn more about Users"),m=s("."),f=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-user-object"},"The User Object")]),e("li",null,[e("a",{href:"#list-users"},"List Users")]),e("li",null,[e("a",{href:"#retrieve-a-user"},"Retrieve a User")]),e("li",null,[e("a",{href:"#retrieve-the-current-user"},"Retrieve the Current User")]),e("li",null,[e("a",{href:"#update-the-current-user"},"Update the Current User")]),e("li",null,[e("a",{href:"#create-a-user"},"Create a User")]),e("li",null,[e("a",{href:"#create-multiple-users"},"Create Multiple Users")]),e("li",null,[e("a",{href:"#update-a-user"},"Update a User")]),e("li",null,[e("a",{href:"#update-multiple-users"},"Update Multiple Users")]),e("li",null,[e("a",{href:"#delete-a-user"},"Delete a User")]),e("li",null,[e("a",{href:"#delete-multiple-users"},"Delete Multiple Users")]),e("li",null,[e("a",{href:"#invite-a-new-user"},"Invite a new User")]),e("li",null,[e("a",{href:"#accept-user-invite"},"Accept User Invite")]),e("li",null,[e("a",{href:"#generate-two-factor-authentication-secret"},"Generate Two-Factor Authentication Secret")]),e("li",null,[e("a",{href:"#enable-two-factor-authentication"},"Enable Two-Factor Authentication")]),e("li",null,[e("a",{href:"#disable-two-factor-authentication"},"Disable Two-Factor Authentication")])])])])],-1),j=e("hr",null,null,-1),y=e("h2",{id:"the-user-object"},[s("The User Object "),e("a",{class:"header-anchor",href:"#the-user-object"},"#")],-1),q={class:"two-up"},b={class:"left"},v={class:"definitions"},w=e("p",null,[e("code",null,"id"),s(),e("strong",null,"uuid"),e("br"),s(" Primary key of the user.")],-1),x=e("p",null,[e("code",null,"first_name"),s(),e("strong",null,"string"),e("br"),s(" First name of the user.")],-1),T=e("p",null,[e("code",null,"last_name"),s(),e("strong",null,"string"),e("br"),s(" Last name of the user.")],-1),E=e("p",null,[e("code",null,"email"),s(),e("strong",null,"string"),e("br"),s(" Email address of the user.")],-1),R=e("p",null,[e("code",null,"password"),s(),e("strong",null,"hash"),e("br"),s(" Password of the user.")],-1),S=e("p",null,[e("code",null,"location"),s(),e("strong",null,"string"),e("br"),s(" Location of the user.")],-1),P=e("p",null,[e("code",null,"title"),s(),e("strong",null,"string"),e("br"),s(" Title of the user.")],-1),k=e("p",null,[e("code",null,"description"),s(),e("strong",null,"string"),e("br"),s(" Description of the user.")],-1),A=e("p",null,[e("code",null,"tags"),s(),e("strong",null,"csv"),e("br"),s(" Tags for the user.")],-1),U=e("code",null,"avatar",-1),O=s(),L=e("strong",null,"many-to-one",-1),C=e("br",null,null,-1),I=s(" Avatar file. Many-to-one to "),Q=s("files"),D=s("."),G=e("p",null,[e("code",null,"language"),s(),e("strong",null,"string"),e("br"),s(" Language the Admin App is rendered in. See "),e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"our Crowdin page"),s(" for all available languages and translations.")],-1),B=e("p",null,[e("code",null,"theme"),s(),e("strong",null,"string"),e("br"),s(" One of "),e("code",null,"auto"),s(", "),e("code",null,"light"),s(", "),e("code",null,"dark"),s(".")],-1),M=e("p",null,[e("code",null,"tfa_secret"),s(),e("strong",null,"string"),e("br"),s(" When TFA is enabled, this holds the secret key for it.")],-1),F=e("p",null,[e("code",null,"email_notifications"),s(),e("strong",null,"boolean"),e("br"),s(" When this is enabled, the user will receive emails for notifications.")],-1),H=e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[s(`{
1
+ import{r,p as h,q as i,w as a,z as e,t as l,S as s}from"./vendor.f59145b7.js";const d={class:"markdown-body"},u={class:"two-up"},p={class:"left"},_=s("Directus Users are the individual accounts that let you authenticate into the API and App. Each user belongs to a Role which defines its granular Permissions. "),g=s("Learn more about Users"),f=s("."),m=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-user-object"},"The User Object")]),e("li",null,[e("a",{href:"#list-users"},"List Users")]),e("li",null,[e("a",{href:"#retrieve-a-user"},"Retrieve a User")]),e("li",null,[e("a",{href:"#retrieve-the-current-user"},"Retrieve the Current User")]),e("li",null,[e("a",{href:"#update-the-current-user"},"Update the Current User")]),e("li",null,[e("a",{href:"#create-a-user"},"Create a User")]),e("li",null,[e("a",{href:"#create-multiple-users"},"Create Multiple Users")]),e("li",null,[e("a",{href:"#update-a-user"},"Update a User")]),e("li",null,[e("a",{href:"#update-multiple-users"},"Update Multiple Users")]),e("li",null,[e("a",{href:"#delete-a-user"},"Delete a User")]),e("li",null,[e("a",{href:"#delete-multiple-users"},"Delete Multiple Users")]),e("li",null,[e("a",{href:"#invite-a-new-user"},"Invite a new User")]),e("li",null,[e("a",{href:"#accept-user-invite"},"Accept User Invite")]),e("li",null,[e("a",{href:"#generate-two-factor-authentication-secret"},"Generate Two-Factor Authentication Secret")]),e("li",null,[e("a",{href:"#enable-two-factor-authentication"},"Enable Two-Factor Authentication")]),e("li",null,[e("a",{href:"#disable-two-factor-authentication"},"Disable Two-Factor Authentication")])])])])],-1),j=e("hr",null,null,-1),y=e("h2",{id:"the-user-object"},[s("The User Object "),e("a",{class:"header-anchor",href:"#the-user-object"},"#")],-1),q={class:"two-up"},b={class:"left"},v={class:"definitions"},w=e("p",null,[e("code",null,"id"),s(),e("strong",null,"uuid"),e("br"),s(" Primary key of the user.")],-1),x=e("p",null,[e("code",null,"first_name"),s(),e("strong",null,"string"),e("br"),s(" First name of the user.")],-1),T=e("p",null,[e("code",null,"last_name"),s(),e("strong",null,"string"),e("br"),s(" Last name of the user.")],-1),E=e("p",null,[e("code",null,"email"),s(),e("strong",null,"string"),e("br"),s(" Email address of the user.")],-1),R=e("p",null,[e("code",null,"password"),s(),e("strong",null,"hash"),e("br"),s(" Password of the user.")],-1),S=e("p",null,[e("code",null,"location"),s(),e("strong",null,"string"),e("br"),s(" Location of the user.")],-1),P=e("p",null,[e("code",null,"title"),s(),e("strong",null,"string"),e("br"),s(" Title of the user.")],-1),k=e("p",null,[e("code",null,"description"),s(),e("strong",null,"string"),e("br"),s(" Description of the user.")],-1),A=e("p",null,[e("code",null,"tags"),s(),e("strong",null,"csv"),e("br"),s(" Tags for the user.")],-1),U=e("code",null,"avatar",-1),O=s(),L=e("strong",null,"many-to-one",-1),C=e("br",null,null,-1),I=s(" Avatar file. Many-to-one to "),Q=s("files"),D=s("."),G=e("p",null,[e("code",null,"language"),s(),e("strong",null,"string"),e("br"),s(" Language the Admin App is rendered in. See "),e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"our Crowdin page"),s(" for all available languages and translations.")],-1),B=e("p",null,[e("code",null,"theme"),s(),e("strong",null,"string"),e("br"),s(" One of "),e("code",null,"auto"),s(", "),e("code",null,"light"),s(", "),e("code",null,"dark"),s(".")],-1),M=e("p",null,[e("code",null,"tfa_secret"),s(),e("strong",null,"string"),e("br"),s(" When TFA is enabled, this holds the secret key for it.")],-1),F=e("p",null,[e("code",null,"email_notifications"),s(),e("strong",null,"boolean"),e("br"),s(" When this is enabled, the user will receive emails for notifications.")],-1),H=e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[s(`{
2
2
  `),e("span",{class:"hljs-attr"},'"id"'),s(": "),e("span",{class:"hljs-string"},'"0bc7b36a-9ba9-4ce0-83f0-0a526f354e07"'),s(`,
3
3
  `),e("span",{class:"hljs-attr"},'"first_name"'),s(": "),e("span",{class:"hljs-string"},'"Admin"'),s(`,
4
4
  `),e("span",{class:"hljs-attr"},'"last_name"'),s(": "),e("span",{class:"hljs-string"},'"User"'),s(`,
@@ -31,7 +31,7 @@ SEARCH /users
31
31
  email
32
32
  }
33
33
  }
34
- `)])],-1),_e=e("hr",null,null,-1),ge=e("h2",{id:"retrieve-a-user"},[s("Retrieve a User "),e("a",{class:"header-anchor",href:"#retrieve-a-user"},"#")],-1),me=e("p",null,"List an existing user by primary key.",-1),fe={class:"two-up"},je={class:"left"},ye=e("h3",{id:"query-parameters-2"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-2"},"#")],-1),qe=s("Supports all "),be=s("global query parameters"),ve=s("."),we=e("h3",{id:"returns-2"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-2"},"#")],-1),xe=e("p",null,[s("Returns the requested "),e("a",{href:"#the-user-object"},"user object"),s(".")],-1),Te=e("div",{class:"right"},[e("h3",{id:"rest-api-2"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-2"},"#")]),e("pre",null,[e("code",null,`GET /users/:id
34
+ `)])],-1),_e=e("hr",null,null,-1),ge=e("h2",{id:"retrieve-a-user"},[s("Retrieve a User "),e("a",{class:"header-anchor",href:"#retrieve-a-user"},"#")],-1),fe=e("p",null,"List an existing user by primary key.",-1),me={class:"two-up"},je={class:"left"},ye=e("h3",{id:"query-parameters-2"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-2"},"#")],-1),qe=s("Supports all "),be=s("global query parameters"),ve=s("."),we=e("h3",{id:"returns-2"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-2"},"#")],-1),xe=e("p",null,[s("Returns the requested "),e("a",{href:"#the-user-object"},"user object"),s(".")],-1),Te=e("div",{class:"right"},[e("h3",{id:"rest-api-2"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-2"},"#")]),e("pre",null,[e("code",null,`GET /users/:id
35
35
  `)]),e("h5",{id:"example-2"},[s("Example "),e("a",{class:"header-anchor",href:"#example-2"},"#")]),e("pre",null,[e("code",null,`GET /users/72a1ce24-4748-47de-a05f-ce9af3033727
36
36
  `)]),e("h3",{id:"graphql-2"},[s("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-2"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
37
37
  `)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),s(` {
@@ -89,7 +89,7 @@ SEARCH /users
89
89
  role
90
90
  }
91
91
  }
92
- `)])])],-1),ds=e("hr",null,null,-1),us=e("h2",{id:"create-multiple-users"},[s("Create Multiple Users "),e("a",{class:"header-anchor",href:"#create-multiple-users"},"#")],-1),ps=e("p",null,"Create multiple new users",-1),_s={class:"two-up"},gs={class:"left"},ms=e("h3",{id:"query-parameters-6"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-6"},"#")],-1),fs=s("Supports all "),js=s("global query parameters"),ys=s("."),qs=e("h3",{id:"request-body-2"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body-2"},"#")],-1),bs=e("p",null,[s("An array of partial "),e("a",{href:"#the-user-object"},"user objects"),s(".")],-1),vs=e("p",null,[e("code",null,"email"),s(" and "),e("code",null,"password"),s(" are required.")],-1),ws=e("h3",{id:"returns-6"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-6"},"#")],-1),xs=e("p",null,[s("Returns the "),e("a",{href:"#the-user-object"},"user objects"),s(" for the created users.")],-1),Ts=e("div",{class:"right"},[e("h3",{id:"rest-api-6"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-6"},"#")]),e("pre",null,[e("code",null,`POST /users
92
+ `)])])],-1),ds=e("hr",null,null,-1),us=e("h2",{id:"create-multiple-users"},[s("Create Multiple Users "),e("a",{class:"header-anchor",href:"#create-multiple-users"},"#")],-1),ps=e("p",null,"Create multiple new users",-1),_s={class:"two-up"},gs={class:"left"},fs=e("h3",{id:"query-parameters-6"},[s("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-6"},"#")],-1),ms=s("Supports all "),js=s("global query parameters"),ys=s("."),qs=e("h3",{id:"request-body-2"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body-2"},"#")],-1),bs=e("p",null,[s("An array of partial "),e("a",{href:"#the-user-object"},"user objects"),s(".")],-1),vs=e("p",null,[e("code",null,"email"),s(" and "),e("code",null,"password"),s(" are required.")],-1),ws=e("h3",{id:"returns-6"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-6"},"#")],-1),xs=e("p",null,[s("Returns the "),e("a",{href:"#the-user-object"},"user objects"),s(" for the created users.")],-1),Ts=e("div",{class:"right"},[e("h3",{id:"rest-api-6"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-6"},"#")]),e("pre",null,[e("code",null,`POST /users
93
93
  `)]),e("h5",{id:"example-8"},[s("Example "),e("a",{class:"header-anchor",href:"#example-8"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// POST /users"),s(`
94
94
 
95
95
  [
@@ -180,7 +180,7 @@ SEARCH /users
180
180
  ids
181
181
  }
182
182
  }
183
- `)])])])],-1),oa=e("hr",null,null,-1),ha=e("h2",{id:"invite-a-new-user"},[s("Invite a new User "),e("a",{class:"header-anchor",href:"#invite-a-new-user"},"#")],-1),ia=e("p",null,"Invite a new user by email.",-1),da={class:"two-up"},ua={class:"left"},pa=e("h3",{id:"request-body-6"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body-6"},"#")],-1),_a={class:"definitions"},ga=e("p",null,[e("code",null,"email"),s(),e("strong",null,"Required"),e("br"),s(" User email to invite.")],-1),ma=e("p",null,[e("code",null,"role"),s(),e("strong",null,"Required"),e("br"),s(" Role of the new user.")],-1),fa=e("code",null,"invite_url",-1),ja=e("br",null,null,-1),ya=s(" Provide a custom invite url which the link in the email will lead to. The invite token will be passed as a parameter."),qa=e("br",null,null,-1),ba=e("strong",null,"Note",-1),va=s(": You need to configure the "),wa=e("code",null,"USER_INVITE_URL_ALLOW_LIST",-1),xa=s(" environment variable"),Ta=s(" to enable this feature."),Ea=e("h3",{id:"returns-11"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-11"},"#")],-1),Ra=e("p",null,"Empty body.",-1),Sa=e("div",{class:"right"},[e("h3",{id:"rest-api-11"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-11"},"#")]),e("pre",null,[e("code",null,`POST /users/invite
183
+ `)])])])],-1),oa=e("hr",null,null,-1),ha=e("h2",{id:"invite-a-new-user"},[s("Invite a new User "),e("a",{class:"header-anchor",href:"#invite-a-new-user"},"#")],-1),ia=e("p",null,"Invite a new user by email.",-1),da={class:"two-up"},ua={class:"left"},pa=e("h3",{id:"request-body-6"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body-6"},"#")],-1),_a={class:"definitions"},ga=e("p",null,[e("code",null,"email"),s(),e("strong",null,"Required"),e("br"),s(" User email to invite.")],-1),fa=e("p",null,[e("code",null,"role"),s(),e("strong",null,"Required"),e("br"),s(" Role of the new user.")],-1),ma=e("code",null,"invite_url",-1),ja=e("br",null,null,-1),ya=s(" Provide a custom invite url which the link in the email will lead to. The invite token will be passed as a parameter."),qa=e("br",null,null,-1),ba=e("strong",null,"Note",-1),va=s(": You need to configure the "),wa=e("code",null,"USER_INVITE_URL_ALLOW_LIST",-1),xa=s(" environment variable"),Ta=s(" to enable this feature."),Ea=e("h3",{id:"returns-11"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns-11"},"#")],-1),Ra=e("p",null,"Empty body.",-1),Sa=e("div",{class:"right"},[e("h3",{id:"rest-api-11"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api-11"},"#")]),e("pre",null,[e("code",null,`POST /users/invite
184
184
  `)]),e("h5",{id:"example-18"},[s("Example "),e("a",{class:"header-anchor",href:"#example-18"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// POST /users/invite"),s(`
185
185
 
186
186
  {
@@ -249,4 +249,4 @@ SEARCH /users
249
249
  `)])]),e("h5",{id:"example-27"},[s("Example "),e("a",{class:"header-anchor",href:"#example-27"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),s(` {
250
250
  users_me_tfa_disable(otp: `),e("span",{class:"hljs-string"},'"591763"'),s(`)
251
251
  }
252
- `)])])])],-1),Ka={setup(Va,{expose:c}){const n={title:"Users",modularExtension:!1,pageClass:"page-reference"};return c({frontmatter:n}),(Ya,za)=>{const t=r("router-link"),o=r("DocsWrapper");return h(),i(o,{frontmatter:n},{default:a(()=>[e("div",d,[e("div",u,[e("div",p,[e("blockquote",null,[e("p",null,[_,l(t,{to:"/docs/getting-started/glossary/#users/"},{default:a(()=>[g]),_:1}),m])])]),f]),j,y,e("div",q,[e("div",b,[e("div",v,[w,x,T,E,R,S,P,k,A,e("p",null,[U,O,L,C,I,l(t,{to:"/docs/reference/files/"},{default:a(()=>[Q]),_:1}),D]),G,B,M,F])]),H]),N,W,V,e("div",Y,[e("div",z,[J,e("p",null,[K,l(t,{to:"/docs/reference/query"},{default:a(()=>[X]),_:1}),Z]),$,e("p",null,[ee,l(t,{to:"/docs/reference/query/#limit"},{default:a(()=>[se]),_:1}),ae,te,le])]),e("div",ne,[re,ce,e("p",null,[l(t,{to:"/docs/reference/introduction/#search-http-method"},{default:a(()=>[oe]),_:1})]),he,ie,de,ue,pe])]),_e,ge,me,e("div",fe,[e("div",je,[ye,e("p",null,[qe,l(t,{to:"/docs/reference/query"},{default:a(()=>[be]),_:1}),ve]),we,xe]),Te]),Ee,Re,Se,e("div",Pe,[e("div",ke,[Ae,e("p",null,[Ue,l(t,{to:"/docs/reference/query"},{default:a(()=>[Oe]),_:1}),Le]),Ce,Ie]),Qe]),De,Ge,Be,e("div",Me,[e("div",Fe,[He,e("p",null,[Ne,l(t,{to:"/docs/reference/query"},{default:a(()=>[We]),_:1}),Ve]),Ye,ze]),Je]),Ke,Xe,Ze,e("div",$e,[e("div",es,[ss,e("p",null,[as,l(t,{to:"/docs/reference/query"},{default:a(()=>[ts]),_:1}),ls]),ns,rs,cs,os,hs]),is]),ds,us,ps,e("div",_s,[e("div",gs,[ms,e("p",null,[fs,l(t,{to:"/docs/reference/query"},{default:a(()=>[js]),_:1}),ys]),qs,bs,vs,ws,xs]),Ts]),Es,Rs,Ss,e("div",Ps,[e("div",ks,[As,e("p",null,[Us,l(t,{to:"/docs/reference/query"},{default:a(()=>[Os]),_:1}),Ls]),Cs,Is,Qs,Ds]),Gs]),Bs,Ms,Fs,e("div",Hs,[e("div",Ns,[Ws,e("p",null,[Vs,l(t,{to:"/docs/reference/query"},{default:a(()=>[Ys]),_:1}),zs]),Js,Ks,Xs,Zs]),$s]),ea,sa,aa,ta,la,na,ra,ca,oa,ha,ia,e("div",da,[e("div",ua,[pa,e("div",_a,[ga,ma,e("p",null,[fa,ja,ya,qa,ba,va,l(t,{to:"/docs/configuration/config-options/#security"},{default:a(()=>[wa,xa]),_:1}),Ta])]),Ea,Ra]),Sa]),Pa,ka,Aa,Ua,Oa,La,Ca,Ia,Qa,Da,Ga,Ba,Ma,Fa,Ha,Na,Wa])]),_:1})}}};export{Ka as default};
252
+ `)])])])],-1),Ka={setup(Va,{expose:c}){const n={title:"Users",modularExtension:!1,pageClass:"page-reference"};return c({frontmatter:n}),(Ya,za)=>{const t=r("router-link"),o=r("DocsWrapper");return h(),i(o,{frontmatter:n},{default:a(()=>[e("div",d,[e("div",u,[e("div",p,[e("blockquote",null,[e("p",null,[_,l(t,{to:"/docs/getting-started/glossary/#users/"},{default:a(()=>[g]),_:1}),f])])]),m]),j,y,e("div",q,[e("div",b,[e("div",v,[w,x,T,E,R,S,P,k,A,e("p",null,[U,O,L,C,I,l(t,{to:"/docs/reference/files/"},{default:a(()=>[Q]),_:1}),D]),G,B,M,F])]),H]),N,W,V,e("div",Y,[e("div",z,[J,e("p",null,[K,l(t,{to:"/docs/reference/query"},{default:a(()=>[X]),_:1}),Z]),$,e("p",null,[ee,l(t,{to:"/docs/reference/query/#limit"},{default:a(()=>[se]),_:1}),ae,te,le])]),e("div",ne,[re,ce,e("p",null,[l(t,{to:"/docs/reference/introduction/#search-http-method"},{default:a(()=>[oe]),_:1})]),he,ie,de,ue,pe])]),_e,ge,fe,e("div",me,[e("div",je,[ye,e("p",null,[qe,l(t,{to:"/docs/reference/query"},{default:a(()=>[be]),_:1}),ve]),we,xe]),Te]),Ee,Re,Se,e("div",Pe,[e("div",ke,[Ae,e("p",null,[Ue,l(t,{to:"/docs/reference/query"},{default:a(()=>[Oe]),_:1}),Le]),Ce,Ie]),Qe]),De,Ge,Be,e("div",Me,[e("div",Fe,[He,e("p",null,[Ne,l(t,{to:"/docs/reference/query"},{default:a(()=>[We]),_:1}),Ve]),Ye,ze]),Je]),Ke,Xe,Ze,e("div",$e,[e("div",es,[ss,e("p",null,[as,l(t,{to:"/docs/reference/query"},{default:a(()=>[ts]),_:1}),ls]),ns,rs,cs,os,hs]),is]),ds,us,ps,e("div",_s,[e("div",gs,[fs,e("p",null,[ms,l(t,{to:"/docs/reference/query"},{default:a(()=>[js]),_:1}),ys]),qs,bs,vs,ws,xs]),Ts]),Es,Rs,Ss,e("div",Ps,[e("div",ks,[As,e("p",null,[Us,l(t,{to:"/docs/reference/query"},{default:a(()=>[Os]),_:1}),Ls]),Cs,Is,Qs,Ds]),Gs]),Bs,Ms,Fs,e("div",Hs,[e("div",Ns,[Ws,e("p",null,[Vs,l(t,{to:"/docs/reference/query"},{default:a(()=>[Ys]),_:1}),zs]),Js,Ks,Xs,Zs]),$s]),ea,sa,aa,ta,la,na,ra,ca,oa,ha,ia,e("div",da,[e("div",ua,[pa,e("div",_a,[ga,fa,e("p",null,[ma,ja,ya,qa,ba,va,l(t,{to:"/docs/configuration/config-options/#security"},{default:a(()=>[wa,xa]),_:1}),Ta])]),Ea,Ra]),Sa]),Pa,ka,Aa,Ua,Oa,La,Ca,Ia,Qa,Da,Ga,Ba,Ma,Fa,Ha,Na,Wa])]),_:1})}}};export{Ka as default};
@@ -1,4 +1,4 @@
1
- import{r,p as i,q as c,w as a,z as e,t,S as s}from"./vendor.62e5a05d.js";const d={class:"markdown-body"},u=e("div",{class:"two-up"},[e("div",{class:"left"},[e("blockquote",null,[e("p",null,"Utilities are the various helper endpoints located within the API.")])]),e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#generate-a-hash"},"Generate a Hash")]),e("li",null,[e("a",{href:"#verify-a-hash"},"Verify a Hash")]),e("li",null,[e("a",{href:"#manually-sort-items-in-collection"},"Manually Sort Items in Collection")]),e("li",null,[e("a",{href:"#import-data-from-file"},"Import Data from File")]),e("li",null,[e("a",{href:"#clear-the-internal-cache"},"Clear the Internal Cache")])])])])])],-1),p=e("hr",null,null,-1),_=e("h2",{id:"generate-a-hash"},[s("Generate a Hash "),e("a",{class:"header-anchor",href:"#generate-a-hash"},"#")],-1),f=e("p",null,"Generate a hash for a given string.",-1),m=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"request-body"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body"},"#")]),e("div",{class:"definitions"},[e("p",null,[e("code",null,"string"),s(),e("strong",null,"Required"),e("br"),s(" String to hash.")])]),e("h3",{id:"returns"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns"},"#")]),e("p",null,"Hashed string.")]),e("div",{class:"right"},[e("h3",{id:"rest-api"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api"},"#")]),e("pre",null,[e("code",null,`POST /utils/hash/generate
1
+ import{r,p as i,q as c,w as a,z as e,t,S as s}from"./vendor.f59145b7.js";const d={class:"markdown-body"},u=e("div",{class:"two-up"},[e("div",{class:"left"},[e("blockquote",null,[e("p",null,"Utilities are the various helper endpoints located within the API.")])]),e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#generate-a-hash"},"Generate a Hash")]),e("li",null,[e("a",{href:"#verify-a-hash"},"Verify a Hash")]),e("li",null,[e("a",{href:"#manually-sort-items-in-collection"},"Manually Sort Items in Collection")]),e("li",null,[e("a",{href:"#import-data-from-file"},"Import Data from File")]),e("li",null,[e("a",{href:"#clear-the-internal-cache"},"Clear the Internal Cache")])])])])])],-1),p=e("hr",null,null,-1),_=e("h2",{id:"generate-a-hash"},[s("Generate a Hash "),e("a",{class:"header-anchor",href:"#generate-a-hash"},"#")],-1),f=e("p",null,"Generate a hash for a given string.",-1),m=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"request-body"},[s("Request Body "),e("a",{class:"header-anchor",href:"#request-body"},"#")]),e("div",{class:"definitions"},[e("p",null,[e("code",null,"string"),s(),e("strong",null,"Required"),e("br"),s(" String to hash.")])]),e("h3",{id:"returns"},[s("Returns "),e("a",{class:"header-anchor",href:"#returns"},"#")]),e("p",null,"Hashed string.")]),e("div",{class:"right"},[e("h3",{id:"rest-api"},[s("REST API "),e("a",{class:"header-anchor",href:"#rest-api"},"#")]),e("pre",null,[e("code",null,`POST /utils/hash/generate
2
2
  `)]),e("h5",{id:"example"},[s("Example "),e("a",{class:"header-anchor",href:"#example"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// POST /utils/hash/generate"),s(`
3
3
 
4
4
  {
@@ -1 +1 @@
1
- import{bK as U}from"./vendor.62e5a05d.js";function $(d,v){return v.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(c){if(c!=="default"&&!(c in d)){var l=Object.getOwnPropertyDescriptor(i,c);Object.defineProperty(d,c,l.get?l:{enumerable:!0,get:function(){return i[c]}})}})}),Object.freeze(d)}var O={exports:{}};(function(d,v){(function(i){i(U.exports)})(function(i){i.defineMode("vb",function(c,l){var a="error";function u(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var E=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),z=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),R=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),S=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),_=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),j=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),h=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],g=["else","elseif","case","catch","finally"],y=["next","loop"],b=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],C=u(b),w=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],x=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],T=u(w),A=u(x),F='"',K=u(h),m=u(g),k=u(y),I=u(["end"]),L=u(["do"]);i.registerHelper("hintWords","vb",h.concat(g).concat(y).concat(b).concat(w).concat(x));function s(e,n){n.currentIndent++}function f(e,n){n.currentIndent--}function p(e,n){if(e.eatSpace())return null;var r=e.peek();if(r==="'")return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var t=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(t=!0),t)return e.eat(/J/i),"number";var o=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?o=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),o=!0):e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}return e.match(F)?(n.tokenize=D(e.current()),n.tokenize(e,n)):e.match(_)||e.match(S)?null:e.match(R)||e.match(E)||e.match(C)?"operator":e.match(z)?null:e.match(L)?(s(e,n),n.doInCurrentLine=!0,"keyword"):e.match(K)?(n.doInCurrentLine?n.doInCurrentLine=!1:s(e,n),"keyword"):e.match(m)?"keyword":e.match(I)?(f(e,n),f(e,n),"keyword"):e.match(k)?(f(e,n),"keyword"):e.match(A)||e.match(T)?"keyword":e.match(j)?"variable":(e.next(),a)}function D(e){var n=e.length==1,r="string";return function(t,o){for(;!t.eol();){if(t.eatWhile(/[^'"]/),t.match(e))return o.tokenize=p,r;t.eat(/['"]/)}if(n){if(l.singleLineStringErrors)return a;o.tokenize=p}return r}}function P(e,n){var r=n.tokenize(e,n),t=e.current();if(t===".")return r=n.tokenize(e,n),r==="variable"?"variable":a;var o="[({".indexOf(t);return o!==-1&&s(e,n),o="])}".indexOf(t),o!==-1&&f(e,n)?a:r}var H={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:p,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var r=P(e,n);return n.lastToken={style:r,content:e.current()},r},indent:function(e,n){var r=n.replace(/^\s+|\s+$/g,"");return r.match(k)||r.match(I)||r.match(m)?c.indentUnit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*c.indentUnit},lineComment:"'"};return H}),i.defineMIME("text/x-vb","vb")})})();var J=O.exports,W=Object.freeze($({__proto__:null,[Symbol.toStringTag]:"Module",default:J},[O.exports]));export{W as v};
1
+ import{bJ as J}from"./vendor.f59145b7.js";function U(l,v){return v.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(c){if(c!=="default"&&!(c in l)){var d=Object.getOwnPropertyDescriptor(i,c);Object.defineProperty(l,c,d.get?d:{enumerable:!0,get:function(){return i[c]}})}})}),Object.freeze(l)}var O={exports:{}};(function(l,v){(function(i){i(J.exports)})(function(i){i.defineMode("vb",function(c,d){var a="error";function u(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var E=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),z=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),R=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),S=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),_=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),j=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),h=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],g=["else","elseif","case","catch","finally"],y=["next","loop"],b=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],C=u(b),w=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],x=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],T=u(w),A=u(x),F='"',L=u(h),m=u(g),k=u(y),I=u(["end"]),D=u(["do"]);i.registerHelper("hintWords","vb",h.concat(g).concat(y).concat(b).concat(w).concat(x));function s(e,n){n.currentIndent++}function f(e,n){n.currentIndent--}function p(e,n){if(e.eatSpace())return null;var r=e.peek();if(r==="'")return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var t=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(t=!0),t)return e.eat(/J/i),"number";var o=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?o=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),o=!0):e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}return e.match(F)?(n.tokenize=K(e.current()),n.tokenize(e,n)):e.match(_)||e.match(S)?null:e.match(R)||e.match(E)||e.match(C)?"operator":e.match(z)?null:e.match(D)?(s(e,n),n.doInCurrentLine=!0,"keyword"):e.match(L)?(n.doInCurrentLine?n.doInCurrentLine=!1:s(e,n),"keyword"):e.match(m)?"keyword":e.match(I)?(f(e,n),f(e,n),"keyword"):e.match(k)?(f(e,n),"keyword"):e.match(A)||e.match(T)?"keyword":e.match(j)?"variable":(e.next(),a)}function K(e){var n=e.length==1,r="string";return function(t,o){for(;!t.eol();){if(t.eatWhile(/[^'"]/),t.match(e))return o.tokenize=p,r;t.eat(/['"]/)}if(n){if(d.singleLineStringErrors)return a;o.tokenize=p}return r}}function P(e,n){var r=n.tokenize(e,n),t=e.current();if(t===".")return r=n.tokenize(e,n),r==="variable"?"variable":a;var o="[({".indexOf(t);return o!==-1&&s(e,n),o="])}".indexOf(t),o!==-1&&f(e,n)?a:r}var H={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:p,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var r=P(e,n);return n.lastToken={style:r,content:e.current()},r},indent:function(e,n){var r=n.replace(/^\s+|\s+$/g,"");return r.match(k)||r.match(I)||r.match(m)?c.indentUnit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*c.indentUnit},lineComment:"'"};return H}),i.defineMIME("text/x-vb","vb")})})();var $=O.exports,W=Object.freeze(U({__proto__:null,[Symbol.toStringTag]:"Module",default:$},[O.exports]));export{W as v};
@@ -1 +1 @@
1
- import{bK as Q}from"./vendor.62e5a05d.js";function X(l,p){return p.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(a){if(a!=="default"&&!(a in l)){var v=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(l,a,v.get?v:{enumerable:!0,get:function(){return o[a]}})}})}),Object.freeze(l)}var x={exports:{}};(function(l,p){(function(o){o(Q.exports)})(function(o){o.defineMode("vbscript",function(a,v){var d="error";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var w=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),k=new RegExp("^((<>)|(<=)|(>=))"),O=new RegExp("^[\\.,]"),C=new RegExp("^[\\(\\)]"),I=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),S=["class","sub","select","while","if","function","property","with","for"],j=["else","elseif","case"],E=["next","loop","wend"],D=t(["and","or","not","xor","is","mod","eqv","imp"]),T=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],L=["true","false","nothing","empty","null"],R=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],F=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],u=["WScript","err","debug","RegExp"],z=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],W=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],A=["server","response","request","session","application"],B=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],K=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],b=W.concat(z);u=u.concat(F),a.isASP&&(u=u.concat(A),b=b.concat(K,B));var M=t(T),_=t(L),N=t(R),P=t(u),q=t(b),U='"',Y=t(S),y=t(j),g=t(E),h=t(["end"]),H=t(["do"]),J=t(["on error resume next","exit"]),V=t(["rem"]);function m(e,r){r.currentIndent++}function s(e,r){r.currentIndent--}function f(e,r){if(e.eatSpace())return"space";var n=e.peek();if(n==="'"||e.match(V))return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var i=!1;if((e.match(/^\d*\.\d+/i)||e.match(/^\d+\.\d*/)||e.match(/^\.\d+/))&&(i=!0),i)return e.eat(/J/i),"number";var c=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?c=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),c=!0):e.match(/^0(?![\dx])/i)&&(c=!0),c)return e.eat(/L/i),"number"}return e.match(U)?(r.tokenize=$(e.current()),r.tokenize(e,r)):e.match(k)||e.match(w)||e.match(D)?"operator":e.match(O)?null:e.match(C)?"bracket":e.match(J)?(r.doInCurrentLine=!0,"keyword"):e.match(H)?(m(e,r),r.doInCurrentLine=!0,"keyword"):e.match(Y)?(r.doInCurrentLine?r.doInCurrentLine=!1:m(e,r),"keyword"):e.match(y)?"keyword":e.match(h)?(s(e,r),s(e,r),"keyword"):e.match(g)?(r.doInCurrentLine?r.doInCurrentLine=!1:s(e,r),"keyword"):e.match(M)?"keyword":e.match(_)?"atom":e.match(q)?"variable-2":e.match(N)?"builtin":e.match(P)?"variable-2":e.match(I)?"variable":(e.next(),d)}function $(e){var r=e.length==1,n="string";return function(i,c){for(;!i.eol();){if(i.eatWhile(/[^'"]/),i.match(e))return c.tokenize=f,n;i.eat(/['"]/)}if(r){if(v.singleLineStringErrors)return d;c.tokenize=f}return n}}function G(e,r){var n=r.tokenize(e,r),i=e.current();return i==="."?(n=r.tokenize(e,r),i=e.current(),n&&(n.substr(0,8)==="variable"||n==="builtin"||n==="keyword")?((n==="builtin"||n==="keyword")&&(n="variable"),b.indexOf(i.substr(1))>-1&&(n="variable-2"),n):d):n}var Z={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:f,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,r){e.sol()&&(r.currentIndent+=r.nextLineIndent,r.nextLineIndent=0,r.doInCurrentLine=0);var n=G(e,r);return r.lastToken={style:n,content:e.current()},n==="space"&&(n=null),n},indent:function(e,r){var n=r.replace(/^\s+|\s+$/g,"");return n.match(g)||n.match(h)||n.match(y)?a.indentUnit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*a.indentUnit}};return Z}),o.defineMIME("text/vbscript","vbscript")})})();var ee=x.exports,ne=Object.freeze(X({__proto__:null,[Symbol.toStringTag]:"Module",default:ee},[x.exports]));export{ne as v};
1
+ import{bJ as Q}from"./vendor.f59145b7.js";function X(l,p){return p.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(a){if(a!=="default"&&!(a in l)){var v=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(l,a,v.get?v:{enumerable:!0,get:function(){return o[a]}})}})}),Object.freeze(l)}var x={exports:{}};(function(l,p){(function(o){o(Q.exports)})(function(o){o.defineMode("vbscript",function(a,v){var d="error";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var w=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),k=new RegExp("^((<>)|(<=)|(>=))"),O=new RegExp("^[\\.,]"),C=new RegExp("^[\\(\\)]"),I=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),S=["class","sub","select","while","if","function","property","with","for"],j=["else","elseif","case"],E=["next","loop","wend"],D=t(["and","or","not","xor","is","mod","eqv","imp"]),T=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],L=["true","false","nothing","empty","null"],R=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],F=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],u=["WScript","err","debug","RegExp"],z=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],W=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],A=["server","response","request","session","application"],B=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],K=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],b=W.concat(z);u=u.concat(F),a.isASP&&(u=u.concat(A),b=b.concat(K,B));var M=t(T),_=t(L),N=t(R),P=t(u),q=t(b),U='"',J=t(S),y=t(j),g=t(E),h=t(["end"]),Y=t(["do"]),H=t(["on error resume next","exit"]),V=t(["rem"]);function m(e,r){r.currentIndent++}function s(e,r){r.currentIndent--}function f(e,r){if(e.eatSpace())return"space";var n=e.peek();if(n==="'"||e.match(V))return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var i=!1;if((e.match(/^\d*\.\d+/i)||e.match(/^\d+\.\d*/)||e.match(/^\.\d+/))&&(i=!0),i)return e.eat(/J/i),"number";var c=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?c=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),c=!0):e.match(/^0(?![\dx])/i)&&(c=!0),c)return e.eat(/L/i),"number"}return e.match(U)?(r.tokenize=$(e.current()),r.tokenize(e,r)):e.match(k)||e.match(w)||e.match(D)?"operator":e.match(O)?null:e.match(C)?"bracket":e.match(H)?(r.doInCurrentLine=!0,"keyword"):e.match(Y)?(m(e,r),r.doInCurrentLine=!0,"keyword"):e.match(J)?(r.doInCurrentLine?r.doInCurrentLine=!1:m(e,r),"keyword"):e.match(y)?"keyword":e.match(h)?(s(e,r),s(e,r),"keyword"):e.match(g)?(r.doInCurrentLine?r.doInCurrentLine=!1:s(e,r),"keyword"):e.match(M)?"keyword":e.match(_)?"atom":e.match(q)?"variable-2":e.match(N)?"builtin":e.match(P)?"variable-2":e.match(I)?"variable":(e.next(),d)}function $(e){var r=e.length==1,n="string";return function(i,c){for(;!i.eol();){if(i.eatWhile(/[^'"]/),i.match(e))return c.tokenize=f,n;i.eat(/['"]/)}if(r){if(v.singleLineStringErrors)return d;c.tokenize=f}return n}}function G(e,r){var n=r.tokenize(e,r),i=e.current();return i==="."?(n=r.tokenize(e,r),i=e.current(),n&&(n.substr(0,8)==="variable"||n==="builtin"||n==="keyword")?((n==="builtin"||n==="keyword")&&(n="variable"),b.indexOf(i.substr(1))>-1&&(n="variable-2"),n):d):n}var Z={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:f,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,r){e.sol()&&(r.currentIndent+=r.nextLineIndent,r.nextLineIndent=0,r.doInCurrentLine=0);var n=G(e,r);return r.lastToken={style:n,content:e.current()},n==="space"&&(n=null),n},indent:function(e,r){var n=r.replace(/^\s+|\s+$/g,"");return n.match(g)||n.match(h)||n.match(y)?a.indentUnit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*a.indentUnit}};return Z}),o.defineMIME("text/vbscript","vbscript")})})();var ee=x.exports,ne=Object.freeze(X({__proto__:null,[Symbol.toStringTag]:"Module",default:ee},[x.exports]));export{ne as v};
@@ -1 +1 @@
1
- import{bK as g}from"./vendor.62e5a05d.js";function $(f,k){return k.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in f)){var a=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(f,o,a.get?a:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(f)}var v={exports:{}};(function(f,k){(function(t){t(g.exports)})(function(t){t.defineMode("velocity",function(){function o(n){for(var e={},i=n.split(" "),r=0;r<i.length;++r)e[i[r]]=!0;return e}var a=o("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}"),u=o("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"),b=o("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"),h=/[+\-*&%=<>!?:\/|]/;function s(n,e,i){return e.tokenize=i,i(n,e)}function c(n,e){var i=e.beforeParams;e.beforeParams=!1;var r=n.next();if(r=="'"&&!e.inString&&e.inParams)return e.lastTokenWasBuiltin=!1,s(n,e,d(r));if(r=='"'){if(e.lastTokenWasBuiltin=!1,e.inString)return e.inString=!1,"string";if(e.inParams)return s(n,e,d(r))}else{if(/[\[\]{}\(\),;\.]/.test(r))return r=="("&&i?e.inParams=!0:r==")"&&(e.inParams=!1,e.lastTokenWasBuiltin=!0),null;if(/\d/.test(r))return e.lastTokenWasBuiltin=!1,n.eatWhile(/[\w\.]/),"number";if(r=="#"&&n.eat("*"))return e.lastTokenWasBuiltin=!1,s(n,e,y);if(r=="#"&&n.match(/ *\[ *\[/))return e.lastTokenWasBuiltin=!1,s(n,e,m);if(r=="#"&&n.eat("#"))return e.lastTokenWasBuiltin=!1,n.skipToEnd(),"comment";if(r=="$")return n.eat("!"),n.eatWhile(/[\w\d\$_\.{}-]/),b&&b.propertyIsEnumerable(n.current())?"keyword":(e.lastTokenWasBuiltin=!0,e.beforeParams=!0,"builtin");if(h.test(r))return e.lastTokenWasBuiltin=!1,n.eatWhile(h),"operator";n.eatWhile(/[\w\$_{}@]/);var l=n.current();return a&&a.propertyIsEnumerable(l)?"keyword":u&&u.propertyIsEnumerable(l)||n.current().match(/^#@?[a-z0-9_]+ *$/i)&&n.peek()=="("&&!(u&&u.propertyIsEnumerable(l.toLowerCase()))?(e.beforeParams=!0,e.lastTokenWasBuiltin=!1,"keyword"):e.inString?(e.lastTokenWasBuiltin=!1,"string"):n.pos>l.length&&n.string.charAt(n.pos-l.length-1)=="."&&e.lastTokenWasBuiltin?"builtin":(e.lastTokenWasBuiltin=!1,null)}}function d(n){return function(e,i){for(var r=!1,l,p=!1;(l=e.next())!=null;){if(l==n&&!r){p=!0;break}if(n=='"'&&e.peek()=="$"&&!r){i.inString=!0,p=!0;break}r=!r&&l=="\\"}return p&&(i.tokenize=c),"string"}}function y(n,e){for(var i=!1,r;r=n.next();){if(r=="#"&&i){e.tokenize=c;break}i=r=="*"}return"comment"}function m(n,e){for(var i=0,r;r=n.next();){if(r=="#"&&i==2){e.tokenize=c;break}r=="]"?i++:r!=" "&&(i=0)}return"meta"}return{startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(n,e){return n.eatSpace()?null:e.tokenize(n,e)},blockCommentStart:"#*",blockCommentEnd:"*#",lineComment:"##",fold:"velocity"}}),t.defineMIME("text/velocity","velocity")})})();var W=v.exports,B=Object.freeze($({__proto__:null,[Symbol.toStringTag]:"Module",default:W},[v.exports]));export{B as v};
1
+ import{bJ as g}from"./vendor.f59145b7.js";function $(f,k){return k.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in f)){var a=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(f,o,a.get?a:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(f)}var v={exports:{}};(function(f,k){(function(t){t(g.exports)})(function(t){t.defineMode("velocity",function(){function o(n){for(var e={},i=n.split(" "),r=0;r<i.length;++r)e[i[r]]=!0;return e}var a=o("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}"),u=o("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"),b=o("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"),h=/[+\-*&%=<>!?:\/|]/;function s(n,e,i){return e.tokenize=i,i(n,e)}function c(n,e){var i=e.beforeParams;e.beforeParams=!1;var r=n.next();if(r=="'"&&!e.inString&&e.inParams)return e.lastTokenWasBuiltin=!1,s(n,e,d(r));if(r=='"'){if(e.lastTokenWasBuiltin=!1,e.inString)return e.inString=!1,"string";if(e.inParams)return s(n,e,d(r))}else{if(/[\[\]{}\(\),;\.]/.test(r))return r=="("&&i?e.inParams=!0:r==")"&&(e.inParams=!1,e.lastTokenWasBuiltin=!0),null;if(/\d/.test(r))return e.lastTokenWasBuiltin=!1,n.eatWhile(/[\w\.]/),"number";if(r=="#"&&n.eat("*"))return e.lastTokenWasBuiltin=!1,s(n,e,y);if(r=="#"&&n.match(/ *\[ *\[/))return e.lastTokenWasBuiltin=!1,s(n,e,m);if(r=="#"&&n.eat("#"))return e.lastTokenWasBuiltin=!1,n.skipToEnd(),"comment";if(r=="$")return n.eat("!"),n.eatWhile(/[\w\d\$_\.{}-]/),b&&b.propertyIsEnumerable(n.current())?"keyword":(e.lastTokenWasBuiltin=!0,e.beforeParams=!0,"builtin");if(h.test(r))return e.lastTokenWasBuiltin=!1,n.eatWhile(h),"operator";n.eatWhile(/[\w\$_{}@]/);var l=n.current();return a&&a.propertyIsEnumerable(l)?"keyword":u&&u.propertyIsEnumerable(l)||n.current().match(/^#@?[a-z0-9_]+ *$/i)&&n.peek()=="("&&!(u&&u.propertyIsEnumerable(l.toLowerCase()))?(e.beforeParams=!0,e.lastTokenWasBuiltin=!1,"keyword"):e.inString?(e.lastTokenWasBuiltin=!1,"string"):n.pos>l.length&&n.string.charAt(n.pos-l.length-1)=="."&&e.lastTokenWasBuiltin?"builtin":(e.lastTokenWasBuiltin=!1,null)}}function d(n){return function(e,i){for(var r=!1,l,p=!1;(l=e.next())!=null;){if(l==n&&!r){p=!0;break}if(n=='"'&&e.peek()=="$"&&!r){i.inString=!0,p=!0;break}r=!r&&l=="\\"}return p&&(i.tokenize=c),"string"}}function y(n,e){for(var i=!1,r;r=n.next();){if(r=="#"&&i){e.tokenize=c;break}i=r=="*"}return"comment"}function m(n,e){for(var i=0,r;r=n.next();){if(r=="#"&&i==2){e.tokenize=c;break}r=="]"?i++:r!=" "&&(i=0)}return"meta"}return{startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(n,e){return n.eatSpace()?null:e.tokenize(n,e)},blockCommentStart:"#*",blockCommentEnd:"*#",lineComment:"##",fold:"velocity"}}),t.defineMIME("text/velocity","velocity")})})();var W=v.exports,B=Object.freeze($({__proto__:null,[Symbol.toStringTag]:"Module",default:W},[v.exports]));export{B as v};