@directus/app 9.13.0 → 9.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{@directus_extensions-sdk.c2d0f9e8.entry.js → @directus_extensions-sdk.016f1070.entry.js} +1 -1
- package/dist/assets/accounts.40ab36c1.js +1 -0
- package/dist/assets/{active-line.85f931be.js → active-line.71775521.js} +1 -1
- package/dist/assets/{activity-log.2f462c6d.js → activity-log.9449feec.js} +1 -1
- package/dist/assets/activity.fbd319d5.js +80 -0
- package/dist/assets/{apl.cef44fca.js → apl.fabbb08e.js} +1 -1
- package/dist/assets/ar-SA.215069dc.js +1 -0
- package/dist/assets/{architecture.19f588c9.js → architecture.9e90b6f3.js} +1 -1
- package/dist/assets/{asciiarmor.0a6d46c1.js → asciiarmor.f87dc63a.js} +1 -1
- package/dist/assets/{asn.1.8af7db88.js → asn.1.5dd57608.js} +1 -1
- package/dist/assets/{asterisk.133eb9d4.js → asterisk.395cf0ad.js} +1 -1
- package/dist/assets/authentication.bc20bce5.js +73 -0
- package/dist/assets/{autorefresh.8c3a7c64.js → autorefresh.2c9c0320.js} +1 -1
- package/dist/assets/aws.6652a1fd.js +1 -0
- package/dist/assets/backing-directus.02c28d29.js +1 -0
- package/dist/assets/{bg-BG.375ca1ae.js → bg-BG.9288ea83.js} +1 -1
- package/dist/assets/{br-FR.73a7f62b.js → br-FR.d3564938.js} +1 -1
- package/dist/assets/{brainfuck.bb0a1793.js → brainfuck.60536f63.js} +1 -1
- package/dist/assets/{ca-ES.3340d7d5.js → ca-ES.f3dfdef6.js} +1 -1
- package/dist/assets/cli.6e61515e.js +19 -0
- package/dist/assets/cli.863ef0d2.js +4 -0
- package/dist/assets/{clike.264a24b6.js → clike.74e0448b.js} +1 -1
- package/dist/assets/{clojure.5be5870c.js → clojure.8f96f0f7.js} +1 -1
- package/dist/assets/{cloudron.3b183977.js → cloudron.a348537b.js} +1 -1
- package/dist/assets/{cmake.361bb9df.js → cmake.723ea5dd.js} +1 -1
- package/dist/assets/{cobol.2e771d85.js → cobol.a990507c.js} +1 -1
- package/dist/assets/codebase-overview.b46635f9.js +1 -0
- package/dist/assets/{coffeescript.132c432c.js → coffeescript.c826a1f4.js} +1 -1
- package/dist/assets/collections.60e4b448.js +2 -0
- package/dist/assets/collections.80e4a52c.js +106 -0
- package/dist/assets/{commonlisp.87c850aa.js → commonlisp.0f5d3fae.js} +1 -1
- package/dist/assets/config-options.8e2d8e17.js +138 -0
- package/dist/assets/content.003d7d7c.js +1 -0
- package/dist/assets/creating-extensions.9a98925a.js +11 -0
- package/dist/assets/{crystal.8b2d4939.js → crystal.8517c407.js} +1 -1
- package/dist/assets/{cs-CZ.678bc13f.js → cs-CZ.a3c83b73.js} +1 -1
- package/dist/assets/{css.1e9857ce.js → css.f2b45d65.js} +1 -1
- package/dist/assets/{cypher.aefea96e.js → cypher.0f67a8c4.js} +1 -1
- package/dist/assets/{d.38a2fd63.js → d.d8c5a86d.js} +1 -1
- package/dist/assets/{da-DK.8db961d3.js → da-DK.3c379038.js} +1 -1
- package/dist/assets/{dart.4d90eff6.js → dart.ff540412.js} +1 -1
- package/dist/assets/data-model.086edd1e.js +1 -0
- package/dist/assets/data-sharing.27afa5ee.js +1 -0
- package/dist/assets/de-DE.350023db.js +1 -0
- package/dist/assets/{diff.f2ea9976.js → diff.1b6cf85e.js} +1 -1
- package/dist/assets/digitalocean-app-platform.aff2a50b.js +3 -0
- package/dist/assets/display-templates.d8e93a19.js +1 -0
- package/dist/assets/displays.e528abde.js +49 -0
- package/dist/assets/{django.fce1ee6c.js → django.b05a00dd.js} +1 -1
- package/dist/assets/{docker.7318105b.js → docker.6f265c46.js} +6 -6
- package/dist/assets/{dockerfile.10fea9a2.js → dockerfile.50e7896f.js} +1 -1
- package/dist/assets/{documentation.ec08e64e.js → documentation.ad1fdaf2.js} +1 -1
- package/dist/assets/{dtd.c67f9501.js → dtd.4f30128b.js} +1 -1
- package/dist/assets/{dylan.9c7c8fbb.js → dylan.295f582b.js} +1 -1
- package/dist/assets/{ebnf.5893ba11.js → ebnf.48a4d2a4.js} +1 -1
- package/dist/assets/{ecl.666cf005.js → ecl.686a8714.js} +1 -1
- package/dist/assets/{eiffel.1ff51078.js → eiffel.ee4a91b5.js} +1 -1
- package/dist/assets/{el-GR.98199dde.js → el-GR.103ebf8d.js} +1 -1
- package/dist/assets/{elm.3c43bbde.js → elm.3575efea.js} +1 -1
- package/dist/assets/{email-templates.bc7359ba.js → email-templates.2bdb87a6.js} +1 -1
- package/dist/assets/{en-CA.d2451b87.js → en-CA.9ad3a3ab.js} +1 -1
- package/dist/assets/{en-GB.e362e116.js → en-GB.c55341c7.js} +1 -1
- package/dist/assets/{endpoints.a283ab67.js → endpoints.2c9172db.js} +2 -2
- package/dist/assets/{erlang.cfe0d25f.js → erlang.2f06eab4.js} +1 -1
- package/dist/assets/{es-419.d7e63f16.js → es-419.10094709.js} +1 -1
- package/dist/assets/{es-CL.7fd46c95.js → es-CL.7f44ec7c.js} +1 -1
- package/dist/assets/es-ES.3ff9088e.js +1 -0
- package/dist/assets/{es-MX.778b926c.js → es-MX.17370b17.js} +1 -1
- package/dist/assets/{et-EE.5321add1.js → et-EE.fb46a361.js} +1 -1
- package/dist/assets/extensions.8d3df212.js +12 -0
- package/dist/assets/{fa-IR.a346165e.js → fa-IR.b864f77c.js} +1 -1
- package/dist/assets/{factor.eb880fb0.js → factor.59c6a149.js} +1 -1
- package/dist/assets/faq.63c79c18.js +2 -0
- package/dist/assets/{fcl.a70b3450.js → fcl.a6a387b9.js} +1 -1
- package/dist/assets/{fi-FI.14cee6db.js → fi-FI.14f31cb4.js} +1 -1
- package/dist/assets/fields.715d4591.js +135 -0
- package/dist/assets/file-library.a4de4015.js +1 -0
- package/dist/assets/files.7c2ccfe2.js +189 -0
- package/dist/assets/filter-rules.056b97be.js +76 -0
- package/dist/assets/filters.2cb82fd9.js +1 -0
- package/dist/assets/flows.38f60cc8.js +172 -0
- package/dist/assets/flows.f378a262.js +15 -0
- package/dist/assets/{fo-FO.ffe478b0.js → fo-FO.cc444b75.js} +1 -1
- package/dist/assets/folders.fa66a5ce.js +132 -0
- package/dist/assets/{forth.127a7f69.js → forth.eec0a81d.js} +1 -1
- package/dist/assets/{fortran.64d2bcc8.js → fortran.b9df31da.js} +1 -1
- package/dist/assets/{fr-FR.49507672.js → fr-CA.0e824ae4.js} +1 -1
- package/dist/assets/fr-FR.77a5277c.js +1 -0
- package/dist/assets/{gas.b5ddd39d.js → gas.1bf79f8f.js} +1 -1
- package/dist/assets/{gcp.aab7b77c.js → gcp.6c61b39e.js} +5 -5
- package/dist/assets/{gfm.0e5a0d37.js → gfm.04d0828d.js} +1 -1
- package/dist/assets/{gherkin.ca9beebc.js → gherkin.f334d646.js} +1 -1
- package/dist/assets/github-ci.04483301.js +2 -0
- package/dist/assets/glossary.485603d9.js +1 -0
- package/dist/assets/glossary.6efd77ad.js +1 -0
- package/dist/assets/{go.601cf92f.js → go.81bbba54.js} +1 -1
- package/dist/assets/{groovy.106b0e1b.js → groovy.3fb79de5.js} +1 -1
- package/dist/assets/{haml.8a27bb91.js → haml.9645befc.js} +1 -1
- package/dist/assets/{handlebars.7edaa076.js → handlebars.c78fa1ca.js} +1 -1
- package/dist/assets/{haskell-literate.c5a1599c.js → haskell-literate.ee77a8c9.js} +1 -1
- package/dist/assets/{haskell.499e9d63.js → haskell.0f131af0.js} +1 -1
- package/dist/assets/{haxe.6103069d.js → haxe.5ecd20ea.js} +1 -1
- package/dist/assets/{hi-IN.1abc0fe8.js → hi-IN.c0703db5.js} +1 -1
- package/dist/assets/hooks.f7efe9af.js +60 -0
- package/dist/assets/{hr-HR.5e9128d0.js → hr-HR.467388ee.js} +1 -1
- package/dist/assets/{htmlembedded.57ac5929.js → htmlembedded.b9d52c93.js} +1 -1
- package/dist/assets/{htmlmixed.be98881c.js → htmlmixed.b02b6e2e.js} +1 -1
- package/dist/assets/{http.4229d6d3.js → http.705b0cd9.js} +1 -1
- package/dist/assets/{hu-HU.edf3e061.js → hu-HU.47ab36e8.js} +1 -1
- package/dist/assets/{id-ID.5d8e082c.js → id-ID.8089647c.js} +1 -1
- package/dist/assets/{idl.1baa44ef.js → idl.ee86fe0e.js} +1 -1
- package/dist/assets/{iis.5653e9da.js → iis.e068f41a.js} +2 -2
- package/dist/assets/import-export.d334c127.js +2 -0
- package/dist/assets/{index.9c5a0589.js → index.0295bc4b.js} +1 -1
- package/dist/assets/{index.e65177c5.js → index.07257d01.js} +1 -1
- package/dist/assets/{index.b7cd48a8.js → index.0e101049.js} +1 -1
- package/dist/assets/{index.15a6b55f.js → index.10f90411.js} +1 -1
- package/dist/assets/{index.204d0697.js → index.14c720ba.js} +1 -1
- package/dist/assets/{index.7bfaf022.js → index.16acfb90.js} +1 -1
- package/dist/assets/{index.e7f7c63b.js → index.175a81f8.js} +1 -1
- package/dist/assets/index.192147d5.css +1 -0
- package/dist/assets/{index.8d2db40f.js → index.1a65b37a.js} +1 -1
- package/dist/assets/{index.4d0c9d2f.js → index.1b44d300.js} +1 -1
- package/dist/assets/{index.9dd4ba15.js → index.20b34242.js} +1 -1
- package/dist/assets/{index.5073c294.js → index.2598f40b.js} +1 -1
- package/dist/assets/{index.9fa88e82.js → index.28aa754b.js} +1 -1
- package/dist/assets/{index.b107abb9.js → index.2926879f.js} +1 -1
- package/dist/assets/{index.0b12fa24.js → index.2ec06d14.js} +1 -1
- package/dist/assets/{index.dd1b70ed.js → index.399c0d62.js} +1 -1
- package/dist/assets/{index.83254b8b.js → index.3d4cd218.js} +1 -1
- package/dist/assets/{index.5d2a1255.js → index.3eda79ec.js} +1 -1
- package/dist/assets/{index.6fe4b726.js → index.402d83c0.js} +1 -1
- package/dist/assets/{index.e29b1e2d.js → index.4100d6f0.js} +1 -1
- package/dist/assets/{index.d0c387c9.js → index.43fa9898.js} +1 -1
- package/dist/assets/{index.d2cb8f46.js → index.456ff0bd.js} +1 -1
- package/dist/assets/{index.e6925009.js → index.4e2109fe.js} +1 -1
- package/dist/assets/{index.58506149.js → index.4ef25ded.js} +1 -1
- package/dist/assets/{index.57201b30.js → index.4fbaebb7.js} +1 -1
- package/dist/assets/{index.4ae9df91.js → index.55a12dfb.js} +1 -1
- package/dist/assets/{index.cf04970d.js → index.56188e3b.js} +1 -1
- package/dist/assets/{index.7ccfac4f.js → index.5c54c17f.js} +1 -1
- package/dist/assets/{index.9f4f31bb.js → index.5f5bf5b9.js} +1 -1
- package/dist/assets/{index.7d3af32f.js → index.60d33aa1.js} +1 -1
- package/dist/assets/{index.1a744da7.js → index.627523d7.js} +1 -1
- package/dist/assets/{index.3fcf2822.js → index.63d1f569.js} +1 -1
- package/dist/assets/{index.16d5015d.js → index.663b73a9.js} +1 -1
- package/dist/assets/{index.59759bad.js → index.6bebaca7.js} +1 -1
- package/dist/assets/{index.28cc485f.js → index.6f0b7179.js} +1 -1
- package/dist/assets/{index.895a297f.css → index.6f497914.css} +1 -1
- package/dist/assets/{index.f73d801d.js → index.7249f524.js} +1 -1
- package/dist/assets/{index.7011d0c4.js → index.77260d1d.js} +1 -1
- package/dist/assets/{index.7b6f6a30.js → index.7f906cfe.js} +1 -1
- package/dist/assets/{index.b6f0287a.js → index.7fd5e2a0.js} +1 -1
- package/dist/assets/{index.731ea486.js → index.7fe984e4.js} +1 -1
- package/dist/assets/{index.9459ab09.js → index.8493b2e7.js} +1 -1
- package/dist/assets/{index.2c806494.js → index.85b9f847.js} +1 -1
- package/dist/assets/{index.f2b97e8c.js → index.8a9f2874.js} +1 -1
- package/dist/assets/{index.67e35129.js → index.93059741.js} +1 -1
- package/dist/assets/{index.9ff8ac88.js → index.94cf6fb4.js} +1 -1
- package/dist/assets/{index.3f26bd55.js → index.98713a56.js} +1 -1
- package/dist/assets/{index.530b8f76.js → index.98ee194a.js} +1 -1
- package/dist/assets/{index.3f629050.js → index.9b60cfa4.js} +1 -1
- package/dist/assets/{index.dbfcc1a7.js → index.a3e085ea.js} +1 -1
- package/dist/assets/{index.0ec094a3.js → index.a40592f5.js} +1 -1
- package/dist/assets/{index.da530994.js → index.a5d15d7f.js} +1 -1
- package/dist/assets/{index.91fa7a8d.js → index.a71fa74c.js} +1 -1
- package/dist/assets/{index.178f5aaf.js → index.a8aa4628.js} +1 -1
- package/dist/assets/{index.528b0171.js → index.a9b73f2c.js} +1 -1
- package/dist/assets/{index.656a3daa.js → index.a9faa4e8.js} +1 -1
- package/dist/assets/{index.3651f13c.js → index.af021d8a.js} +1 -1
- package/dist/assets/{index.c83f5be4.js → index.b43832c6.js} +1 -1
- package/dist/assets/{index.9fd2f4fc.js → index.b5ed5076.js} +1 -1
- package/dist/assets/{index.bfffbb2b.js → index.b67f8116.js} +1 -1
- package/dist/assets/{index.360682df.js → index.b702042e.js} +1 -1
- package/dist/assets/{index.5ef47d94.js → index.bce5f50d.js} +1 -1
- package/dist/assets/{index.d2a1f961.js → index.bfd23a9c.js} +1 -1
- package/dist/assets/{index.876852bd.entry.js → index.c2e31551.entry.js} +209 -209
- package/dist/assets/{index.e3eade04.js → index.c2e6211e.js} +1 -1
- package/dist/assets/{index.d7109bf7.js → index.c35b11e6.js} +1 -1
- package/dist/assets/{index.f03e3a04.js → index.c5266851.js} +1 -1
- package/dist/assets/{index.219a17f2.js → index.c6e501ec.js} +1 -1
- package/dist/assets/{index.7efa08a7.js → index.c9fb33ab.js} +1 -1
- package/dist/assets/{index.2d502598.js → index.cc6496a8.js} +1 -1
- package/dist/assets/{index.3142cfab.js → index.cda6c2d6.js} +1 -1
- package/dist/assets/{index.33ca7318.js → index.cef58c9b.js} +1 -1
- package/dist/assets/{index.c8cd968e.js → index.d060d5f6.js} +1 -1
- package/dist/assets/{index.29e951ca.js → index.d0fe3776.js} +1 -1
- package/dist/assets/{index.94d7ade8.js → index.d653bbf2.js} +1 -1
- package/dist/assets/{index.06b1bc9f.js → index.d8fe2ade.js} +1 -1
- package/dist/assets/{index.577a0434.js → index.d9285c22.js} +1 -1
- package/dist/assets/{index.3db870b4.js → index.e3dcc63c.js} +1 -1
- package/dist/assets/{index.a22ebf71.js → index.e6715953.js} +1 -1
- package/dist/assets/{index.cb9930fe.js → index.ebb444cf.js} +1 -1
- package/dist/assets/{index.b0a109be.js → index.ee22568a.js} +1 -1
- package/dist/assets/{index.708c2587.js → index.ef3faba8.js} +1 -1
- package/dist/assets/index.f0d32a46.js +26 -0
- package/dist/assets/{index.aadb91bf.js → index.fa57ca3f.js} +1 -1
- package/dist/assets/{input-rich-text-html.05181995.css → input-rich-text-html.172a38cb.css} +1 -1
- package/dist/assets/{input-rich-text-html.ec8448e4.js → input-rich-text-html.c72d474e.js} +47 -47
- package/dist/assets/insights.b3ba896c.js +2 -0
- package/dist/assets/installation.2025f88b.js +1 -0
- package/dist/assets/interfaces.606c790c.js +46 -0
- package/dist/assets/introduction.41a72fb0.js +1 -0
- package/dist/assets/introduction.527c3465.js +4 -0
- package/dist/assets/introduction.5566b96e.js +90 -0
- package/dist/assets/introduction.ecd17b88.js +1 -0
- package/dist/assets/{it-IT.558525d2.js → it-IT.58422a56.js} +1 -1
- package/dist/assets/items.d1f658a9.js +1 -0
- package/dist/assets/items.d9c6a0b4.js +136 -0
- package/dist/assets/{javascript-hint.7c0e2348.js → javascript-hint.af96cc6a.js} +1 -1
- package/dist/assets/{javascript.549d0ba4.js → javascript.ed7a2c00.js} +1 -1
- package/dist/assets/{jinja2.5aada9b5.js → jinja2.541c30d3.js} +1 -1
- package/dist/assets/{jsx.560c7673.js → jsx.211ba53b.js} +1 -1
- package/dist/assets/{julia.4b70a3c2.js → julia.66e518ec.js} +1 -1
- package/dist/assets/{ko-KR.5a129780.js → ko-KR.9056bd31.js} +1 -1
- package/dist/assets/{ku-TR.9eee23ff.js → ku-TR.3a07a57e.js} +1 -1
- package/dist/assets/layouts.0aa8d645.js +54 -0
- package/dist/assets/layouts.14b157dc.js +1 -0
- package/dist/assets/{livescript.c54303a1.js → livescript.06428372.js} +1 -1
- package/dist/assets/localization.c89061c7.js +1 -0
- package/dist/assets/{lt-LT.7c7364ab.js → lt-LT.f2d719ff.js} +1 -1
- package/dist/assets/{lua.eee6a1df.js → lua.4f86b0e3.js} +1 -1
- package/dist/assets/manual.20d730b3.js +12 -0
- package/dist/assets/{mark-selection.c75b2260.js → mark-selection.c376d4be.js} +1 -1
- package/dist/assets/{match-highlighter.06888b25.js → match-highlighter.75cb1404.js} +1 -1
- package/dist/assets/{mathematica.836a919a.js → mathematica.1e1f53c5.js} +1 -1
- package/dist/assets/{mbox.a18f3acd.js → mbox.4a5729c3.js} +1 -1
- package/dist/assets/{migrations.48bae78b.js → migrations.f13ec64d.js} +3 -3
- package/dist/assets/{mirc.8d633a4c.js → mirc.9b793041.js} +1 -1
- package/dist/assets/{mllike.ee0a0e4e.js → mllike.4e43f07d.js} +1 -1
- package/dist/assets/{mn-MN.ae109212.js → mn-MN.c504a096.js} +1 -1
- package/dist/assets/{modelica.806d9c14.js → modelica.deb73769.js} +1 -1
- package/dist/assets/modules.9b5ee510.js +69 -0
- package/dist/assets/{ms-MY.e50ff23a.js → ms-MY.e6553dad.js} +1 -1
- package/dist/assets/{mscgen.81143483.js → mscgen.48ffdfc0.js} +1 -1
- package/dist/assets/{multiplex.b5f6827f.js → multiplex.a2d83d7f.js} +1 -1
- package/dist/assets/{mumps.af4fdb4c.js → mumps.210b8bdf.js} +1 -1
- package/dist/assets/{nginx.a80ef11d.js → nginx.dbe68b8c.js} +1 -1
- package/dist/assets/{nl-NL.e22dd4e0.js → nl-NL.2f00af44.js} +1 -1
- package/dist/assets/{no-NO.6edd4997.js → no-NO.59f9d425.js} +1 -1
- package/dist/assets/notifications.674ee6f9.js +153 -0
- package/dist/assets/{nsis.6c7c39d8.js → nsis.5576ebf1.js} +1 -1
- package/dist/assets/{ntriples.9c907279.js → ntriples.07c64718.js} +1 -1
- package/dist/assets/{octave.1e59cd30.js → octave.9cb94caa.js} +1 -1
- package/dist/assets/operations.46679bea.js +1 -0
- package/dist/assets/operations.9995851b.js +169 -0
- package/dist/assets/{overlay.c92748f5.js → overlay.b1fd0f5a.js} +1 -1
- package/dist/assets/overview.3616b560.js +1 -0
- package/dist/assets/overview.3c9f8f3d.js +1 -0
- package/dist/assets/overview.6438dc44.js +1 -0
- package/dist/assets/{oz.fccca05b.js → oz.4bedbc84.js} +1 -1
- package/dist/assets/panels.570ee526.js +65 -0
- package/dist/assets/{pascal.ba64f8f0.js → pascal.9f3e47db.js} +1 -1
- package/dist/assets/{pegjs.6dfcd58b.js → pegjs.38dabda4.js} +1 -1
- package/dist/assets/{perl.0e74be0a.js → perl.d07c357e.js} +1 -1
- package/dist/assets/permissions.768d1878.js +178 -0
- package/dist/assets/{php.d233db82.js → php.a2fb29e5.js} +1 -1
- package/dist/assets/{pig.21e0eb3e.js → pig.cc357f9e.js} +1 -1
- package/dist/assets/{pinia.10afb35e.entry.js → pinia.256cc3da.entry.js} +1 -1
- package/dist/assets/{pl-PL.88defd20.js → pl-PL.80cfbed6.js} +1 -1
- package/dist/assets/plesk.b0ee9a9a.js +27 -0
- package/dist/assets/{powershell.da69d4e0.js → powershell.283f357b.js} +1 -1
- package/dist/assets/presets-bookmarks.522baf53.js +1 -0
- package/dist/assets/presets.d902ebfa.js +164 -0
- package/dist/assets/project-settings.1f95b799.js +1 -0
- package/dist/assets/projects.1ea6a392.js +1 -0
- package/dist/assets/{properties.a4628831.js → properties.57480d0c.js} +1 -1
- package/dist/assets/{protobuf.f0f96141.js → protobuf.c1758733.js} +1 -1
- package/dist/assets/{pt-BR.70dc0b86.js → pt-BR.40750500.js} +1 -1
- package/dist/assets/pt-PT.fae0fcc3.js +1 -0
- package/dist/assets/{pug.3fee26d4.js → pug.bdcaf1c5.js} +1 -1
- package/dist/assets/{puppet.60ebf719.js → puppet.8b6ff9f4.js} +1 -1
- package/dist/assets/{python.a209d75c.js → python.987c2ae7.js} +1 -1
- package/dist/assets/{q.9bc79202.js → q.85f4c589.js} +1 -1
- package/dist/assets/query.8abea6de.js +152 -0
- package/dist/assets/quickstart.75164dd7.js +9 -0
- package/dist/assets/quickstart.9985cb15.js +20 -0
- package/dist/assets/{r.73746445.js → r.25d10fd4.js} +1 -1
- package/dist/assets/relations.9011b2b5.js +115 -0
- package/dist/assets/relationships.cbc9b1c5.js +55 -0
- package/dist/assets/resources.25cb1e34.js +1 -0
- package/dist/assets/revisions.c90ecb76.js +40 -0
- package/dist/assets/{ro-RO.335d3129.js → ro-RO.a1adfb6a.js} +1 -1
- package/dist/assets/roles.22f7aa37.js +171 -0
- package/dist/assets/{rpm.b64d60a3.js → rpm.8909ead0.js} +1 -1
- package/dist/assets/{rst.d4af1cd8.js → rst.4d43ef54.js} +1 -1
- package/dist/assets/{ru-RU.2ccef41d.js → ru-RU.35703ea4.js} +1 -1
- package/dist/assets/{ruby.a80f4c3d.js → ruby.b7e26986.js} +1 -1
- package/dist/assets/running-locally.ce0a8200.js +26 -0
- package/dist/assets/{runtime-core.esm-bundler.e6808e6c.js → runtime-core.esm-bundler.b1f35d24.js} +0 -0
- package/dist/assets/{rust.899c7d8f.js → rust.6984b11a.js} +1 -1
- package/dist/assets/{sas.41f29cd7.js → sas.91990a72.js} +1 -1
- package/dist/assets/{sass.1d8f58d7.js → sass.898f89c7.js} +1 -1
- package/dist/assets/{scheme.2ab5ffc7.js → scheme.f661c5b8.js} +1 -1
- package/dist/assets/{sdk.482f914b.js → sdk.916109ed.js} +59 -59
- package/dist/assets/security.1963da73.js +1 -0
- package/dist/assets/server.afec52fc.js +114 -0
- package/dist/assets/settings.835be62f.js +51 -0
- package/dist/assets/{settings.3849af9a.js → settings.a02abd85.js} +1 -1
- package/dist/assets/{shell.a3cecf64.js → shell.af2902da.js} +1 -1
- package/dist/assets/{show-hint.3f4ba8eb.js → show-hint.2d43524d.js} +1 -1
- package/dist/assets/{sieve.f25d24f4.js → sieve.327a81f8.js} +1 -1
- package/dist/assets/{simple.c984322a.js → simple.4fb4f28d.js} +1 -1
- package/dist/assets/{sl-SI.e8321ed4.js → sl-SI.632899f8.js} +1 -1
- package/dist/assets/{slim.3db1f064.js → slim.e97ce531.js} +1 -1
- package/dist/assets/{smalltalk.f551ff39.js → smalltalk.b9556415.js} +1 -1
- package/dist/assets/{smarty.afd9c30f.js → smarty.d91926e3.js} +1 -1
- package/dist/assets/{solr.c9696404.js → solr.20381d3e.js} +1 -1
- package/dist/assets/{soy.1a041a45.js → soy.a0154260.js} +1 -1
- package/dist/assets/{sparql.8928a4e7.js → sparql.36de4d3f.js} +1 -1
- package/dist/assets/{spreadsheet.b508d495.js → spreadsheet.00a4877b.js} +1 -1
- package/dist/assets/{sql.ca615946.js → sql.1f7dd82a.js} +1 -1
- package/dist/assets/{sr-CS.4de79c8e.js → sr-CS.2e5b18be.js} +1 -1
- package/dist/assets/{sso-examples.b4ec54d6.js → sso-examples.048b39c5.js} +12 -12
- package/dist/assets/sso.70be105f.js +22 -0
- package/dist/assets/{stex.49bcb53e.js → stex.2b7cb363.js} +1 -1
- package/dist/assets/{stylus.861b3b1d.js → stylus.123ca166.js} +1 -1
- package/dist/assets/support.fce2dba5.js +1 -0
- package/dist/assets/{sv-SE.0f875403.js → sv-SE.d485ddd3.js} +1 -1
- package/dist/assets/{swift.3f2d8cb3.js → swift.9ca91d28.js} +1 -1
- package/dist/assets/{tcl.cd07bc30.js → tcl.1b7f83bd.js} +1 -1
- package/dist/assets/teams.44eb670e.js +1 -0
- package/dist/assets/{textile.a63fbf58.js → textile.ee402504.js} +1 -1
- package/dist/assets/{th-TH.2ebd6079.js → th-TH.1e9ab13f.js} +1 -1
- package/dist/assets/themes.e4a7762f.js +5 -0
- package/dist/assets/{tiddlywiki.f2f348c0.js → tiddlywiki.67540872.js} +1 -1
- package/dist/assets/{tiki.ba369f07.js → tiki.fb6dd4a0.js} +1 -1
- package/dist/assets/{toml.31bb978b.js → toml.9c5fe3d8.js} +1 -1
- package/dist/assets/{tornado.1777e143.js → tornado.c681a8fd.js} +1 -1
- package/dist/assets/tr-TR.feb24957.js +1 -0
- package/dist/assets/translation-strings.4ed25965.js +1 -0
- package/dist/assets/translations.cf2353ca.js +1 -0
- package/dist/assets/triggers.05092cdf.js +1 -0
- package/dist/assets/{troff.1d83c4c6.js → troff.a6f4e798.js} +1 -1
- package/dist/assets/{ttcn-cfg.7fa2f9b9.js → ttcn-cfg.a0214838.js} +1 -1
- package/dist/assets/{ttcn.5f856a38.js → ttcn.4c22a431.js} +1 -1
- package/dist/assets/{turtle.3c6fdbbb.js → turtle.d40e9c31.js} +1 -1
- package/dist/assets/{twig.542faf41.js → twig.d78613df.js} +1 -1
- package/dist/assets/{ubuntu.d721892a.js → ubuntu.35dc97df.js} +1 -1
- package/dist/assets/uk-UA.0e92f9a4.js +1 -0
- package/dist/assets/upgrades-migrations.9218bbe9.js +1 -0
- package/dist/assets/use-sync.c0f4dfab.js +28 -0
- package/dist/assets/user-directory.3daaa818.js +1 -0
- package/dist/assets/users-roles-permissions.6e18f7ca.js +1 -0
- package/dist/assets/users.4f11a7c5.js +252 -0
- package/dist/assets/utilities.0e0d0ace.js +74 -0
- package/dist/assets/{vb.660ea551.js → vb.5adeb8ea.js} +1 -1
- package/dist/assets/{vbscript.8d60ba84.js → vbscript.27937162.js} +1 -1
- package/dist/assets/{velocity.2c820c8c.js → velocity.581c25aa.js} +1 -1
- package/dist/assets/{verilog.a6d857f3.js → verilog.9f72c282.js} +1 -1
- package/dist/assets/{vhdl.1739da74.js → vhdl.4d290e0b.js} +1 -1
- package/dist/assets/{vi-VN.7aaf0f64.js → vi-VN.3e9c985f.js} +1 -1
- package/dist/assets/{vue-i18n.540626ab.entry.js → vue-i18n.ecb0af35.entry.js} +1 -1
- package/dist/assets/{vue-router.3ef5d657.entry.js → vue-router.8987d576.entry.js} +1 -1
- package/dist/assets/{vue.2ddff80c.entry.js → vue.1f4d921a.entry.js} +1 -1
- package/dist/assets/{vue.6a736ef9.js → vue.cf5a232a.js} +1 -1
- package/dist/assets/{vue.runtime.esm-bundler.f4ce1cef.js → vue.runtime.esm-bundler.ac4ff7af.js} +1 -1
- package/dist/assets/{wast.4a6e6c0b.js → wast.16f886c5.js} +1 -1
- package/dist/assets/webhooks.00ee297b.js +147 -0
- package/dist/assets/webhooks.01ddb390.js +1 -0
- package/dist/assets/{webidl.92e5974e.js → webidl.1185b166.js} +1 -1
- package/dist/assets/{xquery.2e4160b5.js → xquery.34864271.js} +1 -1
- package/dist/assets/{yacas.3afca2ee.js → yacas.880a270b.js} +1 -1
- package/dist/assets/{yaml-frontmatter.312d62d5.js → yaml-frontmatter.4cec6c13.js} +1 -1
- package/dist/assets/{yaml.71c2f2cd.js → yaml.15292258.js} +1 -1
- package/dist/assets/{z80.e076e688.js → z80.727a7271.js} +1 -1
- package/dist/assets/{zh-CN.d7b18680.js → zh-CN.432cf71e.js} +1 -1
- package/dist/assets/{zh-TW.4802ae81.js → zh-TW.cac20c88.js} +1 -1
- package/dist/index.html +8 -8
- package/package.json +7 -6
- package/dist/assets/accounts.6a41a439.js +0 -1
- package/dist/assets/activity.737e1d30.js +0 -80
- package/dist/assets/ar-SA.1270865d.js +0 -1
- package/dist/assets/authentication.77ec921a.js +0 -73
- package/dist/assets/aws.f94e1168.js +0 -1
- package/dist/assets/backing-directus.16949f6d.js +0 -1
- package/dist/assets/cli.18caf1f2.js +0 -19
- package/dist/assets/cli.774a4996.js +0 -4
- package/dist/assets/codebase-overview.d6365b1a.js +0 -1
- package/dist/assets/collections.5ec4ec4a.js +0 -2
- package/dist/assets/collections.e66dacd4.js +0 -106
- package/dist/assets/config-options.5b139611.js +0 -138
- package/dist/assets/content.0fca8e70.js +0 -1
- package/dist/assets/creating-extensions.09899f65.js +0 -11
- package/dist/assets/data-model.98153925.js +0 -1
- package/dist/assets/data-sharing.06e8a06f.js +0 -1
- package/dist/assets/de-DE.a45e2867.js +0 -1
- package/dist/assets/digitalocean-app-platform.7da3c7a1.js +0 -3
- package/dist/assets/display-templates.cd179d19.js +0 -1
- package/dist/assets/displays.1ee1f2b5.js +0 -49
- package/dist/assets/es-ES.90a08b21.js +0 -1
- package/dist/assets/extensions.a51d3924.js +0 -12
- package/dist/assets/faq.7bde76ae.js +0 -2
- package/dist/assets/fields.1f2e77de.js +0 -135
- package/dist/assets/file-library.3626307c.js +0 -1
- package/dist/assets/files.e045e557.js +0 -189
- package/dist/assets/filter-rules.247581e5.js +0 -76
- package/dist/assets/filters.43e74661.js +0 -1
- package/dist/assets/flows.323ce75f.js +0 -15
- package/dist/assets/flows.5f5e16d5.js +0 -172
- package/dist/assets/folders.56c9a624.js +0 -132
- package/dist/assets/fr-CA.7669aed8.js +0 -1
- package/dist/assets/github-ci.fbe7bc68.js +0 -2
- package/dist/assets/glossary.321fe2e7.js +0 -1
- package/dist/assets/glossary.8e8d2e42.js +0 -1
- package/dist/assets/hooks.c8418066.js +0 -60
- package/dist/assets/import-export.c48e51e7.js +0 -2
- package/dist/assets/index.9001e465.css +0 -1
- package/dist/assets/index.9ac418f5.js +0 -26
- package/dist/assets/insights.91323cd9.js +0 -2
- package/dist/assets/installation.52e4ff88.js +0 -1
- package/dist/assets/interfaces.3a13d91e.js +0 -46
- package/dist/assets/introduction.651560f1.js +0 -1
- package/dist/assets/introduction.8442768e.js +0 -4
- package/dist/assets/introduction.8fbc61cf.js +0 -1
- package/dist/assets/introduction.a7d534ac.js +0 -90
- package/dist/assets/items.21c2f5c1.js +0 -1
- package/dist/assets/items.89e120a5.js +0 -136
- package/dist/assets/layouts.1ab2977a.js +0 -1
- package/dist/assets/layouts.ec7b7659.js +0 -54
- package/dist/assets/localization.7df8d876.js +0 -1
- package/dist/assets/manual.1cafb3c9.js +0 -10
- package/dist/assets/modules.ba273153.js +0 -69
- package/dist/assets/notifications.1e1cfcf8.js +0 -153
- package/dist/assets/operations.054152be.js +0 -1
- package/dist/assets/operations.cd009c46.js +0 -169
- package/dist/assets/overview.70f19d6e.js +0 -1
- package/dist/assets/overview.a1ad38f6.js +0 -1
- package/dist/assets/overview.b5ff02e8.js +0 -1
- package/dist/assets/panels.a7ccfe62.js +0 -65
- package/dist/assets/permissions.7a7896f5.js +0 -178
- package/dist/assets/plesk.e70d310e.js +0 -27
- package/dist/assets/presets-bookmarks.03f2cacf.js +0 -1
- package/dist/assets/presets.78562380.js +0 -164
- package/dist/assets/project-settings.1ca9f129.js +0 -1
- package/dist/assets/projects.8310e11a.js +0 -1
- package/dist/assets/pt-PT.011f0864.js +0 -1
- package/dist/assets/query.23aa38a2.js +0 -152
- package/dist/assets/quickstart.2ad94821.js +0 -20
- package/dist/assets/quickstart.59a0c62f.js +0 -9
- package/dist/assets/relations.c6b50878.js +0 -115
- package/dist/assets/relationships.7a08adb6.js +0 -55
- package/dist/assets/resources.a731a4ac.js +0 -1
- package/dist/assets/revisions.69b22e98.js +0 -40
- package/dist/assets/roles.caf226aa.js +0 -171
- package/dist/assets/running-locally.0df06054.js +0 -26
- package/dist/assets/security.e53645ff.js +0 -1
- package/dist/assets/server.c899d180.js +0 -114
- package/dist/assets/settings.2dce0b3a.js +0 -51
- package/dist/assets/sso.83af860e.js +0 -22
- package/dist/assets/support.ec8c583f.js +0 -1
- package/dist/assets/teams.cd070396.js +0 -1
- package/dist/assets/themes.6b4fa5ad.js +0 -5
- package/dist/assets/tr-TR.bf97340d.js +0 -1
- package/dist/assets/translation-strings.20caaf44.js +0 -1
- package/dist/assets/translations.b0669f1b.js +0 -1
- package/dist/assets/triggers.ef2f026f.js +0 -1
- package/dist/assets/uk-UA.3d9cc5ac.js +0 -1
- package/dist/assets/upgrades-migrations.7ca77eae.js +0 -1
- package/dist/assets/use-sync.a493fd37.js +0 -28
- package/dist/assets/user-directory.1e43d57c.js +0 -1
- package/dist/assets/users-roles-permissions.298f1d29.js +0 -1
- package/dist/assets/users.c27bf116.js +0 -252
- package/dist/assets/utilities.5c027346.js +0 -74
- package/dist/assets/webhooks.c44db11b.js +0 -147
- package/dist/assets/webhooks.dcb64844.js +0 -1
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import{a as o,o as c,b as a,w as u,g as l,B as e}from"./runtime-core.esm-bundler.e6808e6c.js";const r=l("div",{class:"markdown-body"},[l("blockquote",null,[l("p",null,"Custom API Hooks allow running custom logic when a specified event occurs within your project. There are different types of events to choose from.")]),l("h2",{id:"extension-entrypoint"},[e("Extension Entrypoint "),l("a",{class:"header-anchor",href:"#extension-entrypoint"},"#")]),l("p",null,[e("The entrypoint of your hook is the "),l("code",null,"index"),e(" file inside the "),l("code",null,"src/"),e(" folder of your extension package. It exports a register function to register one or more event listeners.")]),l("p",null,"Example of an entrypoint:"),l("pre",null,[l("code",{class:"language-js"},[l("span",{class:"hljs-keyword"},"export"),e(),l("span",{class:"hljs-keyword"},"default"),e(` ({ filter, action }) => {
|
|
2
|
-
filter(`),l("span",{class:"hljs-string"},"'items.create'"),e(", "),l("span",{class:"hljs-function"},"() =>"),e(` {
|
|
3
|
-
`),l("span",{class:"hljs-built_in"},"console"),e(".log("),l("span",{class:"hljs-string"},"'Creating Item!'"),e(`);
|
|
4
|
-
});
|
|
5
|
-
|
|
6
|
-
action(`),l("span",{class:"hljs-string"},"'items.create'"),e(", "),l("span",{class:"hljs-function"},"() =>"),e(` {
|
|
7
|
-
`),l("span",{class:"hljs-built_in"},"console"),e(".log("),l("span",{class:"hljs-string"},"'Item created!'"),e(`);
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
`)])]),l("h2",{id:"events"},[e("Events "),l("a",{class:"header-anchor",href:"#events"},"#")]),l("p",null,"Your hook can trigger on a variety of different events. An event is defined by its type and its name."),l("p",null,"There are four event types to choose from:"),l("ul",null,[l("li",null,[l("a",{href:"#filter"},"Filter")]),l("li",null,[l("a",{href:"#action"},"Action")]),l("li",null,[l("a",{href:"#init"},"Init")]),l("li",null,[l("a",{href:"#schedule"},"Schedule")])]),l("p",null,"Use filter hooks when you want the hook to fire before the event. Use action hooks when you want the hook to fire after the event."),l("h3",{id:"filter"},[e("Filter "),l("a",{class:"header-anchor",href:"#filter"},"#")]),l("p",null,"Filter hooks act on the event\u2019s payload before the event is fired. They allow you to check, modify, or cancel an event."),l("p",null,[e("Below is an example of canceling a "),l("code",null,"create"),e(" event by throwing a standard Directus exception.")]),l("pre",null,[l("code",{class:"language-js"},[l("span",{class:"hljs-keyword"},"export"),e(),l("span",{class:"hljs-keyword"},"default"),e(` ({ filter }, { exceptions }) => {
|
|
11
|
-
`),l("span",{class:"hljs-keyword"},"const"),e(` { InvalidPayloadException } = exceptions;
|
|
12
|
-
|
|
13
|
-
filter(`),l("span",{class:"hljs-string"},"'items.create'"),e(", "),l("span",{class:"hljs-keyword"},"async"),e(` (input) => {
|
|
14
|
-
`),l("span",{class:"hljs-keyword"},"if"),e(` (LOGIC_TO_CANCEL_EVENT) {
|
|
15
|
-
`),l("span",{class:"hljs-keyword"},"throw"),e(),l("span",{class:"hljs-keyword"},"new"),e(` InvalidPayloadException(WHAT_IS_WRONG);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
`),l("span",{class:"hljs-keyword"},"return"),e(` input;
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
`)])]),l("p",null,"The filter register function receives two parameters:"),l("ul",null,[l("li",null,"The event name"),l("li",null,"A callback function that is executed whenever the event fires.")]),l("p",null,"The callback function itself receives three parameters:"),l("ul",null,[l("li",null,"The modifiable payload"),l("li",null,"An event-specific meta object"),l("li",null,"A context object")]),l("p",null,"The context object has the following properties:"),l("ul",null,[l("li",null,[l("code",null,"database"),e(" \u2014 The current database transaction")]),l("li",null,[l("code",null,"schema"),e(" \u2014 The current API schema in use")]),l("li",null,[l("code",null,"accountability"),e(" \u2014 Information about the current user")])]),l("div",{class:"warning hint"},[l("div",{class:"hint-title"},"Performance"),l("p",null,[e("Filters can impact performance when not carefully implemented, as they are executed in a blocking manner. This applies in particular to filters firing on "),l("code",null,"read"),e(" events, where a single request can result in a large amount of database reads.")])]),l("h3",{id:"action"},[e("Action "),l("a",{class:"header-anchor",href:"#action"},"#")]),l("p",null,"Action hooks execute after a defined event and receive data related to the event. Use action hooks when you need to automate responses to CRUD events on items or server actions."),l("p",null,"The action register function receives two parameters:"),l("ul",null,[l("li",null,"The event name"),l("li",null,"A callback function that is executed whenever the event fires.")]),l("p",null,"The callback function itself receives two parameters:"),l("ul",null,[l("li",null,"An event-specific meta object"),l("li",null,"A context object")]),l("p",null,"The context object has the following properties:"),l("ul",null,[l("li",null,[l("code",null,"database"),e(" \u2014 The current database transaction")]),l("li",null,[l("code",null,"schema"),e(" \u2014 The current API schema in use")]),l("li",null,[l("code",null,"accountability"),e(" \u2014 Information about the current user")])]),l("h3",{id:"init"},[e("Init "),l("a",{class:"header-anchor",href:"#init"},"#")]),l("p",null,"Init hooks execute at a defined point within the lifecycle of Directus. Use init hook objects to inject logic into internal services."),l("p",null,"The init register function receives two parameters:"),l("ul",null,[l("li",null,"The event name"),l("li",null,"A callback function that is executed whenever the event fires.")]),l("p",null,"The callback function itself receives one parameter:"),l("ul",null,[l("li",null,"An event-specific meta object")]),l("h3",{id:"schedule"},[e("Schedule "),l("a",{class:"header-anchor",href:"#schedule"},"#")]),l("p",null,[e("Schedule hooks execute at certain points in time rather than when Directus performs a specific action. This is supported through "),l("a",{href:"https://www.npmjs.com/package/node-cron",target:"_blank",rel:"noopener noreferrer"},[l("code",null,"node-cron")]),e(".")]),l("p",null,[e("To set up a scheduled event, provide a cron statement as the first parameter to the "),l("code",null,"schedule()"),e(" function. For example "),l("code",null,"schedule('15 14 1 * *', <...>)"),e(" (at 14:15 on day-of-month 1) or "),l("code",null,"schedule('5 4 * * sun', <...>)"),e(" (at 04:05 on Sunday).")]),l("p",null,"Below is an example of registering a schedule hook."),l("pre",null,[l("code",{class:"language-js"},[l("span",{class:"hljs-keyword"},"import"),e(" axios "),l("span",{class:"hljs-keyword"},"from"),e(),l("span",{class:"hljs-string"},"'axios'"),e(`;
|
|
22
|
-
|
|
23
|
-
`),l("span",{class:"hljs-keyword"},"export"),e(),l("span",{class:"hljs-keyword"},"default"),e(` ({ schedule }) => {
|
|
24
|
-
schedule(`),l("span",{class:"hljs-string"},"'*/15 * * * *'"),e(", "),l("span",{class:"hljs-keyword"},"async"),e(` () => {
|
|
25
|
-
`),l("span",{class:"hljs-keyword"},"await"),e(" axios.post("),l("span",{class:"hljs-string"},"'http://example.com/webhook'"),e(", { "),l("span",{class:"hljs-attr"},"message"),e(": "),l("span",{class:"hljs-string"},"'Another 15 minutes passed...'"),e(` });
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
`)])]),l("h2",{id:"available-events"},[e("Available Events "),l("a",{class:"header-anchor",href:"#available-events"},"#")]),l("h3",{id:"filter-events"},[e("Filter Events "),l("a",{class:"header-anchor",href:"#filter-events"},"#")]),l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Name"),l("th",null,"Payload"),l("th",null,"Meta")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"request.not_found")]),l("td",null,[l("code",null,"false")]),l("td",null,[l("code",null,"request"),e(", "),l("code",null,"response")])]),l("tr",null,[l("td",null,[l("code",null,"request.error")]),l("td",null,"The request errors"),l("td",null,"\u2013")]),l("tr",null,[l("td",null,[l("code",null,"database.error")]),l("td",null,"The database error"),l("td",null,[l("code",null,"client")])]),l("tr",null,[l("td",null,[l("code",null,"auth.login")]),l("td",null,"The login payload"),l("td",null,[l("code",null,"status"),e(", "),l("code",null,"user"),e(", "),l("code",null,"provider")])]),l("tr",null,[l("td",null,[l("code",null,"auth.jwt")]),l("td",null,"The auth token"),l("td",null,[l("code",null,"status"),e(", "),l("code",null,"user"),e(", "),l("code",null,"provider"),e(", "),l("code",null,"type")])]),l("tr",null,[l("td",null,[l("code",null,"authenticate")]),l("td",null,"The empty accountability object"),l("td",null,[l("code",null,"req")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.read")]),l("td",null,"The read item"),l("td",null,[l("code",null,"query"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.create")]),l("td",null,"The new item"),l("td",null,[l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.update")]),l("td",null,"The updated item"),l("td",null,[l("code",null,"keys"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.delete")]),l("td",null,"The keys of the item"),l("td",null,[l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"<system-collection>.create")]),l("td",null,"The new item"),l("td",null,[l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"<system-collection>.update")]),l("td",null,"The updated item"),l("td",null,[l("code",null,"keys"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"<system-collection>.delete")]),l("td",null,"The keys of the item"),l("td",null,[l("code",null,"collection")])])])]),l("div",{class:"tip hint"},[l("div",{class:"hint-title"},"System Collections"),l("p",null,[l("code",null,"<system-collection>"),e(" should be replaced with one of the system collection names "),l("code",null,"activity"),e(", "),l("code",null,"collections"),e(", "),l("code",null,"fields"),e(", "),l("code",null,"files"),e(" (except create/update), "),l("code",null,"folders"),e(", "),l("code",null,"permissions"),e(", "),l("code",null,"presets"),e(", "),l("code",null,"relations"),e(", "),l("code",null,"revisions"),e(", "),l("code",null,"roles"),e(", "),l("code",null,"settings"),e(", "),l("code",null,"users"),e(" or "),l("code",null,"webhooks"),e(".")])]),l("h3",{id:"action-events"},[e("Action Events "),l("a",{class:"header-anchor",href:"#action-events"},"#")]),l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Name"),l("th",null,"Meta")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"server.start")]),l("td",null,[l("code",null,"server")])]),l("tr",null,[l("td",null,[l("code",null,"server.stop")]),l("td",null,[l("code",null,"server")])]),l("tr",null,[l("td",null,[l("code",null,"response")]),l("td",null,[l("code",null,"request"),e(", "),l("code",null,"response"),e(", "),l("code",null,"ip"),e(", "),l("code",null,"duration"),e(", "),l("code",null,"finished")])]),l("tr",null,[l("td",null,[l("code",null,"auth.login")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"status"),e(", "),l("code",null,"user"),e(", "),l("code",null,"provider")])]),l("tr",null,[l("td",null,[l("code",null,"files.upload")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"key"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.read")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"query"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.create")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"key"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.update")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"keys"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.delete")]),l("td",null,[l("code",null,"keys"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"(<collection>.)items.sort")]),l("td",null,[l("code",null,"collection"),e(", "),l("code",null,"item"),e(", "),l("code",null,"to")])]),l("tr",null,[l("td",null,[l("code",null,"<system-collection>.create")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"key"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"<system-collection>.update")]),l("td",null,[l("code",null,"payload"),e(", "),l("code",null,"keys"),e(", "),l("code",null,"collection")])]),l("tr",null,[l("td",null,[l("code",null,"<system-collection>.delete")]),l("td",null,[l("code",null,"keys"),e(", "),l("code",null,"collection")])])])]),l("div",{class:"tip hint"},[l("div",{class:"hint-title"},"System Collections"),l("p",null,[l("code",null,"<system-collection>"),e(" should be replaced with one of the system collection names "),l("code",null,"activity"),e(", "),l("code",null,"collections"),e(", "),l("code",null,"fields"),e(", "),l("code",null,"files"),e(" (except create/update), "),l("code",null,"folders"),e(", "),l("code",null,"permissions"),e(", "),l("code",null,"presets"),e(", "),l("code",null,"relations"),e(", "),l("code",null,"revisions"),e(", "),l("code",null,"roles"),e(", "),l("code",null,"settings"),e(", "),l("code",null,"users"),e(" or "),l("code",null,"webhooks"),e(".")])]),l("h3",{id:"init-events"},[e("Init Events "),l("a",{class:"header-anchor",href:"#init-events"},"#")]),l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Name"),l("th",null,"Meta")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"cli.before")]),l("td",null,[l("code",null,"program")])]),l("tr",null,[l("td",null,[l("code",null,"cli.after")]),l("td",null,[l("code",null,"program")])]),l("tr",null,[l("td",null,[l("code",null,"app.before")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"app.after")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"routes.before")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"routes.after")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"routes.custom.before")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"routes.custom.after")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"middlewares.before")]),l("td",null,[l("code",null,"app")])]),l("tr",null,[l("td",null,[l("code",null,"middlewares.after")]),l("td",null,[l("code",null,"app")])])])]),l("h2",{id:"register-function"},[e("Register Function "),l("a",{class:"header-anchor",href:"#register-function"},"#")]),l("p",null,"The register function receives an object containing the type-specific register functions as the first parameter:"),l("ul",null,[l("li",null,[l("code",null,"filter"),e(" \u2014 Listen for a filter event")]),l("li",null,[l("code",null,"action"),e(" \u2014 Listen for an action event")]),l("li",null,[l("code",null,"init"),e(" \u2014 Listen for an init event")]),l("li",null,[l("code",null,"schedule"),e(" \u2014 Execute a function at certain points in time")])]),l("p",null,"The second parameter is a context object with the following properties:"),l("ul",null,[l("li",null,[l("code",null,"services"),e(" \u2014 All API internal services")]),l("li",null,[l("code",null,"exceptions"),e(" \u2014 API exception objects that can be used for throwing \u201Cproper\u201D errors")]),l("li",null,[l("code",null,"database"),e(" \u2014 Knex instance that is connected to the current database")]),l("li",null,[l("code",null,"getSchema"),e(" \u2014 Async function that reads the full available schema for use in services")]),l("li",null,[l("code",null,"env"),e(" \u2014 Parsed environment variables")]),l("li",null,[l("code",null,"logger"),e(" \u2014 "),l("a",{href:"https://github.com/pinojs/pino",target:"_blank",rel:"noopener noreferrer"},"Pino"),e(" instance.")]),l("li",null,[l("code",null,"emitter"),e(" \u2014 "),l("a",{href:"https://github.com/directus/directus/blob/main/api/src/emitter.ts",target:"_blank",rel:"noopener noreferrer"},"Event emitter"),e(" instance that can be used to trigger custom events for other extensions.")])]),l("div",{class:"warning hint"},[l("div",{class:"hint-title"},"Event loop"),l("p",null,"When implementing custom events using the emitter make sure you never directly or indirectly emit the same event your hook is currently handling as that would result in an infinite loop!")]),l("h2",{id:"example%3A-sync-with-external"},[e("Example: Sync with External "),l("a",{class:"header-anchor",href:"#example%3A-sync-with-external"},"#")]),l("pre",null,[l("code",{class:"language-js"},[l("span",{class:"hljs-keyword"},"import"),e(" axios "),l("span",{class:"hljs-keyword"},"from"),e(),l("span",{class:"hljs-string"},"'axios'"),e(`;
|
|
29
|
-
|
|
30
|
-
`),l("span",{class:"hljs-keyword"},"export"),e(),l("span",{class:"hljs-keyword"},"default"),e(` ({ filter }, { services, exceptions }) => {
|
|
31
|
-
`),l("span",{class:"hljs-keyword"},"const"),e(` { MailService } = services;
|
|
32
|
-
`),l("span",{class:"hljs-keyword"},"const"),e(` { ServiceUnavailableException, ForbiddenException } = exceptions;
|
|
33
|
-
|
|
34
|
-
`),l("span",{class:"hljs-comment"},"// Sync with external recipes service, cancel creation on failure"),e(`
|
|
35
|
-
filter(`),l("span",{class:"hljs-string"},"'items.create'"),e(", "),l("span",{class:"hljs-keyword"},"async"),e(` (input, { collection }, { schema }) => {
|
|
36
|
-
`),l("span",{class:"hljs-keyword"},"if"),e(" (collection !== "),l("span",{class:"hljs-string"},"'recipes'"),e(") "),l("span",{class:"hljs-keyword"},"return"),e(` input;
|
|
37
|
-
|
|
38
|
-
`),l("span",{class:"hljs-keyword"},"const"),e(" mailService = "),l("span",{class:"hljs-keyword"},"new"),e(` MailService({ schema });
|
|
39
|
-
|
|
40
|
-
`),l("span",{class:"hljs-keyword"},"try"),e(` {
|
|
41
|
-
`),l("span",{class:"hljs-keyword"},"await"),e(" axios.post("),l("span",{class:"hljs-string"},"'https://example.com/recipes'"),e(`, input);
|
|
42
|
-
`),l("span",{class:"hljs-keyword"},"await"),e(` mailService.send({
|
|
43
|
-
`),l("span",{class:"hljs-attr"},"to"),e(": "),l("span",{class:"hljs-string"},"'person@example.com'"),e(`,
|
|
44
|
-
`),l("span",{class:"hljs-attr"},"template"),e(`: {
|
|
45
|
-
`),l("span",{class:"hljs-attr"},"name"),e(": "),l("span",{class:"hljs-string"},"'item-created'"),e(`,
|
|
46
|
-
`),l("span",{class:"hljs-attr"},"data"),e(`: {
|
|
47
|
-
`),l("span",{class:"hljs-attr"},"collection"),e(`: collection,
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
} `),l("span",{class:"hljs-keyword"},"catch"),e(` (error) {
|
|
52
|
-
`),l("span",{class:"hljs-keyword"},"throw"),e(),l("span",{class:"hljs-keyword"},"new"),e(` ServiceUnavailableException(error);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
input.syncedWithExample = `),l("span",{class:"hljs-literal"},"true"),e(`;
|
|
56
|
-
|
|
57
|
-
`),l("span",{class:"hljs-keyword"},"return"),e(` input;
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
`)])])],-1),f="Custom API Hooks",m=!0,y={name:"hooks",setup(i,{expose:t}){const n={title:"Custom API Hooks",modularExtension:!0};return t({frontmatter:n}),(d,h)=>{const s=o("docs-wrapper");return c(),a(s,{frontmatter:n},{default:u(()=>[r]),_:1})}}};export{y as default,m as modularExtension,f as title};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as r,o as d,b as p,w as o,g as e,e as l,B as t}from"./runtime-core.esm-bundler.e6808e6c.js";const c={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"The Content, User Directory, and File Library modules allow importing and exporting of multiple Items stored as files. This makes it quick and easy to handle tasks like uploading and downloading new customer information; pulling down sales data for transformation, reports, analysis, and beyond.")],-1),m=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#import-items"},"Import Items")]),e("li",null,[e("a",{href:"#export-items"},"Export Items")]),e("li",null,[e("a",{href:"#export-items-menu"},"Export Items Menu")]),e("li",null,[e("a",{href:"#file-assets-and-media"},"File Assets and Media")])])])],-1),u={class:"tip hint"},_=e("div",{class:"hint-title"},"Before You Begin",-1),f=t("To use this utility, you will need to be familiar with "),x=t("Collections"),g=t(", "),y=t("Items"),I=t(", and "),w=t("Fields"),v=t("."),F={class:"tip hint"},b=e("div",{class:"hint-title"},"Import / Export via the API",-1),C=t("This page details Importing and Exporting of Items as files via the no-code app. However, you can also "),E=t("Import"),k=t(" and "),L=t("Export"),S=t(" Items as files programmatically via the API."),A=e("h2",{id:"import-items"},[t("Import Items "),e("a",{class:"header-anchor",href:"#import-items"},"#")],-1),T=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Import Data From a File"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/imports-exports/imports-exports-20220415A/import-items-20220416A.mp4",type:"video/mp4"})],-1),M=e("p",null,"To import Items from a file, follow the steps below.",-1),D=e("ol",null,[e("li",null,[t("Navigate to the desired Module and Collection."),e("br"),t(" Note: the User Directory and File Library are each composed of just one Collection.")]),e("li",null,[t("Click "),e("strong",null,"\u201CImport / Export\u201D"),t(" in the Sidebar.")]),e("li",null,"Click into the import search box. A file browser will open."),e("li",null,[t("Select the desired file and click "),e("strong",null,"\u201Copen\u201D"),t(".")]),e("li",null,[t("Click "),e("strong",null,"\u201CStart Import\u201D"),t(" to import the Items.")])],-1),N=e("p",null,"The Items will now be in the Collection. The file itself will not be stored in the Directus Project.",-1),V=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Importing Relational Files"),e("p",null,"It is possible to import relational Field values as well. For this task, the User performing the import will need access permissions for the related Collection and a firm understanding of the relational data model.")],-1),B=e("h2",{id:"export-items"},[t("Export Items "),e("a",{class:"header-anchor",href:"#export-items"},"#")],-1),U=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Export Data to a File"},[e("source",{src:`https://cdn.directus.io/docs/v9/app-guide/imports-exports/imports-exports-20220415A/export-items-20220416A.mp4
|
|
2
|
-
`,type:"video/mp4"})],-1),O=e("p",null,[t("When exporting Items, the "),e("a",{href:"#export-items-menu"},"Export Items Menu"),t(" provides granular control over exactly which Items and Fields are exported, how they are exported, and where they are exported. To export Items, follow the steps below.")],-1),P=e("ol",null,[e("li",null,[t("Navigate to the desired Module and Collection."),e("br"),t(" Note: the User Directory and File Library are each composed of one Collection.")]),e("li",null,[t("Click "),e("strong",null,"\u201CImport / Export\u201D"),t(" in the Sidebar.")]),e("li",null,[t("Click "),e("strong",null,"\u201CExport Items\u201D"),t(" and the "),e("a",{href:"#export-items-menu"},"Export Items Menu"),t(" will appear.")]),e("li",null,"Choose the desired format: CSV, JSON or XML."),e("li",null,[e("strong",null,"Optional:"),t(" Configure any other export details as desired.")]),e("li",null,[t("Click "),e("span",{mi:"",btn:""},"download"),t(" to download the file.")])],-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Opening the file in Excel?"),e("p",null,"Export your file to CSV to seamlessly open in excel.")],-1),q=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Exporting to File Library"),e("p",null,"When downloading 2,500 or more Items, you will be required to download into the Directus Project\u2019s File Library. After exporting, go to the File Library to download your file locally.")],-1),W=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Exporting Relational Files"),e("p",null,"It is possible to export relational Field values. For this task, the User performing the export will need access permissions for the related Collection and a firm understanding of the relational data model.")],-1),J=e("h2",{id:"export-items-menu"},[t("Export Items Menu "),e("a",{class:"header-anchor",href:"#export-items-menu"},"#")],-1),R=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Export Data to a File"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/imports-exports/imports-exports-20220415A/export-items-menu-20220416A.mp4",type:"video/mp4"})],-1),X=e("p",null,"This menu provides granular control over exactly which Items and Fields are exported, how they are exported, and where they are exported.",-1),H=e("ul",null,[e("li",null,[e("strong",null,"Format"),t(" \u2014 Choose to export Items as CSV, JSON, or XML.")]),e("li",null,[e("strong",null,"Limit"),t(" \u2014 Set the maximum number of Items to be exported.")]),e("li",null,[e("strong",null,"Export Location"),t(" \u2014 Download the export file directly to your machine or to the File Library.")]),e("li",null,[e("strong",null,"Folder"),t(" \u2014 Choose the Folder to download to "),e("em",null,"(if export location is the Folder Library)"),t(".")]),e("li",null,[e("strong",null,"Sort Field"),t(" \u2014 Choose Field to sort Items by.")]),e("li",null,[e("strong",null,"Sort Direction"),t(" \u2014 Choose to sort Items in ascending or descending order.")]),e("li",null,[e("strong",null,"Full-Text Search"),t(" \u2014 Limit exported Items to ones which matched as search results.")]),e("li",null,[e("strong",null,"Filter"),t(" \u2014 Limit exported Items with a Filter.")]),e("li",null,[e("strong",null,"Fields"),t(" \u2014 Add, remove, and re-order the Item Fields that will be exported.")])],-1),Y=e("h2",{id:"file-assets-and-media"},[t("File Assets and Media "),e("a",{class:"header-anchor",href:"#file-assets-and-media"},"#")],-1),z=e("p",null,"Some Collections may directly or relationally include Fields referencing images, videos or other file types. It is not possible to import or export files with this utility.",-1),G=t("To import and export files, please see the "),K=t("File Library Module"),Q=t("."),Z=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"What does Import/Export do in the File Library?!"),e("p",null,[t("Import/Export handles Field Values associated with the file "),e("em",null,"(e.g. id, title, description, etc.)"),t(".")])],-1),ie="Import / Export",le=!1,se={name:"import-export",setup($,{expose:n}){const s={title:"Import / Export",modularExtension:!1};return n({frontmatter:s}),(ee,te)=>{const i=r("router-link"),a=r("docs-wrapper");return d(),p(a,{frontmatter:s},{default:o(()=>[e("div",c,[h,m,e("div",u,[_,e("p",null,[f,l(i,{to:"/docs/getting-started/glossary/#collections"},{default:o(()=>[x]),_:1}),g,l(i,{to:"/docs/getting-started/glossary/#items"},{default:o(()=>[y]),_:1}),I,l(i,{to:"/docs/getting-started/glossary/#fields"},{default:o(()=>[w]),_:1}),v])]),e("div",F,[b,e("p",null,[C,l(i,{to:"/docs/reference/system/utilities/#import-data-from-file"},{default:o(()=>[E]),_:1}),k,l(i,{to:"/docs/reference/system/utilities/#export-data-to-a-file"},{default:o(()=>[L]),_:1}),S])]),A,T,M,D,N,V,B,U,O,P,j,q,W,J,R,X,H,Y,z,e("p",null,[G,l(i,{to:"/docs/app/file-library/"},{default:o(()=>[K]),_:1}),Q]),Z])]),_:1})}}};export{se as default,le as modularExtension,ie as title};
|