@directus/app 9.12.0 → 9.12.1
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.9a1812c6.entry.js +1 -0
- package/dist/assets/accounts.08433099.js +1 -0
- package/dist/assets/active-line.b42e95d2.js +1 -0
- package/dist/assets/activity-log.fd558c9b.js +1 -0
- package/dist/assets/activity.0def80ca.js +80 -0
- package/dist/assets/apl.a10fee96.js +1 -0
- package/dist/assets/asciiarmor.3440160d.js +1 -0
- package/dist/assets/asn.1.bdf78f70.js +1 -0
- package/dist/assets/asterisk.88ae33f0.js +1 -0
- package/dist/assets/authentication.a6f04750.js +73 -0
- package/dist/assets/autorefresh.fa8b7b34.js +1 -0
- package/dist/assets/aws.3b1c64af.js +1 -0
- package/dist/assets/backing-directus.1ed89e33.js +1 -0
- package/dist/assets/brainfuck.af40cbfc.js +1 -0
- package/dist/assets/cli.5153aa86.js +4 -0
- package/dist/assets/cli.e8e2526b.js +19 -0
- package/dist/assets/clike.75f55953.js +1 -0
- package/dist/assets/clojure.f44f8182.js +1 -0
- package/dist/assets/cloudron.53c430b8.js +1 -0
- package/dist/assets/cmake.dc51a5f4.js +1 -0
- package/dist/assets/cobol.bd572fbc.js +1 -0
- package/dist/assets/codebase-overview.e9df94fc.js +1 -0
- package/dist/assets/coffeescript.903da3d2.js +1 -0
- package/dist/assets/collections.1c745e99.css +1 -0
- package/dist/assets/collections.2453db3a.js +106 -0
- package/dist/assets/collections.aa896b3f.js +2 -0
- package/dist/assets/commonlisp.0c024da5.js +1 -0
- package/dist/assets/config-options.b1233b4b.js +138 -0
- package/dist/assets/content.1b1e95cf.js +1 -0
- package/dist/assets/creating-extensions.bfd7c57c.js +11 -0
- package/dist/assets/crystal.80f7e1ba.js +1 -0
- package/dist/assets/css.eb89b9da.js +1 -0
- package/dist/assets/cypher.f649c40f.js +4 -0
- package/dist/assets/d.3e286089.js +1 -0
- package/dist/assets/dart.5b9bb9bb.js +1 -0
- package/dist/assets/data-model.0e360572.js +1 -0
- package/dist/assets/data-sharing.da96e52e.js +1 -0
- package/dist/assets/de-at.a1f7dd1d.js +1 -1
- package/dist/assets/de.a8c4aad1.js +1 -1
- package/dist/assets/diff.c63eafa7.js +1 -0
- package/dist/assets/digitalocean-app-platform.3412cb40.js +3 -0
- package/dist/assets/display-templates.915c0c5b.js +1 -0
- package/dist/assets/displays.99989c6d.js +49 -0
- package/dist/assets/django.3a6905fc.js +1 -0
- package/dist/assets/{docker.e74fbe37.js → docker.e1bb4205.js} +5 -5
- package/dist/assets/dockerfile.a9f614c8.js +1 -0
- package/dist/assets/documentation.788d4998.js +1 -0
- package/dist/assets/dtd.5b2d40ab.js +1 -0
- package/dist/assets/dylan.744cd79f.js +1 -0
- package/dist/assets/ebnf.6637a8f6.js +1 -0
- package/dist/assets/ecl.cdabfae6.js +1 -0
- package/dist/assets/eiffel.60b61e7f.js +1 -0
- package/dist/assets/elm.74b68fc8.js +1 -0
- package/dist/assets/email-templates.1f5ac335.js +2 -0
- package/dist/assets/endpoints.aaac7c81.js +27 -0
- package/dist/assets/erlang.d6cd5265.js +1 -0
- package/dist/assets/es-MX.956444f4.js +1 -0
- package/dist/assets/extensions.34c12005.js +12 -0
- package/dist/assets/factor.965cfdad.js +1 -0
- package/dist/assets/faq.89e68608.js +2 -0
- package/dist/assets/fcl.e515f605.js +1 -0
- package/dist/assets/fields.54985585.js +135 -0
- package/dist/assets/file-library.3e651030.js +1 -0
- package/dist/assets/files.064d5a35.js +187 -0
- package/dist/assets/filter-rules.e442e006.js +76 -0
- package/dist/assets/filters.3db1b044.js +1 -0
- package/dist/assets/{folders.5102c9ea.js → folders.0024d3d3.js} +20 -20
- package/dist/assets/forth.c62ab807.js +1 -0
- package/dist/assets/fortran.c0e428c5.js +1 -0
- package/dist/assets/gas.fd59e425.js +1 -0
- package/dist/assets/gcp.627205b5.js +60 -0
- package/dist/assets/gfm.8125a8e6.js +1 -0
- package/dist/assets/gherkin.c9a9f9d2.js +1 -0
- package/dist/assets/github-ci.abd39dcc.js +2 -0
- package/dist/assets/glossary.75ca2027.js +1 -0
- package/dist/assets/glossary.bf083fb1.js +1 -0
- package/dist/assets/go.31390264.js +1 -0
- package/dist/assets/groovy.c940d48b.js +1 -0
- package/dist/assets/haml.1a456af6.js +1 -0
- package/dist/assets/handlebars.d3c0e9e6.js +1 -0
- package/dist/assets/haskell-literate.06d0d330.js +1 -0
- package/dist/assets/haskell.f83a5b48.js +1 -0
- package/dist/assets/haxe.cf38bc86.js +1 -0
- package/dist/assets/hooks.eda18b02.js +60 -0
- package/dist/assets/htmlembedded.4765ab1f.js +1 -0
- package/dist/assets/htmlmixed.a4506ee0.js +1 -0
- package/dist/assets/http.cf2042b8.js +1 -0
- package/dist/assets/idl.2b562d7a.js +1 -0
- package/dist/assets/{iis.fc6aa5dd.js → iis.109e5a8a.js} +2 -2
- package/dist/assets/import-export.3da878a4.js +2 -0
- package/dist/assets/index.009353d9.js +1 -0
- package/dist/assets/index.05e20b6f.js +1 -0
- package/dist/assets/index.064c96df.js +1 -0
- package/dist/assets/index.08e6475d.js +1 -0
- package/dist/assets/index.0a4e8fad.js +1 -0
- package/dist/assets/index.131b4ee8.js +1 -0
- package/dist/assets/index.17ad666d.js +1 -0
- package/dist/assets/index.1a186179.js +1 -0
- package/dist/assets/index.1b3cf886.js +1 -1
- package/dist/assets/index.1d927fd3.js +1 -0
- package/dist/assets/index.1e0212f9.js +1 -0
- package/dist/assets/index.27da0362.js +1 -0
- package/dist/assets/index.2ff40292.js +1 -0
- package/dist/assets/index.35fb04b2.js +1 -0
- package/dist/assets/index.3acd783e.js +1 -0
- package/dist/assets/index.3c7e729b.js +1 -0
- package/dist/assets/index.40c42250.css +1 -0
- package/dist/assets/index.44b36a96.js +1 -0
- package/dist/assets/index.44c7ed90.js +1 -0
- package/dist/assets/index.4533ce42.js +1 -0
- package/dist/assets/index.48fd0edb.js +1 -0
- package/dist/assets/index.491a4003.js +1 -0
- package/dist/assets/index.4de2df6a.js +1 -0
- package/dist/assets/index.4ff10039.js +1 -0
- package/dist/assets/index.515f0cb5.js +1 -0
- package/dist/assets/index.5312378b.js +1 -0
- package/dist/assets/index.540a1c0d.js +1 -0
- package/dist/assets/index.5490bf54.js +1 -0
- package/dist/assets/index.54a49224.js +1 -0
- package/dist/assets/index.55f6227c.js +1 -0
- package/dist/assets/index.5d10078c.js +1 -0
- package/dist/assets/index.5e2cb31c.js +1 -0
- package/dist/assets/index.629b6c38.js +1 -0
- package/dist/assets/index.6687eb7d.js +1 -0
- package/dist/assets/index.6752521e.js +1 -0
- package/dist/assets/index.691d9c7a.js +1 -0
- package/dist/assets/index.70f6f88a.entry.js +3406 -0
- package/dist/assets/index.71e28483.js +1 -0
- package/dist/assets/index.734cf408.js +1 -0
- package/dist/assets/index.76212e14.js +1 -0
- package/dist/assets/index.788544c8.js +1 -0
- package/dist/assets/index.859a78cb.js +1 -0
- package/dist/assets/index.8c9bb9d2.js +1 -0
- package/dist/assets/index.8f901e72.js +1 -0
- package/dist/assets/index.90aad19e.js +1 -0
- package/dist/assets/index.921bf39b.js +1 -0
- package/dist/assets/index.9b23cd7f.js +1 -0
- package/dist/assets/index.9b42e31d.js +26 -0
- package/dist/assets/index.9fbcba2f.js +1 -0
- package/dist/assets/index.a0bc3d71.js +1 -0
- package/dist/assets/index.a40a776b.js +1 -0
- package/dist/assets/index.a9473e05.js +1 -0
- package/dist/assets/index.ae9b035a.js +1 -0
- package/dist/assets/index.b09321f5.js +1 -0
- package/dist/assets/index.b635a926.js +1 -0
- package/dist/assets/index.b871b7a5.js +1 -0
- package/dist/assets/index.b8baec6c.js +1 -0
- package/dist/assets/index.b955a1be.js +1 -0
- package/dist/assets/index.bb82940a.js +1 -0
- package/dist/assets/index.bbf0131f.js +1 -0
- package/dist/assets/index.bc32829f.js +1 -0
- package/dist/assets/index.bc3296ff.js +1 -0
- package/dist/assets/index.c219c9fd.js +1 -0
- package/dist/assets/index.c54243ff.js +1 -0
- package/dist/assets/index.c6ea1824.js +1 -0
- package/dist/assets/index.c91867d3.js +1 -0
- package/dist/assets/index.d911a640.js +1 -0
- package/dist/assets/index.db01bb54.js +1 -0
- package/dist/assets/index.ddbad0a0.js +1 -0
- package/dist/assets/index.e39c7e76.js +1 -0
- package/dist/assets/index.e7e17448.js +1 -0
- package/dist/assets/index.e9099679.js +1 -0
- package/dist/assets/index.e9faa1b7.js +1 -0
- package/dist/assets/index.ea326829.js +1 -0
- package/dist/assets/index.f334ad18.js +1 -0
- package/dist/assets/index.f5a62bca.js +1 -0
- package/dist/assets/index.f6a5906f.js +1 -0
- package/dist/assets/index.f6d90b7c.js +1 -0
- package/dist/assets/index.f715fb2c.js +1 -0
- package/dist/assets/index.f80921e7.js +1 -0
- package/dist/assets/index.fc7b1181.js +1 -0
- package/dist/assets/index.fd2a5a74.js +1 -0
- package/dist/assets/index.ff5502c6.js +1 -0
- package/dist/assets/index.ff5a189a.js +1 -0
- package/dist/assets/{input-rich-text-html.4dd91dd7.js → input-rich-text-html.1550fe06.js} +32 -32
- package/dist/assets/{input-rich-text-html.ef9358cf.css → input-rich-text-html.2d85a8a3.css} +1 -1
- package/dist/assets/insights.c8ed7c1c.js +1 -0
- package/dist/assets/installation.78c6d9f6.js +1 -0
- package/dist/assets/interfaces.9e145c45.js +46 -0
- package/dist/assets/introduction.2e6f5c1d.js +90 -0
- package/dist/assets/introduction.78a2a844.js +4 -0
- package/dist/assets/introduction.7c5efc8a.js +1 -0
- package/dist/assets/introduction.d5621d79.js +1 -0
- package/dist/assets/{items.4e295453.js → items.4205dfa0.js} +27 -27
- package/dist/assets/items.64ed9295.js +1 -0
- package/dist/assets/javascript-hint.29e9b67f.js +1 -0
- package/dist/assets/javascript.d2db845f.js +1 -0
- package/dist/assets/jinja2.f97723a0.js +1 -0
- package/dist/assets/jsx.3f2b01c1.js +1 -0
- package/dist/assets/julia.fa920089.js +1 -0
- package/dist/assets/layouts.3c14b583.js +54 -0
- package/dist/assets/layouts.ca8afd39.js +1 -0
- package/dist/assets/livescript.2ec2e5ab.js +1 -0
- package/dist/assets/localization.374b7427.js +1 -0
- package/dist/assets/lua.5e0c8497.js +1 -0
- package/dist/assets/manual.ab601c95.js +10 -0
- package/dist/assets/mark-selection.54726b3f.js +1 -0
- package/dist/assets/match-highlighter.218123e7.js +1 -0
- package/dist/assets/mathematica.df44764c.js +1 -0
- package/dist/assets/mbox.491dfb6c.js +1 -0
- package/dist/assets/migrations.8989fedc.js +19 -0
- package/dist/assets/mirc.a9dca563.js +1 -0
- package/dist/assets/mllike.0a469a43.js +1 -0
- package/dist/assets/modelica.306697a8.js +1 -0
- package/dist/assets/modules.17c944d1.js +69 -0
- package/dist/assets/mscgen.a45d586b.js +1 -0
- package/dist/assets/multiplex.26e09ed5.js +3 -0
- package/dist/assets/mumps.ae29c70e.js +1 -0
- package/dist/assets/nginx.52e6bfcd.js +1 -0
- package/dist/assets/notifications.33c688c9.js +153 -0
- package/dist/assets/nsis.5869c4bd.js +1 -0
- package/dist/assets/ntriples.c7dd54df.js +1 -0
- package/dist/assets/octave.ef49cef7.js +1 -0
- package/dist/assets/overlay.9a3d0cba.js +1 -0
- package/dist/assets/overview.3436365c.js +1 -0
- package/dist/assets/overview.623fafba.js +1 -0
- package/dist/assets/overview.dbebe94a.js +1 -0
- package/dist/assets/oz.6a13c27c.js +1 -0
- package/dist/assets/panels.385b173a.js +65 -0
- package/dist/assets/pascal.77947c82.js +1 -0
- package/dist/assets/pegjs.fb3674fc.js +1 -0
- package/dist/assets/perl.bd20c5e2.js +1 -0
- package/dist/assets/{permissions.c754088f.js → permissions.f84f8d42.js} +19 -19
- package/dist/assets/php.f7000a8d.js +1 -0
- package/dist/assets/pig.7044156f.js +1 -0
- package/dist/assets/pinia.256cc3da.entry.js +5 -0
- package/dist/assets/pl-PL.22d5965f.js +1 -0
- package/dist/assets/plesk.f7e3d5ef.js +27 -0
- package/dist/assets/powershell.d6251d29.js +1 -0
- package/dist/assets/presets-bookmarks.1b8ec70c.js +1 -0
- package/dist/assets/{presets.21984d83.js → presets.b1e8b6c1.js} +20 -20
- package/dist/assets/project-settings.d32669a9.js +1 -0
- package/dist/assets/projects.b0451bed.js +1 -0
- package/dist/assets/properties.21d46a91.js +1 -0
- package/dist/assets/protobuf.0595884b.js +1 -0
- package/dist/assets/pug.02047604.js +1 -0
- package/dist/assets/puppet.7c07ba75.js +1 -0
- package/dist/assets/python.fe6c7a24.js +1 -0
- package/dist/assets/q.bfdf1988.js +1 -0
- package/dist/assets/query.dbe0b56d.js +152 -0
- package/dist/assets/quickstart.01824cc9.js +9 -0
- package/dist/assets/quickstart.4d7c7736.js +20 -0
- package/dist/assets/r.d6b5ac21.js +1 -0
- package/dist/assets/relations.d29aa86d.js +115 -0
- package/dist/assets/relationships.c9c5db8a.js +55 -0
- package/dist/assets/revisions.2898106e.js +40 -0
- package/dist/assets/{roles.aa9ecdfc.js → roles.9fec37da.js} +21 -21
- package/dist/assets/rpm.92483469.js +1 -0
- package/dist/assets/rst.b2603799.js +1 -0
- package/dist/assets/ruby.0246dbd5.js +1 -0
- package/dist/assets/running-locally.811d0dcc.js +26 -0
- package/dist/assets/runtime-core.esm-bundler.b1f35d24.js +4 -0
- package/dist/assets/rust.dd8abd8d.js +1 -0
- package/dist/assets/sas.d26b2302.js +1 -0
- package/dist/assets/sass.a791aa27.js +1 -0
- package/dist/assets/scheme.ef2b1440.js +1 -0
- package/dist/assets/{sdk.c37a5fba.js → sdk.12cd7974.js} +48 -48
- package/dist/assets/security.8e2a8a41.js +1 -0
- package/dist/assets/{server.a0eeaade.js → server.9f12ae3e.js} +12 -12
- package/dist/assets/settings.149d1dff.js +1 -0
- package/dist/assets/settings.28abc1f0.js +51 -0
- package/dist/assets/shell.2f3bc735.js +1 -0
- package/dist/assets/show-hint.6fa4d537.js +1 -0
- package/dist/assets/sieve.99fca314.js +1 -0
- package/dist/assets/simple.0e90a38e.js +1 -0
- package/dist/assets/slim.92d997b6.js +1 -0
- package/dist/assets/smalltalk.a9b3ffec.js +1 -0
- package/dist/assets/smarty.c54a652c.js +1 -0
- package/dist/assets/solr.1356a877.js +1 -0
- package/dist/assets/soy.e1b19eef.js +1 -0
- package/dist/assets/sparql.1335f7a5.js +1 -0
- package/dist/assets/spreadsheet.e9096343.js +1 -0
- package/dist/assets/sql.ac45a460.js +1 -0
- package/dist/assets/{sso-examples.6c849325.js → sso-examples.b52061be.js} +12 -12
- package/dist/assets/sso.64b2717b.js +22 -0
- package/dist/assets/stex.fb7fd990.js +1 -0
- package/dist/assets/stylus.d0281b2a.js +1 -0
- package/dist/assets/support.94e3734b.js +1 -0
- package/dist/assets/swift.a9fd2d64.js +1 -0
- package/dist/assets/tcl.8f7bdfb5.js +1 -0
- package/dist/assets/teams.9ff14f8f.js +1 -0
- package/dist/assets/textile.ae199003.js +1 -0
- package/dist/assets/themes.df7ec485.js +5 -0
- package/dist/assets/tiddlywiki.52caa0ed.js +1 -0
- package/dist/assets/tiki.831b9315.js +1 -0
- package/dist/assets/toml.6f660b6b.js +1 -0
- package/dist/assets/tornado.01563722.js +1 -0
- package/dist/assets/translations.5191ab7c.js +1 -0
- package/dist/assets/troff.f5f797f2.js +1 -0
- package/dist/assets/ttcn-cfg.a6927435.js +1 -0
- package/dist/assets/ttcn.24c6b925.js +1 -0
- package/dist/assets/turtle.d0e831a8.js +1 -0
- package/dist/assets/twig.d5e90842.js +1 -0
- package/dist/assets/ubuntu.f4c21886.js +11 -0
- package/dist/assets/upgrades-migrations.15498a47.js +1 -0
- package/dist/assets/use-sync.ded22f96.js +28 -0
- package/dist/assets/user-directory.47c8beb2.js +1 -0
- package/dist/assets/users-roles-permissions.005388fa.js +1 -0
- package/dist/assets/users.84251ab9.js +252 -0
- package/dist/assets/{utilities.b9c2a9d8.js → utilities.26e6a9e8.js} +12 -12
- package/dist/assets/vb.bb33c7a5.js +1 -0
- package/dist/assets/vbscript.d8f8d95e.js +1 -0
- package/dist/assets/velocity.26721ec5.js +1 -0
- package/dist/assets/verilog.24512a86.js +1 -0
- package/dist/assets/vhdl.6e64552d.js +1 -0
- package/dist/assets/vue-i18n.ecb0af35.entry.js +31 -0
- package/dist/assets/vue-router.8987d576.entry.js +5 -0
- package/dist/assets/vue.1f4d921a.entry.js +1 -0
- package/dist/assets/vue.4450af40.js +1 -0
- package/dist/assets/vue.runtime.esm-bundler.ac4ff7af.js +1 -0
- package/dist/assets/wast.79f64b4c.js +1 -0
- package/dist/assets/{webhooks.1a2e06f9.js → webhooks.4eeecb7d.js} +20 -20
- package/dist/assets/webhooks.61b11e7d.js +1 -0
- package/dist/assets/webidl.860cea4e.js +1 -0
- package/dist/assets/xquery.23f4fa34.js +1 -0
- package/dist/assets/yacas.0d60e6b0.js +1 -0
- package/dist/assets/yaml-frontmatter.70ea956b.js +1 -0
- package/dist/assets/yaml.9d5c3ac9.js +1 -0
- package/dist/assets/z80.527b7cb8.js +1 -0
- package/dist/index.html +8 -5
- package/package.json +20 -20
- package/dist/assets/@directus_extensions-sdk.1c0f07ca.entry.js +0 -1
- package/dist/assets/accounts.edeb6689.js +0 -1
- package/dist/assets/active-line.0636efc2.js +0 -1
- package/dist/assets/activity-log.ccf294c8.js +0 -1
- package/dist/assets/activity.499754f1.js +0 -80
- package/dist/assets/apl.7a44de96.js +0 -1
- package/dist/assets/asciiarmor.5c853147.js +0 -1
- package/dist/assets/asn.1.6b4c88d3.js +0 -1
- package/dist/assets/asterisk.8e49b2d4.js +0 -1
- package/dist/assets/authentication.b275d277.js +0 -73
- package/dist/assets/autorefresh.a124d3d5.js +0 -1
- package/dist/assets/aws.58f13022.js +0 -1
- package/dist/assets/backing-directus.b130191d.js +0 -1
- package/dist/assets/brainfuck.40978cfa.js +0 -1
- package/dist/assets/cli.0b1af962.js +0 -4
- package/dist/assets/cli.7f7160a6.js +0 -19
- package/dist/assets/clike.00b06ab7.js +0 -1
- package/dist/assets/clojure.10c02a8f.js +0 -1
- package/dist/assets/cloudron.48238a4e.js +0 -1
- package/dist/assets/cmake.d18a828d.js +0 -1
- package/dist/assets/cobol.4a07e81a.js +0 -1
- package/dist/assets/codebase-overview.c751de28.js +0 -1
- package/dist/assets/coffeescript.299e7b17.js +0 -1
- package/dist/assets/collections.8d532d78.js +0 -106
- package/dist/assets/collections.fe434f3d.js +0 -2
- package/dist/assets/commonlisp.5d3e08ca.js +0 -1
- package/dist/assets/config-options.0cd2f84e.js +0 -138
- package/dist/assets/content.07663d5f.js +0 -1
- package/dist/assets/creating-extensions.a48d5b6f.js +0 -11
- package/dist/assets/crystal.e8ccc500.js +0 -1
- package/dist/assets/css.e214430c.js +0 -1
- package/dist/assets/cypher.93c35226.js +0 -4
- package/dist/assets/d.45452c03.js +0 -1
- package/dist/assets/dart.6fca9dfe.js +0 -1
- package/dist/assets/data-model.5b650232.js +0 -1
- package/dist/assets/data-sharing.4ba1e153.js +0 -1
- package/dist/assets/diff.7a671810.js +0 -1
- package/dist/assets/digitalocean-app-platform.a3805812.js +0 -3
- package/dist/assets/display-templates.ef1705ab.js +0 -1
- package/dist/assets/displays.29c9a9ab.js +0 -49
- package/dist/assets/django.70792d4e.js +0 -1
- package/dist/assets/dockerfile.4d9813c1.js +0 -1
- package/dist/assets/documentation.74a793e9.js +0 -1
- package/dist/assets/dtd.2b6ca795.js +0 -1
- package/dist/assets/dylan.bf03afb2.js +0 -1
- package/dist/assets/ebnf.f0b8dcf5.js +0 -1
- package/dist/assets/ecl.fb54f12a.js +0 -1
- package/dist/assets/eiffel.aa01c1cf.js +0 -1
- package/dist/assets/elm.7007e9b9.js +0 -1
- package/dist/assets/email-templates.ef4839b6.js +0 -2
- package/dist/assets/endpoints.84b6faf9.js +0 -27
- package/dist/assets/erlang.801fa573.js +0 -1
- package/dist/assets/es-MX.6a8efcab.js +0 -1
- package/dist/assets/extensions.f89cb4f9.js +0 -12
- package/dist/assets/factor.f3fd82cf.js +0 -1
- package/dist/assets/faq.5f488978.js +0 -2
- package/dist/assets/fcl.ccf78194.js +0 -1
- package/dist/assets/fields.f711b1ce.js +0 -135
- package/dist/assets/file-library.30569134.js +0 -1
- package/dist/assets/files.8a404c59.js +0 -187
- package/dist/assets/filter-rules.79bac758.js +0 -76
- package/dist/assets/filters.efeb8b64.js +0 -1
- package/dist/assets/forth.3c037035.js +0 -1
- package/dist/assets/fortran.b05b78ad.js +0 -1
- package/dist/assets/gas.c36c196e.js +0 -1
- package/dist/assets/gcp.b10d08b2.js +0 -60
- package/dist/assets/gfm.4af9c8c0.js +0 -1
- package/dist/assets/gherkin.102ec9b3.js +0 -1
- package/dist/assets/github-ci.b23bdb51.js +0 -2
- package/dist/assets/glossary.08aaa09a.js +0 -1
- package/dist/assets/glossary.2618dbcd.js +0 -1
- package/dist/assets/go.319184dc.js +0 -1
- package/dist/assets/groovy.219a3f40.js +0 -1
- package/dist/assets/haml.c2cec3e9.js +0 -1
- package/dist/assets/handlebars.c1ae3040.js +0 -1
- package/dist/assets/haskell-literate.34e39e13.js +0 -1
- package/dist/assets/haskell.cb6719a1.js +0 -1
- package/dist/assets/haxe.d5e820fa.js +0 -1
- package/dist/assets/hooks.d0a9236e.js +0 -60
- package/dist/assets/htmlembedded.b86f1a8b.js +0 -1
- package/dist/assets/htmlmixed.9027b596.js +0 -1
- package/dist/assets/http.dddc47fa.js +0 -1
- package/dist/assets/idl.c0519b30.js +0 -1
- package/dist/assets/import-export.3bcbaa5a.js +0 -2
- package/dist/assets/index.008f8280.js +0 -1
- package/dist/assets/index.02e0a0ac.js +0 -1
- package/dist/assets/index.08c47c7e.js +0 -1
- package/dist/assets/index.09f9fbcc.js +0 -1
- package/dist/assets/index.0aa19433.js +0 -1
- package/dist/assets/index.113f40e2.js +0 -1
- package/dist/assets/index.121f2a8c.js +0 -1
- package/dist/assets/index.15d64410.js +0 -1
- package/dist/assets/index.1913d925.js +0 -1
- package/dist/assets/index.1cdf4945.js +0 -1
- package/dist/assets/index.1ee7fd69.js +0 -1
- package/dist/assets/index.25ba1dd6.js +0 -1
- package/dist/assets/index.25c51012.js +0 -1
- package/dist/assets/index.27dda6e3.js +0 -26
- package/dist/assets/index.2a4455f2.js +0 -1
- package/dist/assets/index.2bc6ec6e.js +0 -1
- package/dist/assets/index.2d56f924.js +0 -1
- package/dist/assets/index.35fd1f62.js +0 -1
- package/dist/assets/index.36b203bd.js +0 -1
- package/dist/assets/index.39c20f1a.js +0 -1
- package/dist/assets/index.3f0e45c1.js +0 -1
- package/dist/assets/index.3fa2dd41.js +0 -1
- package/dist/assets/index.48964803.js +0 -1
- package/dist/assets/index.4ad01be0.js +0 -1
- package/dist/assets/index.511997cb.js +0 -1
- package/dist/assets/index.53f3d9fa.js +0 -1
- package/dist/assets/index.5679f5a7.js +0 -1
- package/dist/assets/index.57fe3e27.js +0 -1
- package/dist/assets/index.591b77a6.js +0 -1
- package/dist/assets/index.5add30a0.js +0 -1
- package/dist/assets/index.5e03ed98.js +0 -1
- package/dist/assets/index.685be3df.js +0 -1
- package/dist/assets/index.6868b6d6.js +0 -1
- package/dist/assets/index.6ad356db.js +0 -1
- package/dist/assets/index.6c408ae4.entry.js +0 -547
- package/dist/assets/index.6ddc4fdc.js +0 -1
- package/dist/assets/index.6fe5d0b3.js +0 -1
- package/dist/assets/index.713eb83a.js +0 -1
- package/dist/assets/index.75c64623.js +0 -1
- package/dist/assets/index.7aed9a74.js +0 -1
- package/dist/assets/index.7c788990.js +0 -1
- package/dist/assets/index.8287e0f2.js +0 -1
- package/dist/assets/index.86d0c122.js +0 -1
- package/dist/assets/index.8701e013.js +0 -1
- package/dist/assets/index.876e2150.js +0 -1
- package/dist/assets/index.87f07d63.js +0 -1
- package/dist/assets/index.8a9126c0.js +0 -1
- package/dist/assets/index.9020f7f8.js +0 -1
- package/dist/assets/index.95a38652.js +0 -1
- package/dist/assets/index.967c699a.js +0 -1
- package/dist/assets/index.9c19b896.js +0 -1
- package/dist/assets/index.9d085155.js +0 -1
- package/dist/assets/index.9d19e89b.css +0 -1
- package/dist/assets/index.a2dcf3d3.js +0 -1
- package/dist/assets/index.a33e3a0f.js +0 -1
- package/dist/assets/index.a3994e3e.js +0 -1
- package/dist/assets/index.a4a0cf79.js +0 -1
- package/dist/assets/index.a9130ef3.js +0 -1
- package/dist/assets/index.a92db738.js +0 -1
- package/dist/assets/index.a939892c.js +0 -1
- package/dist/assets/index.aaef5d37.js +0 -1
- package/dist/assets/index.b94caa53.js +0 -1
- package/dist/assets/index.be817c86.js +0 -1
- package/dist/assets/index.bea565ce.js +0 -1
- package/dist/assets/index.beaf92cf.js +0 -1
- package/dist/assets/index.c1202cf2.js +0 -1
- package/dist/assets/index.c3b8bf08.js +0 -1
- package/dist/assets/index.c64d544a.js +0 -1
- package/dist/assets/index.caf0f908.js +0 -1
- package/dist/assets/index.cbab03d1.js +0 -1
- package/dist/assets/index.cc9ba44d.js +0 -1
- package/dist/assets/index.ce185aa0.js +0 -1
- package/dist/assets/index.d1676f89.js +0 -1
- package/dist/assets/index.da1ac686.js +0 -1
- package/dist/assets/index.df9b999e.js +0 -1
- package/dist/assets/index.e4754ab9.js +0 -1
- package/dist/assets/index.e629cf0e.js +0 -1
- package/dist/assets/index.e6be0eb0.js +0 -1
- package/dist/assets/index.ec867eba.js +0 -1
- package/dist/assets/index.f0af50e7.js +0 -1
- package/dist/assets/index.f54461df.js +0 -1
- package/dist/assets/index.f7d9fffc.js +0 -1
- package/dist/assets/index.fad2fd5d.js +0 -1
- package/dist/assets/insights.36c270c0.js +0 -1
- package/dist/assets/installation.16ae0771.js +0 -1
- package/dist/assets/interfaces.b5cebf09.js +0 -46
- package/dist/assets/introduction.04bbf522.js +0 -90
- package/dist/assets/introduction.1cc62f08.js +0 -1
- package/dist/assets/introduction.33560106.js +0 -4
- package/dist/assets/introduction.70bf2d81.js +0 -1
- package/dist/assets/items.83b34697.js +0 -1
- package/dist/assets/javascript-hint.620ad47b.js +0 -1
- package/dist/assets/javascript.22a42c19.js +0 -1
- package/dist/assets/jinja2.0b1cb0bb.js +0 -1
- package/dist/assets/jsx.248607cc.js +0 -1
- package/dist/assets/julia.2162bdbd.js +0 -1
- package/dist/assets/layouts.4f3cc3e7.js +0 -54
- package/dist/assets/layouts.7ced46fd.js +0 -1
- package/dist/assets/livescript.3ddfeda6.js +0 -1
- package/dist/assets/localization.e9668093.js +0 -1
- package/dist/assets/lua.a305cd56.js +0 -1
- package/dist/assets/manual.0e28cbc4.js +0 -10
- package/dist/assets/mark-selection.7b5a6fc9.js +0 -1
- package/dist/assets/match-highlighter.873d12a5.js +0 -1
- package/dist/assets/mathematica.01c3553a.js +0 -1
- package/dist/assets/mbox.22a8b245.js +0 -1
- package/dist/assets/migrations.7147c537.js +0 -19
- package/dist/assets/mirc.fa73561d.js +0 -1
- package/dist/assets/mllike.4c54ebfa.js +0 -1
- package/dist/assets/modelica.07339979.js +0 -1
- package/dist/assets/modules.bfb7199d.js +0 -69
- package/dist/assets/mscgen.686cc266.js +0 -1
- package/dist/assets/multiplex.a88458b2.js +0 -3
- package/dist/assets/mumps.003d0d45.js +0 -1
- package/dist/assets/nginx.dcba875a.js +0 -1
- package/dist/assets/notifications.78fe69c9.js +0 -153
- package/dist/assets/nsis.a2c211d0.js +0 -1
- package/dist/assets/ntriples.4e06baf8.js +0 -1
- package/dist/assets/octave.c6583f11.js +0 -1
- package/dist/assets/overlay.742dc1cd.js +0 -1
- package/dist/assets/overview.28df1146.js +0 -1
- package/dist/assets/overview.508f215d.js +0 -1
- package/dist/assets/overview.97626817.js +0 -1
- package/dist/assets/oz.afa3546c.js +0 -1
- package/dist/assets/panels.89c0ed45.js +0 -65
- package/dist/assets/pascal.8941c2f2.js +0 -1
- package/dist/assets/pegjs.3aee5930.js +0 -1
- package/dist/assets/perl.3625c222.js +0 -1
- package/dist/assets/php.4cdaa752.js +0 -1
- package/dist/assets/pig.21fe63de.js +0 -1
- package/dist/assets/pinia.70349f0e.entry.js +0 -1
- package/dist/assets/pl-PL.5a1f6a70.js +0 -1
- package/dist/assets/plesk.af9c7c77.js +0 -27
- package/dist/assets/powershell.cfe96af1.js +0 -1
- package/dist/assets/presets-bookmarks.e7d33809.js +0 -1
- package/dist/assets/project-settings.d98ebcb5.js +0 -1
- package/dist/assets/projects.06f11c9e.js +0 -1
- package/dist/assets/properties.90e293bc.js +0 -1
- package/dist/assets/protobuf.19a9e9b8.js +0 -1
- package/dist/assets/pug.8fdd6886.js +0 -1
- package/dist/assets/puppet.6dfeb6da.js +0 -1
- package/dist/assets/python.e0245f5c.js +0 -1
- package/dist/assets/q.d3d8a6a4.js +0 -1
- package/dist/assets/query.8828d31d.js +0 -152
- package/dist/assets/quickstart.26991a56.js +0 -9
- package/dist/assets/quickstart.60decafe.js +0 -20
- package/dist/assets/r.09038281.js +0 -1
- package/dist/assets/relations.29fed98c.js +0 -115
- package/dist/assets/relationships.9b51c50f.js +0 -55
- package/dist/assets/revisions.0f19e955.js +0 -40
- package/dist/assets/rpm.881b5f64.js +0 -1
- package/dist/assets/rst.b571a0d9.js +0 -1
- package/dist/assets/ruby.83d0f6e3.js +0 -1
- package/dist/assets/running-locally.261a8137.js +0 -26
- package/dist/assets/rust.8eb02a00.js +0 -1
- package/dist/assets/sas.1c3e0687.js +0 -1
- package/dist/assets/sass.76cf8437.js +0 -1
- package/dist/assets/scheme.4fa8c610.js +0 -1
- package/dist/assets/security.ed33172c.js +0 -1
- package/dist/assets/settings.d5f90d4f.js +0 -51
- package/dist/assets/settings.fd4e15aa.js +0 -1
- package/dist/assets/shell.c82f9c19.js +0 -1
- package/dist/assets/show-hint.40044b34.js +0 -1
- package/dist/assets/sieve.55ac0753.js +0 -1
- package/dist/assets/simple.96f65f94.js +0 -1
- package/dist/assets/slim.e70a287c.js +0 -1
- package/dist/assets/smalltalk.d09dc24d.js +0 -1
- package/dist/assets/smarty.8ea9900c.js +0 -1
- package/dist/assets/solr.a026a0e6.js +0 -1
- package/dist/assets/soy.5034b90a.js +0 -1
- package/dist/assets/sparql.756dd255.js +0 -1
- package/dist/assets/spreadsheet.ec5c0c2e.js +0 -1
- package/dist/assets/sql.ec917110.js +0 -1
- package/dist/assets/sso.9920cf75.js +0 -22
- package/dist/assets/stex.d0b9833b.js +0 -1
- package/dist/assets/stylus.8b561261.js +0 -1
- package/dist/assets/support.b7301715.js +0 -1
- package/dist/assets/swift.1654ac84.js +0 -1
- package/dist/assets/tcl.b39e3c47.js +0 -1
- package/dist/assets/teams.7d07ab3c.js +0 -1
- package/dist/assets/textile.f922c3fe.js +0 -1
- package/dist/assets/themes.a5e50284.js +0 -5
- package/dist/assets/tiddlywiki.cb8704a6.js +0 -1
- package/dist/assets/tiki.088d0dec.js +0 -1
- package/dist/assets/toml.4bc9ea0d.js +0 -1
- package/dist/assets/tornado.b19655d1.js +0 -1
- package/dist/assets/translations.cd3858e6.js +0 -1
- package/dist/assets/troff.3a27423f.js +0 -1
- package/dist/assets/ttcn-cfg.66931016.js +0 -1
- package/dist/assets/ttcn.4b670503.js +0 -1
- package/dist/assets/turtle.8a998017.js +0 -1
- package/dist/assets/twig.2e58d76f.js +0 -1
- package/dist/assets/ubuntu.b8abc8f2.js +0 -11
- package/dist/assets/upgrades-migrations.5d6e809a.js +0 -1
- package/dist/assets/use-sync.18016d01.js +0 -1
- package/dist/assets/user-directory.370a7f49.js +0 -1
- package/dist/assets/users-roles-permissions.7f9a42f3.js +0 -1
- package/dist/assets/users.b4781411.js +0 -252
- package/dist/assets/vb.f5e6afca.js +0 -1
- package/dist/assets/vbscript.c44059f4.js +0 -1
- package/dist/assets/velocity.99ae445e.js +0 -1
- package/dist/assets/vendor.9387af12.css +0 -1
- package/dist/assets/vendor.f6090249.js +0 -2939
- package/dist/assets/verilog.75ff9f03.js +0 -1
- package/dist/assets/vhdl.e0f4e9d6.js +0 -1
- package/dist/assets/vue-i18n.4c1cb94b.entry.js +0 -1
- package/dist/assets/vue-router.d21957c3.entry.js +0 -1
- package/dist/assets/vue.a6974133.js +0 -1
- package/dist/assets/vue.deaebe46.entry.js +0 -1
- package/dist/assets/wast.9a32ecc0.js +0 -1
- package/dist/assets/webhooks.8a69b405.js +0 -1
- package/dist/assets/webidl.c677ed4a.js +0 -1
- package/dist/assets/xquery.766f7ffc.js +0 -1
- package/dist/assets/yacas.4cab11b4.js +0 -1
- package/dist/assets/yaml-frontmatter.3fc182ba.js +0 -1
- package/dist/assets/yaml.14967251.js +0 -1
- package/dist/assets/z80.ea9cb3dc.js +0 -1
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import{w as s,y as i,z as c,A as t,E as e,C as h,W as l}from"./vendor.f6090249.js";const d={class:"markdown-body"},p={class:"two-up"},u={class:"left"},_=l("What data is linked to what other data. Allows you to assign authors to articles, products to sales, and whatever other structures you can think of. "),g=l("Learn more about Relationships"),f=l("."),m=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-relation-object"},"The Relation Object")]),e("li",null,[e("a",{href:"#list-relations"},"List relations")]),e("li",null,[e("a",{href:"#list-relations-in-collection"},"List relations in collection")]),e("li",null,[e("a",{href:"#retrieve-a-relation"},"Retrieve a relation")]),e("li",null,[e("a",{href:"#create-a-relation"},"Create a Relation")]),e("li",null,[e("a",{href:"#update-a-relation"},"Update a Relation")]),e("li",null,[e("a",{href:"#delete-a-relation"},"Delete a Relation")])])])])],-1),y=e("hr",null,null,-1),j=e("h2",{id:"the-relation-object"},[l("The Relation Object "),e("a",{class:"header-anchor",href:"#the-relation-object"},"#")],-1),b=e("div",{class:"two-up"},[e("div",{class:"left"},[e("div",{class:"definitions"},[e("p",null,[e("code",null,"collection"),l(),e("strong",null,"string"),e("br"),l(" Name of the collection. This matches the table name in the database.")]),e("p",null,[e("code",null,"field"),l(),e("strong",null,"string"),e("br"),l(" Name of the field that holds the related primary key. This matches the column name in the database.")]),e("p",null,[e("code",null,"related_collection"),l(),e("strong",null,"string"),e("br"),l(" Name of the related collection. This matches the table name in the database.")])]),e("h4",{id:"meta"},[l("Meta "),e("a",{class:"header-anchor",href:"#meta"},"#")]),e("p",null,"Directus metadata. Used to enable non-database relationship types"),e("div",{class:"definitions"},[e("p",null,[e("code",null,"id"),l(),e("strong",null,"integer"),e("br"),l(" Primary key of the metadata row in "),e("code",null,"directus_relations"),l(".")]),e("p",null,[e("code",null,"many_collection"),l(),e("strong",null,"string"),e("br"),l(" Name of the collection. Matches the top level "),e("code",null,"collection"),l(" field.")]),e("p",null,[e("code",null,"many_field"),l(),e("strong",null,"string"),e("br"),l(" Name of the field. Matches the top level "),e("code",null,"field"),l(" field.")]),e("p",null,[e("code",null,"one_collection"),l(),e("strong",null,"string"),e("br"),l(" Name of the related collection. Matches the top level "),e("code",null,"related_collection"),l(" field.")]),e("p",null,[e("code",null,"one_field"),l(),e("strong",null,"string"),e("br"),l(" Name of the one to many field on the other side of the relation.")]),e("p",null,[e("code",null,"one_allowed_collections"),l(),e("strong",null,"string"),e("br"),l(" What collections are allowed to be used in a many-to-any context.")]),e("p",null,[e("code",null,"one_collection_field"),l(),e("strong",null,"string"),e("br"),l(" Field that holds the collection name in a many-to-any context.")]),e("p",null,[e("code",null,"one_deselect_action"),l(),e("strong",null,"nullify | delete"),e("br"),l(" Whether to nullify or delete related one-to-many records.")]),e("p",null,[e("code",null,"sort_field"),l(),e("strong",null,"string"),e("br"),l(" What field is used to hold the sort field.")]),e("p",null,[e("code",null,"junction_field"),l(),e("strong",null,"string"),e("br"),l(" What field connects two relations in a many-to-many (o2m-m2o) context.")])]),e("h4",{id:"schema"},[l("Schema "),e("a",{class:"header-anchor",href:"#schema"},"#")]),e("p",null,"\u201CRaw\u201D database information. Based on the database vendor used, different information might be returned. The following are available for all drivers."),e("div",{class:"definitions"},[e("p",null,[e("code",null,"table"),l(),e("strong",null,"string"),e("br"),l(" The table name.")]),e("p",null,[e("code",null,"column"),l(),e("strong",null,"string"),e("br"),l(" The column name.")]),e("p",null,[e("code",null,"foreign_key_table"),l(),e("strong",null,"string"),e("br"),l(" Related table name.")]),e("p",null,[e("code",null,"foreign_key_column"),l(),e("strong",null,"string"),e("br"),l(" Related column name.")]),e("p",null,[e("code",null,"constraint_name"),l(),e("strong",null,"string"),e("br"),l(" Name for the foreign key constraint.")]),e("p",null,[e("code",null,"on_update"),l(),e("strong",null,"string"),e("br"),l(" Update trigger for the foreign key constraint.")]),e("p",null,[e("code",null,"on_delete"),l(),e("strong",null,"string"),e("br"),l(" Delete trigger for the foreign key constraint.")])])]),e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[l(`{
|
|
2
|
-
`),e("span",{class:"hljs-attr"},'"collection"'),l(": "),e("span",{class:"hljs-string"},'"about_us"'),l(`,
|
|
3
|
-
`),e("span",{class:"hljs-attr"},'"field"'),l(": "),e("span",{class:"hljs-string"},'"logo"'),l(`,
|
|
4
|
-
`),e("span",{class:"hljs-attr"},'"related_collection"'),l(": "),e("span",{class:"hljs-string"},'"directus_files"'),l(`,
|
|
5
|
-
`),e("span",{class:"hljs-attr"},'"schema"'),l(`: {
|
|
6
|
-
`),e("span",{class:"hljs-attr"},'"table"'),l(": "),e("span",{class:"hljs-string"},'"about_us"'),l(`,
|
|
7
|
-
`),e("span",{class:"hljs-attr"},'"column"'),l(": "),e("span",{class:"hljs-string"},'"logo"'),l(`,
|
|
8
|
-
`),e("span",{class:"hljs-attr"},'"foreign_key_table"'),l(": "),e("span",{class:"hljs-string"},'"directus_files"'),l(`,
|
|
9
|
-
`),e("span",{class:"hljs-attr"},'"foreign_key_column"'),l(": "),e("span",{class:"hljs-string"},'"id"'),l(`,
|
|
10
|
-
`),e("span",{class:"hljs-attr"},'"constraint_name"'),l(": "),e("span",{class:"hljs-string"},'"about_us_logo_foreign"'),l(`,
|
|
11
|
-
`),e("span",{class:"hljs-attr"},'"on_update"'),l(": "),e("span",{class:"hljs-string"},'"NO ACTION"'),l(`,
|
|
12
|
-
`),e("span",{class:"hljs-attr"},'"on_delete"'),l(": "),e("span",{class:"hljs-string"},'"SET NULL"'),l(`
|
|
13
|
-
},
|
|
14
|
-
`),e("span",{class:"hljs-attr"},'"meta"'),l(`: {
|
|
15
|
-
`),e("span",{class:"hljs-attr"},'"id"'),l(": "),e("span",{class:"hljs-number"},"1"),l(`,
|
|
16
|
-
`),e("span",{class:"hljs-attr"},'"junction_field"'),l(": "),e("span",{class:"hljs-literal"},"null"),l(`,
|
|
17
|
-
`),e("span",{class:"hljs-attr"},'"many_collection"'),l(": "),e("span",{class:"hljs-string"},'"about_us"'),l(`,
|
|
18
|
-
`),e("span",{class:"hljs-attr"},'"many_field"'),l(": "),e("span",{class:"hljs-string"},'"logo"'),l(`,
|
|
19
|
-
`),e("span",{class:"hljs-attr"},'"one_allowed_collections"'),l(": "),e("span",{class:"hljs-literal"},"null"),l(`,
|
|
20
|
-
`),e("span",{class:"hljs-attr"},'"one_collection"'),l(": "),e("span",{class:"hljs-string"},'"directus_files"'),l(`,
|
|
21
|
-
`),e("span",{class:"hljs-attr"},'"one_collection_field"'),l(": "),e("span",{class:"hljs-literal"},"null"),l(`,
|
|
22
|
-
`),e("span",{class:"hljs-attr"},'"one_deselect_action"'),l(": "),e("span",{class:"hljs-string"},'"nullify"'),l(`,
|
|
23
|
-
`),e("span",{class:"hljs-attr"},'"one_field"'),l(": "),e("span",{class:"hljs-literal"},"null"),l(`,
|
|
24
|
-
`),e("span",{class:"hljs-attr"},'"sort_field"'),l(": "),e("span",{class:"hljs-literal"},"null"),l(`
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
`)])])])],-1),q=e("hr",null,null,-1),v=e("h2",{id:"list-relations"},[l("List relations "),e("a",{class:"header-anchor",href:"#list-relations"},"#")],-1),x=e("p",null,"List all relations that exist in Directus.",-1),w=e("div",{class:"two-up"},[e("div",{class:"left"},[e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Permissions"),e("p",null,"The data returned in this endpoint will be filtered based on the user\u2019s permissions. For example, relations that apply to a collection that the current user doesn\u2019t have access to are stripped out.")]),e("h3",{id:"query-parameters"},[l("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters"},"#")]),e("p",null,"Doesn\u2019t support any query parameters."),e("h3",{id:"returns"},[l("Returns "),e("a",{class:"header-anchor",href:"#returns"},"#")]),e("p",null,[l("Array of "),e("a",{href:"#the-relation-object"},"relation objects"),l(". If no items are available, data will be an empty array.")])]),e("div",{class:"right"},[e("h3",{id:"rest-api"},[l("REST API "),e("a",{class:"header-anchor",href:"#rest-api"},"#")]),e("pre",null,[e("code",null,`GET /relations
|
|
28
|
-
`)]),e("h3",{id:"graphql"},[l("GraphQL "),e("a",{class:"header-anchor",href:"#graphql"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
|
|
29
|
-
`)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),l(` {
|
|
30
|
-
relations: [directus_relations]
|
|
31
|
-
}
|
|
32
|
-
`)])]),e("h5",{id:"example"},[l("Example "),e("a",{class:"header-anchor",href:"#example"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"query"),l(` {
|
|
33
|
-
relations {
|
|
34
|
-
collection
|
|
35
|
-
field
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
`)])])])],-1),T=e("hr",null,null,-1),E=e("h2",{id:"list-relations-in-collection"},[l("List relations in collection "),e("a",{class:"header-anchor",href:"#list-relations-in-collection"},"#")],-1),R=e("p",null,"List all relations that exist in a given collection.",-1),k=e("div",{class:"two-up"},[e("div",{class:"left"},[e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Permissions"),e("p",null,"The data returned in this endpoint will be filtered based on the user\u2019s permissions. For example, relations that apply to a collection that the current user doesn\u2019t have access to are stripped out.")]),e("h3",{id:"query-parameters-2"},[l("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-2"},"#")]),e("p",null,"Doesn\u2019t support any query parameters."),e("h3",{id:"returns-2"},[l("Returns "),e("a",{class:"header-anchor",href:"#returns-2"},"#")]),e("p",null,[l("Array of "),e("a",{href:"#the-relation-object"},"relation objects"),l(". If no items are available, data will be an empty array.")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-2"},[l("REST API "),e("a",{class:"header-anchor",href:"#rest-api-2"},"#")]),e("pre",null,[e("code",null,`GET /relations/:collection
|
|
39
|
-
`)]),e("h5",{id:"example-2"},[l("Example "),e("a",{class:"header-anchor",href:"#example-2"},"#")]),e("pre",null,[e("code",null,`GET /relations/articles
|
|
40
|
-
`)]),e("h3",{id:"graphql-2"},[l("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-2"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
|
|
41
|
-
`)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),l(` {
|
|
42
|
-
relations_in_collection(collection:`),e("span",{class:"hljs-type"}," String"),l(`!): [directus_relations]
|
|
43
|
-
}
|
|
44
|
-
`)])]),e("h5",{id:"example-3"},[l("Example "),e("a",{class:"header-anchor",href:"#example-3"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"query"),l(` {
|
|
45
|
-
relations_in_collection(collection: `),e("span",{class:"hljs-string"},'"articles"'),l(`) {
|
|
46
|
-
collection
|
|
47
|
-
field
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
`)])])])],-1),P=e("hr",null,null,-1),S=e("h2",{id:"retrieve-a-relation"},[l("Retrieve a relation "),e("a",{class:"header-anchor",href:"#retrieve-a-relation"},"#")],-1),L=e("p",null,"List an existing relation by collection/field name.",-1),A=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"query-parameters-3"},[l("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-3"},"#")]),e("p",null,"Doesn\u2019t support any query parameters."),e("h3",{id:"returns-3"},[l("Returns "),e("a",{class:"header-anchor",href:"#returns-3"},"#")]),e("p",null,[l("Returns the requested "),e("a",{href:"#the-relation-object"},"relation object"),l(".")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-3"},[l("REST API "),e("a",{class:"header-anchor",href:"#rest-api-3"},"#")]),e("pre",null,[e("code",null,`GET /relations/:collection/:field
|
|
51
|
-
`)]),e("h5",{id:"example-4"},[l("Example "),e("a",{class:"header-anchor",href:"#example-4"},"#")]),e("pre",null,[e("code",null,`GET /relations/articles/featured_image
|
|
52
|
-
`)]),e("h3",{id:"graphql-3"},[l("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-3"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
|
|
53
|
-
`)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),l(` {
|
|
54
|
-
relations_by_name(collection:`),e("span",{class:"hljs-type"}," String"),l("!, field:"),e("span",{class:"hljs-type"}," String"),l(`!): directus_relations
|
|
55
|
-
}
|
|
56
|
-
`)])]),e("h5",{id:"example-5"},[l("Example "),e("a",{class:"header-anchor",href:"#example-5"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"query"),l(` {
|
|
57
|
-
relations_by_name(collection: `),e("span",{class:"hljs-string"},'"articles"'),l(", field: "),e("span",{class:"hljs-string"},'"featured_image"'),l(`) {
|
|
58
|
-
collection
|
|
59
|
-
field
|
|
60
|
-
related_collection
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
`)])])])],-1),D=e("hr",null,null,-1),N=e("h2",{id:"create-a-relation"},[l("Create a Relation "),e("a",{class:"header-anchor",href:"#create-a-relation"},"#")],-1),Q=e("p",null,"Create a new relation.",-1),O=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"query-parameters-4"},[l("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-4"},"#")]),e("p",null,"Doesn\u2019t support any query parameters."),e("h3",{id:"request-body"},[l("Request Body "),e("a",{class:"header-anchor",href:"#request-body"},"#")]),e("p",null,[l("A partial "),e("a",{href:"#the-relation-object"},"relation object"),l(".")]),e("h3",{id:"returns-4"},[l("Returns "),e("a",{class:"header-anchor",href:"#returns-4"},"#")]),e("p",null,[l("Returns the "),e("a",{href:"#the-relation-object"},"relation object"),l(" for the created relation.")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-4"},[l("REST API "),e("a",{class:"header-anchor",href:"#rest-api-4"},"#")]),e("pre",null,[e("code",null,`POST /relations
|
|
64
|
-
`)]),e("h5",{id:"example-6"},[l("Example "),e("a",{class:"header-anchor",href:"#example-6"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// POST /relations"),l(`
|
|
65
|
-
|
|
66
|
-
{
|
|
67
|
-
`),e("span",{class:"hljs-attr"},'"collection"'),l(": "),e("span",{class:"hljs-string"},'"articles"'),l(`,
|
|
68
|
-
`),e("span",{class:"hljs-attr"},'"field"'),l(": "),e("span",{class:"hljs-string"},'"featured_image"'),l(`,
|
|
69
|
-
`),e("span",{class:"hljs-attr"},'"related_collection"'),l(": "),e("span",{class:"hljs-string"},'"directus_files"'),l(`
|
|
70
|
-
}
|
|
71
|
-
`)])]),e("h3",{id:"graphql-4"},[l("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-4"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
|
|
72
|
-
`)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Mutation"),l(` {
|
|
73
|
-
create_relations_item(data: create_directus_relations_input!): directus_relations
|
|
74
|
-
}
|
|
75
|
-
`)])]),e("h5",{id:"example-7"},[l("Example "),e("a",{class:"header-anchor",href:"#example-7"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),l(` {
|
|
76
|
-
create_relations_item(
|
|
77
|
-
data: { collection: `),e("span",{class:"hljs-string"},'"articles"'),l(", field: "),e("span",{class:"hljs-string"},'"featured_image"'),l(", related_collection: "),e("span",{class:"hljs-string"},'"directus_files"'),l(` }
|
|
78
|
-
) {
|
|
79
|
-
collection
|
|
80
|
-
field
|
|
81
|
-
related_collection
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
`)])])])],-1),G=e("hr",null,null,-1),C=e("h2",{id:"update-a-relation"},[l("Update a Relation "),e("a",{class:"header-anchor",href:"#update-a-relation"},"#")],-1),I=e("p",null,"Update an existing relation.",-1),W=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"query-parameters-5"},[l("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters-5"},"#")]),e("p",null,"Doesn\u2019t support any query parameters."),e("h3",{id:"request-body-2"},[l("Request Body "),e("a",{class:"header-anchor",href:"#request-body-2"},"#")]),e("p",null,[l("A partial "),e("a",{href:"#the-relation-object"},"relation object"),l(".")]),e("h3",{id:"returns-5"},[l("Returns "),e("a",{class:"header-anchor",href:"#returns-5"},"#")]),e("p",null,[l("Returns the "),e("a",{href:"#the-relation-object"},"relation object"),l(" for the created relation.")])]),e("div",{class:"right"},[e("h3",{id:"rest-api-5"},[l("REST API "),e("a",{class:"header-anchor",href:"#rest-api-5"},"#")]),e("pre",null,[e("code",null,`PATCH /relations/:collection/:field
|
|
85
|
-
`)]),e("h5",{id:"example-8"},[l("Example "),e("a",{class:"header-anchor",href:"#example-8"},"#")]),e("pre",null,[e("code",{class:"language-json"},[e("span",{class:"hljs-comment"},"// PATCH /relations/articles/author"),l(`
|
|
86
|
-
|
|
87
|
-
{
|
|
88
|
-
`),e("span",{class:"hljs-attr"},'"meta"'),l(`: {
|
|
89
|
-
`),e("span",{class:"hljs-attr"},'"one_field"'),l(": "),e("span",{class:"hljs-string"},'"articles"'),l(`
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
`)])]),e("h3",{id:"graphql-5"},[l("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-5"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
|
|
93
|
-
`)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Mutation"),l(` {
|
|
94
|
-
update_relations_item(collection:`),e("span",{class:"hljs-type"}," String"),l("!, field:"),e("span",{class:"hljs-type"}," String"),l(`!, data: update_directus_relations_input!): directus_relations
|
|
95
|
-
}
|
|
96
|
-
`)])]),e("h5",{id:"example-9"},[l("Example "),e("a",{class:"header-anchor",href:"#example-9"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),l(` {
|
|
97
|
-
update_relations_item(collection: `),e("span",{class:"hljs-string"},'"articles"'),l(", field: "),e("span",{class:"hljs-string"},'"author"'),l(", data: { meta: { one_field: "),e("span",{class:"hljs-string"},'"articles"'),l(` } }) {
|
|
98
|
-
collection
|
|
99
|
-
field
|
|
100
|
-
related_collection
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
`)])])])],-1),M=e("hr",null,null,-1),B=e("h2",{id:"delete-a-relation"},[l("Delete a Relation "),e("a",{class:"header-anchor",href:"#delete-a-relation"},"#")],-1),U=e("p",null,"Delete an existing relation.",-1),F=e("div",{class:"two-up"},[e("div",{class:"left"},[e("h3",{id:"returns-6"},[l("Returns "),e("a",{class:"header-anchor",href:"#returns-6"},"#")]),e("p",null,"Empty body.")]),e("div",{class:"right"},[e("h3",{id:"rest-api-6"},[l("REST API "),e("a",{class:"header-anchor",href:"#rest-api-6"},"#")]),e("pre",null,[e("code",null,`DELETE /relations/:collection/:field
|
|
104
|
-
`)]),e("h5",{id:"example-10"},[l("Example "),e("a",{class:"header-anchor",href:"#example-10"},"#")]),e("pre",null,[e("code",null,`DELETE /relations/articles/author
|
|
105
|
-
`)]),e("h3",{id:"graphql-6"},[l("GraphQL "),e("a",{class:"header-anchor",href:"#graphql-6"},"#")]),e("pre",null,[e("code",null,`POST /graphql/system
|
|
106
|
-
`)]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Mutation"),l(` {
|
|
107
|
-
delete_relations_item(collection:`),e("span",{class:"hljs-type"}," String"),l("!, field:"),e("span",{class:"hljs-type"}," String"),l(`!): delete_one
|
|
108
|
-
}
|
|
109
|
-
`)])]),e("h5",{id:"example-11"},[l("Example "),e("a",{class:"header-anchor",href:"#example-11"},"#")]),e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"mutation"),l(` {
|
|
110
|
-
delete_relations_item(collection: `),e("span",{class:"hljs-string"},'"articles"'),l(", field: "),e("span",{class:"hljs-string"},'"author"'),l(`) {
|
|
111
|
-
collection
|
|
112
|
-
field
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
`)])])])],-1),K={setup(V,{expose:n}){const a={title:"Relations",modularExtension:!1,pageClass:"page-reference"};return n({frontmatter:a}),(H,z)=>{const r=s("router-link"),o=s("DocsWrapper");return i(),c(o,{frontmatter:a},{default:t(()=>[e("div",d,[e("div",p,[e("div",u,[e("blockquote",null,[e("p",null,[_,h(r,{to:"/docs/getting-started/glossary/#relationships"},{default:t(()=>[g]),_:1}),f])])]),m]),y,j,b,q,v,x,w,T,E,R,k,P,S,L,A,D,N,Q,O,G,C,I,W,M,B,U,F])]),_:1})}}};export{K as default};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import{w as s,y as c,z as d,A as n,E as e,C as l,W as t}from"./vendor.f6090249.js";const h={class:"markdown-body"},u=e("blockquote",null,[e("p",null,[t("As you might have guessed, relationships are a crucial part of any relational database. Directus supports all standard relationship types, as well as a few more "),e("em",null,"compound"),t(" types that offer greater flexibility.")])],-1),f=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#many-to-one-(m2o)"},"Many-to-One (M2O)")]),e("li",null,[e("a",{href:"#one-to-many-(o2m)"},"One-to-Many (O2M)")]),e("li",null,[e("a",{href:"#translations-(o2m)"},"Translations (O2M)")]),e("li",null,[e("a",{href:"#many-to-many-(m2m)"},"Many-to-Many (M2M)")]),e("li",null,[e("a",{href:"#many-to-any-(m2a)"},"Many-to-Any (M2A)")]),e("li",null,[e("a",{href:"#one-to-one-(o2o)"},"One-to-One (O2O)")])])])],-1),p=e("h3",{id:"introduction"},[t("Introduction "),e("a",{class:"header-anchor",href:"#introduction"},"#")],-1),m=e("p",null,"While it may seem complex at first, relational data is actually quite straightforward once you understand what\u2019s happening behind the sometimes confusing terminology. Before diving into the details of each type, let\u2019s first cover a few basics that will help you better visualize them in your mind\u2019s eye.",-1),_=e("h3",{id:"primary-and-foreign-keys"},[t("Primary and Foreign Keys "),e("a",{class:"header-anchor",href:"#primary-and-foreign-keys"},"#")],-1),y=t("Every "),g=t("Item"),w=t(" in a relational database has a unique "),M=t("Primary Key"),b=t(" (or \u201CPK\u201D) that identifies it within its "),v=t("Collection"),O=t(". Because it\u2019s required, the key is the first "),k=t("field"),T=t(" created within a collection, typically storing an \u201Cauto-increment\u201D number, an automatically generated unique hash, or a manually entered value. They are often abbreviated to \u201CPK\u201D (Primary Key), \u201CID\u201D (Identifier), \u201CUID\u201D (Unique Identifier), or \u201CUUID\u201D (Universally Unique Identifier), depending on the type of value they store. After it\u2019s created, the value of an item\u2019s PK should "),C=e("em",null,"never",-1),x=t(" change."),A=e("p",null,[t("To link items together relationally, you simply save a reference to an item\u2019s PK in a different field. That "),e("em",null,"reference"),t(" is called a Foreign Key (FK). If the primary key is a "),e("em",null,"person"),t(", the foreign key is like their "),e("em",null,"business card"),t(". It references the actual person, providing just enough information to find them.")],-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Composite & Compound Keys"),e("p",null,[t("In the above explanation we\u2019ve ignored "),e("em",null,"composite"),t(" and "),e("em",null,"compound"),t(" keys, which are essentially unique keys created by combining "),e("em",null,"multiple"),t(" field/column values.")])],-1),I=e("h3",{id:"perspective-matters"},[t("Perspective Matters "),e("a",{class:"header-anchor",href:"#perspective-matters"},"#")],-1),P=e("p",null,"Just like primary and foreign keys, relationships are always described relative to their \u201Cparent\u201D collection. Looking at the same relationship/key from the perspective of the opposite collection would reverse it. This means that a many-to-one relationship can also be seen as a one-to-many relationship, it just depends on which collection is considered the parent.",-1),D=e("h2",{id:"many-to-one-(m2o)"},[t("Many-to-One (M2O) "),e("a",{class:"header-anchor",href:"#many-to-one-(m2o)"},"#")],-1),S=e("p",null,[t("The Many-to-One is the only relationship type with an actual field on the parent Collection. This field saves the foreign key to a single related item. For example, a "),e("em",null,"city"),t(" can only be in one "),e("em",null,"country"),t(", but a "),e("em",null,"country"),t(" can have many "),e("em",null,"cities"),t(".")],-1),F=e("p",null,"Below is an example of a M2O relationship:",-1),R=e("pre",null,[e("code",null,`cities (the "Many" Collection)
|
|
2
|
-
- id (Primary Key)
|
|
3
|
-
- name
|
|
4
|
-
- country (the M2O field that stores the country key)
|
|
5
|
-
|
|
6
|
-
countries (the "One" Collection)
|
|
7
|
-
- id (Primary Key)
|
|
8
|
-
- name
|
|
9
|
-
`)],-1),K=e("h3",{id:"setup"},[t("Setup "),e("a",{class:"header-anchor",href:"#setup"},"#")],-1),N=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/data-model/relationships/M2O-20220216A.webp",alt:"M2O"})],-1),q=e("p",null,"The parent collection and field are already known (it\u2019s the field you\u2019re currently creating), so configuring those are disabled. All you need to configure is the related collection and its primary key field.",-1),W=e("p",null,[t("If you select or enter an "),e("strong",null,"existing"),t(" Related Collection (highlights green) then the primary key field is known and automatically selected. If you enter the name of a "),e("strong",null,"new"),t(" Related Collection (doesn\u2019t already exist), you will also be prompted to enter the name of its primary key field, which will default to an auto-increment integer type.")],-1),J=e("p",null,[t("You also have the option to create a "),e("strong",null,"Corresponding Field"),t(" during this process. This allows you to more easily create the O2M alias (see below) that pairs with this M2O.")],-1),B=e("p",null,[e("strong",null,"Relational Triggers"),t(" allow for control over what happens when a relationship is broken. There is one option:")],-1),Y=e("ul",null,[e("li",null,[e("strong",null,"On Delete of [Related Collection]"),t(" \u2014 When the related item (O2M) is deleted\u2026 "),e("ul",null,[e("li",null,"Nullify the parent M2O field (default)"),e("li",null,"Set the parent M2O field to its default value"),e("li",null,"Delete the parent collection\u2019s item (cascade)"),e("li",null,"Prevent the deletion")])])],-1),U=e("h2",{id:"one-to-many-(o2m)"},[t("One-to-Many (O2M) "),e("a",{class:"header-anchor",href:"#one-to-many-(o2m)"},"#")],-1),L=t("The One-to-Many relationship is the "),z=e("strong",null,"exact same relationship",-1),E=t(" as a Many-to-One (above), just seen from the opposite collection\u2019s perspective. The O2M is stored as an "),H=t("Alias"),V=t(" field on its parent Collection that dynamically lists all items connected via the opposite Many-to-One. So, while the M2O will show a single country for the parent city, the O2M shows all cities for the parent country."),G=e("p",null,"Below is an example of a O2M relationship:",-1),Q=e("pre",null,[e("code",null,`countries (the "One" Collection)
|
|
10
|
-
- id (Primary Key)
|
|
11
|
-
- name
|
|
12
|
-
- *cities* (the O2M alias field that lists references from "cities.country")
|
|
13
|
-
|
|
14
|
-
cities (the "Many" Collection)
|
|
15
|
-
- id (Primary Key)
|
|
16
|
-
- name
|
|
17
|
-
- country (the M2O field that stores the country key)
|
|
18
|
-
`)],-1),X=e("h3",{id:"setup-2"},[t("Setup "),e("a",{class:"header-anchor",href:"#setup-2"},"#")],-1),Z=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/data-model/relationships/O2M-20220216A.webp",alt:"O2M"})],-1),$=e("p",null,"The parent collection and field are already known (it\u2019s the field you\u2019re currently creating), so configuring those are disabled. All you need to configure is the related collection and its M2O field.",-1),ee=e("p",null,[t("You can select or enter an "),e("strong",null,"existing"),t(" Related Collection (highlights green) or create a "),e("strong",null,"new"),t(" one by entering a unique collection name. Next, you can select an existing field (highlights green) or create a new one by entering a field name unique to its collection.")],-1),te=e("p",null,"The related field will store the value of this collection\u2019s primary key field, so both must have the same type. For this reason, when selecting existing fields, options will be disabled if they don\u2019t have a matching type.",-1),ne=e("p",null,[t("You also have the option to create a "),e("strong",null,"Corresponding Field"),t(" during this process. This allows you to more easily create the M2O field (see above) that pairs with this O2M.")],-1),oe=e("p",null,[t("The optional "),e("strong",null,"Sort Field"),t(" can be used to enable manual reordering of items within this O2M field. This is configured by selecting an existing numeric type field (highlights green) from the Related Collection, or entering the name of a new field to be created.")],-1),le=e("p",null,[e("strong",null,"Relational Triggers"),t(" allow for control over what happens when a relationship is broken. There are two options:")],-1),ie=e("ul",null,[e("li",null,[e("strong",null,"On Deselect of [Related Collection]"),t(" \u2014 When the value of the M2O is deselected\u2026 "),e("ul",null,[e("li",null,"Nullify the M2O field value (default)"),e("li",null,"Delete the M2O item (cascade)")])]),e("li",null,[e("strong",null,"On Delete of [Parent Collection Item]"),t(" \u2014 When this O2M item is deleted\u2026 "),e("ul",null,[e("li",null,"Nullify the related M2O field (default)"),e("li",null,"Set the related M2O field to its default value"),e("li",null,"Delete the related collection\u2019s item (cascade)"),e("li",null,"Prevent the deletion")])])],-1),se=e("h2",{id:"translations-(o2m)"},[t("Translations (O2M) "),e("a",{class:"header-anchor",href:"#translations-(o2m)"},"#")],-1),ae=t("The Translations relationship is just a special version of the standard O2M. Just like the O2M, it creates an "),re=t("Alias"),ce=t(" field that is used to list all related items (the translations). Translations themselves are stored in a separate collection, which is then further related to a "),de=e("em",null,"third",-1),he=t(" collection that stores all languages."),ue=e("h3",{id:"setup-3"},[t("Setup "),e("a",{class:"header-anchor",href:"#setup-3"},"#")],-1),fe=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/data-model/relationships/translations-wizard-20220216A.webp",alt:"Translations"})],-1),pe=e("p",null,"The easiest way to add translations is to use the wizard, which only asks for the Translation field name. All required fields and relationships will then be automatically created and configured.",-1),me=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/data-model/relationships/translations-relations-20220216A.webp",alt:"Translations"})],-1),_e=e("p",null,[t("If you choose to switch to "),e("strong",null,"manual setup"),t(", you will be presented with a similar relationship setup to O2M or M2M. The parent collection and primary key are known, so those fields are disabled.")],-1),ye=e("p",null,"Next, we configure the Translation Collection. Set to \u201CAuto Fill\u201D by default, this will enter intelligent naming based on related names, and disables all fields. Disabling Auto Fill will enable all fields, allowing you to name the collection that holds the translations, as well as the two fields (each a M2O) that store foreign keys to the parent item and language.",-1),ge=e("p",null,[t("Lastly, you would select/create the Languages collection, which stores the languages available for this translations field. It is common practice to reuse a single languages collection throughout your project, unless translation fields need to support different language sets. For the language "),e("code",null,"code"),t(" we recommend using the IETF language tag (eg: "),e("code",null,"en-US"),t(") which combines the ISO 639-1 and ISO 3166\u20111 standards, but anything can be used (eg: "),e("code",null,"english"),t(").")],-1),we=e("h2",{id:"many-to-many-(m2m)"},[t("Many-to-Many (M2M) "),e("a",{class:"header-anchor",href:"#many-to-many-(m2m)"},"#")],-1),Me=t("The Many-to-Many relationship is actually just "),be=e("strong",null,"two relationships combined",-1),ve=t(" (O2M+M2O) that join together three different collections. The M2M is stored as an "),Oe=t("Alias"),ke=t(" field on its parent Collection that dynamically lists all items connected via a "),Te=t("junction collection"),Ce=t(". For example, a "),xe=e("em",null,"recipe",-1),Ae=t(" can have many "),je=e("em",null,"ingredients",-1),Ie=t(", and "),Pe=e("em",null,"ingredients",-1),De=t(" can be in many "),Se=e("em",null,"recipes",-1),Fe=t("."),Re=e("p",null,"Below is an example of a M2M relationship:",-1),Ke=e("pre",null,[e("code",null,`recipes (Collection)
|
|
19
|
-
- id (Primary Key)
|
|
20
|
-
- name
|
|
21
|
-
- *ingredients* (M2M/O2M alias field that lists references from "recipe_ingredients")
|
|
22
|
-
|
|
23
|
-
ingredients (Collection)
|
|
24
|
-
- id (Primary Key)
|
|
25
|
-
- name
|
|
26
|
-
- *recipes* (M2M/O2M alias field that lists references from "recipe_ingredients")
|
|
27
|
-
|
|
28
|
-
recipe_ingredients (Junction Collection)
|
|
29
|
-
- id (Primary Key)
|
|
30
|
-
- recipe (stores the recipe key)
|
|
31
|
-
- ingredient (stores ingredient key)
|
|
32
|
-
- quantity (other optional data on the connection)
|
|
33
|
-
`)],-1),Ne=e("p",null,[t("Notice that the example above also has a "),e("code",null,"quantity"),t(" field on the Junction Collection, which tracks how much of each ingredient is needed for the recipe. You can add any other "),e("em",null,"contextual"),t(" fields to the junction, and they will also be included at the top of the App\u2019s relational Item Page form.")],-1),qe=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Self-Referencing"),e("p",null,[t("You can also have a M2M relationship that connects items within the "),e("em",null,"same"),t(" collection. An example of this is \u201CRelated Articles\u201D, where an article might relate to many other articles.")])],-1),We=e("h3",{id:"setup-4"},[t("Setup "),e("a",{class:"header-anchor",href:"#setup-4"},"#")],-1),Je=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/data-model/relationships/M2M-20220216A.webp",alt:"M2M"})],-1),Be=e("p",null,"The parent collection and field are already known (it\u2019s the field you\u2019re currently creating), so configuring those are disabled.",-1),Ye=e("p",null,[t("Next you should configure the Related Collection. If you select or enter an "),e("strong",null,"existing"),t(" Related Collection (highlights green) then the primary key field is known and automatically selected. If you enter the name of a "),e("strong",null,"new"),t(" Related Collection (doesn\u2019t already exist), you will also be prompted to enter the name of its primary key field, which will default to an auto-increment integer type.")],-1),Ue=t("Lastly, we configure the "),Le=t("Junction Collection"),ze=t(", which sits between the two related collections, storing all links between the two. You can leave this set to \u201CAuto-Fill\u201D, which sets intelligent naming defaults, or disable it to select existing options or enter custom names."),Ee=e("p",null,[t("You also have the option to create a "),e("strong",null,"Corresponding Field"),t(" during this process. This allows you to more easily create the reverse M2M field on the "),e("em",null,"related"),t(" collection.")],-1),He=e("p",null,[t("The optional "),e("strong",null,"Sort Field"),t(" can be used to enable manual reordering of items within this O2M field. This is configured by selecting an existing numeric type field (highlights green) from the Junction Collection, or entering the name of a new field to be created.")],-1),Ve=e("p",null,[e("strong",null,"Relational Triggers"),t(" allow for control over what happens when a relationship is broken. There are three options:")],-1),Ge=e("ul",null,[e("li",null,[e("strong",null,"On Deselect of [Junction Collection]"),t(" \u2014 When the value of this M2M is deselected\u2026 "),e("ul",null,[e("li",null,"Nullify the junction field (default)"),e("li",null,"Delete the junction item (cascade)")])]),e("li",null,[e("strong",null,"On Delete of [Parent Collection Item]"),t(" \u2014 When this M2M item is deleted\u2026 "),e("ul",null,[e("li",null,"Nullify the junction field (default)"),e("li",null,"Set the junction field to its default value"),e("li",null,"Delete the related junction item (cascade)"),e("li",null,"Prevent the deletion")])]),e("li",null,[e("strong",null,"On Delete of [Related Collection Item]"),t(" \u2014 When the related M2M item is deleted\u2026 "),e("ul",null,[e("li",null,"Nullify the junction field (default)"),e("li",null,"Set the junction field to its default value"),e("li",null,"Delete the related junction item (cascade)"),e("li",null,"Prevent the deletion")])])],-1),Qe=e("h2",{id:"many-to-any-(m2a)"},[t("Many-to-Any (M2A) "),e("a",{class:"header-anchor",href:"#many-to-any-(m2a)"},"#")],-1),Xe=t("Sometimes called a \u201Cmatrix field\u201D or \u201Creplicator\u201D. Like the M2M, the M2A is stored as an "),Ze=t("Alias"),$e=t(" field on its parent Collection that dynamically lists all items connected via a "),et=t("junction collection"),tt=t(". However, there is one key difference: one side of the junction also stores a "),nt=e("strong",null,"collection key",-1),ot=t(". This combination of collection name and primary key means that you can effectively store a reference to "),lt=e("em",null,"any",-1),it=t(" item in the database. You can then artificially limit which collections are valid through a related collections \u201Callow list\u201D."),st=e("p",null,[t("A common example of a M2A is a \u201CPage Builder\u201D, which has a "),e("em",null,"Pages"),t(" collection that includes any number of different \u201Csection\u201D Collections, such as: \u201CHeading\u201D, \u201CText\u201D, and \u201CImage\u201D. In this example the junction table will link different sections (from different collections) with a page, creating relational layouts.")],-1),at=e("p",null,"Below is an example of a M2A relationship:",-1),rt=e("pre",null,[e("code",null,`pages (Collection)
|
|
34
|
-
- id
|
|
35
|
-
- name
|
|
36
|
-
- *sections* (O2M/M2A alias field that lists references from "page_sections")
|
|
37
|
-
|
|
38
|
-
page_sections (Junction Collection)
|
|
39
|
-
- id
|
|
40
|
-
- pages_id (stores the primary key of the parent page)
|
|
41
|
-
- collection (stores name of the related collection, for example "headings", "text", or "images")
|
|
42
|
-
- item (stores the primary key of the related item)
|
|
43
|
-
|
|
44
|
-
headings (Collection)
|
|
45
|
-
- id
|
|
46
|
-
- title
|
|
47
|
-
|
|
48
|
-
text (Collection)
|
|
49
|
-
- id
|
|
50
|
-
- text
|
|
51
|
-
|
|
52
|
-
images (Collection)
|
|
53
|
-
- id
|
|
54
|
-
- file
|
|
55
|
-
`)],-1),ct=e("h3",{id:"setup-5"},[t("Setup "),e("a",{class:"header-anchor",href:"#setup-5"},"#")],-1),dt=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/configuration/data-model/relationships/M2A-20220216A.webp",alt:"M2A"})],-1),ht=e("p",null,"The parent collection and field are already known (it\u2019s the field you\u2019re currently creating), so configuring those are disabled.",-1),ut=t("Next, we configure the "),ft=t("Junction Collection"),pt=t(", which sits between the related collections, storing all links between them. You can leave this set to \u201CAuto-Fill\u201D, which sets intelligent naming defaults, or disable it to select existing options or enter custom names."),mt=e("p",null,[t("Lastly, you should select any desired Related Collections. Unlike other relationships, you can\u2019t "),e("em",null,"create"),t(" these related collections here, so ensure all related collections you need are created beforehand.")],-1),_t=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Auto-generating"),e("p",null,"If you enter a collection/field name that doesn\u2019t exist yet, Directus will auto-generate these collections/fields once you save the changes on the new M2A field.")],-1),yt=e("p",null,[t("The optional "),e("strong",null,"Sort Field"),t(" can be used to enable manual reordering of items within this M2A field. This is configured by selecting an existing numeric type field (highlights green) from the Junction Collection, or entering the name of a new field to be created.")],-1),gt=e("p",null,[e("strong",null,"Relational Triggers"),t(" allow for control over what happens when a relationship is broken. There are three options:")],-1),wt=e("ul",null,[e("li",null,[e("strong",null,"On Delete of [Parent Collection Item]"),t(" \u2014 When a M2A item is deleted\u2026 "),e("ul",null,[e("li",null,"Nullify the junction field (default)"),e("li",null,"Set the junction field to its default value"),e("li",null,"Delete the related junction item (cascade)"),e("li",null,"Prevent the deletion")])]),e("li",null,[e("strong",null,"On Deselect of [Junction Collection]"),t(" \u2014 When the value of this M2A is deselected\u2026 "),e("ul",null,[e("li",null,"Nullify the junction field (default)"),e("li",null,"Delete the junction item (cascade)")])])],-1),Mt=e("h2",{id:"one-to-one-(o2o)"},[t("One-to-One (O2O) "),e("a",{class:"header-anchor",href:"#one-to-one-(o2o)"},"#")],-1),bt=t("Directus does not include a dedicated One-to-One (O2O) relationship type or interface. However, O2O is essentially the same as a M2O (storing a foreign key). The only difference is that a O2O enforces the cardinality. In other words, selecting a relational item in a O2O means that item can not be selected elsewhere (it can only be used once). This functionality can be added by checking and constraining uniqueness via a "),vt=t("custom event hook"),Ot=t(" or "),kt=t("custom interface"),Tt=t("."),Ct=e("p",null,[t("An example of this is a "),e("em",null,"person"),t(" only has one unique set of "),e("em",null,"fingerprints"),t(", and those "),e("em",null,"fingerprints"),t(" only belong to one "),e("em",null,"person"),t(".")],-1),Pt={setup(xt,{expose:a}){const i={title:"Relationships",modularExtension:!1};return a({frontmatter:i}),(At,jt)=>{const o=s("router-link"),r=s("DocsWrapper");return c(),d(r,{frontmatter:i},{default:n(()=>[e("div",h,[u,f,p,m,_,e("p",null,[y,l(o,{to:"/docs/getting-started/glossary/#items"},{default:n(()=>[g]),_:1}),w,l(o,{to:"/docs/getting-started/glossary/#primary-key-pk"},{default:n(()=>[M]),_:1}),b,l(o,{to:"/docs/getting-started/glossary/#collections"},{default:n(()=>[v]),_:1}),O,l(o,{to:"/docs/getting-started/glossary/#fields"},{default:n(()=>[k]),_:1}),T,C,x]),A,j,I,P,D,S,F,R,K,N,q,W,J,B,Y,U,e("p",null,[L,z,E,l(o,{to:"/docs/getting-started/glossary/#alias"},{default:n(()=>[H]),_:1}),V]),G,Q,X,Z,$,ee,te,ne,oe,le,ie,se,e("p",null,[ae,l(o,{to:"/docs/getting-started/glossary/#alias"},{default:n(()=>[re]),_:1}),ce,de,he]),ue,fe,pe,me,_e,ye,ge,we,e("p",null,[Me,be,ve,l(o,{to:"/docs/getting-started/glossary/#alias"},{default:n(()=>[Oe]),_:1}),ke,l(o,{to:"/docs/getting-started/glossary/#junction-collections"},{default:n(()=>[Te]),_:1}),Ce,xe,Ae,je,Ie,Pe,De,Se,Fe]),Re,Ke,Ne,qe,We,Je,Be,Ye,e("p",null,[Ue,l(o,{to:"/docs/getting-started/glossary/#junction-collections"},{default:n(()=>[Le]),_:1}),ze]),Ee,He,Ve,Ge,Qe,e("p",null,[Xe,l(o,{to:"/docs/getting-started/glossary/#alias"},{default:n(()=>[Ze]),_:1}),$e,l(o,{to:"/docs/getting-started/glossary/#junction-collections"},{default:n(()=>[et]),_:1}),tt,nt,ot,lt,it]),st,at,rt,ct,dt,ht,e("p",null,[ut,l(o,{to:"/docs/getting-started/glossary/#junction-collections"},{default:n(()=>[ft]),_:1}),pt]),mt,_t,yt,gt,wt,Mt,e("p",null,[bt,l(o,{to:"/docs/extensions/hooks/"},{default:n(()=>[vt]),_:1}),Ot,l(o,{to:"/docs/extensions/interfaces/"},{default:n(()=>[kt]),_:1}),Tt]),Ct])]),_:1})}}};export{Pt as default};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import{w as l,y as c,z as h,A as t,E as s,C as o,W as e}from"./vendor.f6090249.js";const d={class:"markdown-body"},_={class:"two-up"},p={class:"left"},u=e("Revisions are individual changes to items made. Directus keeps track of changes made, so you\u2019re able to revert to a previous state at will. "),v=e("Learn more about Revisions"),m=e("."),f=s("div",{class:"right"},[s("p",null,[s("div",{class:"table-of-contents"},[s("ul",null,[s("li",null,[s("a",{href:"#the-revision-object"},"The Revision Object")]),s("li",null,[s("a",{href:"#list-revisions"},"List revisions")]),s("li",null,[s("a",{href:"#retrieve-a-revision"},"Retrieve a revision")])])])])],-1),g=s("hr",null,null,-1),y=s("h2",{id:"the-revision-object"},[e("The Revision Object "),s("a",{class:"header-anchor",href:"#the-revision-object"},"#")],-1),j={class:"two-up"},b={class:"left"},q={class:"definitions"},x=s("p",null,[s("code",null,"id"),e(),s("strong",null,"integer"),s("br"),e(" Primary key of the revision.")],-1),w=s("code",null,"activity",-1),k=e(),R=s("strong",null,"many-to-one",-1),E=s("br",null,null,-1),T=e(" Related activity record. Many-to-one to "),P=e("activity"),S=e("."),L=s("p",null,[s("code",null,"collection"),e(),s("strong",null,"string"),s("br"),e(" Collection in which this revision happened.")],-1),C=s("p",null,[s("code",null,"item"),e(),s("strong",null,"string"),s("br"),e(" Primary key of the item that was changed.")],-1),A=s("p",null,[s("code",null,"data"),e(),s("strong",null,"object"),s("br"),e(" Snapshot of the top-level item data.")],-1),D=s("p",null,[s("code",null,"delta"),e(),s("strong",null,"object"),s("br"),e(" Snapshot of the changes made in this revision.")],-1),Q=s("p",null,[s("code",null,"parent"),e(),s("strong",null,"many-to-one"),s("br"),e(" Parent revision that triggered this revision. Many-to-one to revisions (recursive).")],-1),G=s("div",{class:"right"},[s("pre",null,[s("code",{class:"language-json"},[e(`{
|
|
2
|
-
`),s("span",{class:"hljs-attr"},'"id"'),e(": "),s("span",{class:"hljs-number"},"368"),e(`,
|
|
3
|
-
`),s("span",{class:"hljs-attr"},'"activity"'),e(": "),s("span",{class:"hljs-number"},"438"),e(`,
|
|
4
|
-
`),s("span",{class:"hljs-attr"},'"collection"'),e(": "),s("span",{class:"hljs-string"},'"articles"'),e(`,
|
|
5
|
-
`),s("span",{class:"hljs-attr"},'"item"'),e(": "),s("span",{class:"hljs-string"},'"1"'),e(`,
|
|
6
|
-
`),s("span",{class:"hljs-attr"},'"data"'),e(`: {
|
|
7
|
-
`),s("span",{class:"hljs-attr"},'"title"'),e(": "),s("span",{class:"hljs-string"},'"Hello World"'),e(`
|
|
8
|
-
},
|
|
9
|
-
`),s("span",{class:"hljs-attr"},'"delta"'),e(`: {
|
|
10
|
-
`),s("span",{class:"hljs-attr"},'"title"'),e(": "),s("span",{class:"hljs-string"},'"Hello from the Docs!"'),e(`
|
|
11
|
-
},
|
|
12
|
-
`),s("span",{class:"hljs-attr"},'"parent"'),e(": "),s("span",{class:"hljs-literal"},"null"),e(`
|
|
13
|
-
}
|
|
14
|
-
`)])])],-1),H=s("hr",null,null,-1),I=s("h2",{id:"list-revisions"},[e("List revisions "),s("a",{class:"header-anchor",href:"#list-revisions"},"#")],-1),O=s("p",null,"List all revisions that exist in Directus.",-1),W={class:"two-up"},B={class:"left"},N=s("div",{class:"tip hint"},[s("div",{class:"hint-title"},"Permissions"),s("p",null,"The data returned in this endpoint will be filtered based on the user\u2019s permissions. For example, revisions that apply to a collection that the current user doesn\u2019t have access to are stripped out.")],-1),V=s("h3",{id:"query-parameters"},[e("Query Parameters "),s("a",{class:"header-anchor",href:"#query-parameters"},"#")],-1),M=e("Supports all "),z=e("global query parameters"),F=e("."),J=s("h3",{id:"returns"},[e("Returns "),s("a",{class:"header-anchor",href:"#returns"},"#")],-1),K=e("An array of up to "),U=e("limit"),X=e(),Y=s("a",{href:"#the-revision-object"},"revision objects",-1),Z=e(". If no items are available, data will be an empty array."),$={class:"right"},ss=s("h3",{id:"rest-api"},[e("REST API "),s("a",{class:"header-anchor",href:"#rest-api"},"#")],-1),es=s("pre",null,[s("code",null,`GET /revisions
|
|
15
|
-
SEARCH /revisions
|
|
16
|
-
`)],-1),ts=e("Learn more about SEARCH ->"),ns=s("h3",{id:"graphql"},[e("GraphQL "),s("a",{class:"header-anchor",href:"#graphql"},"#")],-1),os=s("pre",null,[s("code",null,`POST /graphql/system
|
|
17
|
-
`)],-1),as=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"type"),s("span",{class:"hljs-type"}," Query"),e(` {
|
|
18
|
-
revisions: [directus_revisions]
|
|
19
|
-
}
|
|
20
|
-
`)])],-1),ls=s("h5",{id:"examples"},[e("Examples "),s("a",{class:"header-anchor",href:"#examples"},"#")],-1),rs=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"query"),e(` {
|
|
21
|
-
revisions {
|
|
22
|
-
id
|
|
23
|
-
data
|
|
24
|
-
delta
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
`)])],-1),is=s("hr",null,null,-1),cs=s("h2",{id:"retrieve-a-revision"},[e("Retrieve a revision "),s("a",{class:"header-anchor",href:"#retrieve-a-revision"},"#")],-1),hs=s("p",null,"List an existing revision by primary key.",-1),ds={class:"two-up"},_s={class:"left"},ps=s("h3",{id:"query-parameters-2"},[e("Query Parameters "),s("a",{class:"header-anchor",href:"#query-parameters-2"},"#")],-1),us=e("Supports all "),vs=e("global query parameters"),ms=e("."),fs=s("h3",{id:"returns-2"},[e("Returns "),s("a",{class:"header-anchor",href:"#returns-2"},"#")],-1),gs=s("p",null,[e("Returns the requested "),s("a",{href:"#the-revision-object"},"revision object"),e(".")],-1),ys=s("div",{class:"right"},[s("h3",{id:"rest-api-2"},[e("REST API "),s("a",{class:"header-anchor",href:"#rest-api-2"},"#")]),s("pre",null,[s("code",null,`GET /revisions/:id
|
|
28
|
-
`)]),s("h5",{id:"example"},[e("Example "),s("a",{class:"header-anchor",href:"#example"},"#")]),s("pre",null,[s("code",null,`GET /revisions/322
|
|
29
|
-
`)]),s("h3",{id:"graphql-2"},[e("GraphQL "),s("a",{class:"header-anchor",href:"#graphql-2"},"#")]),s("pre",null,[s("code",null,`POST /graphql/system
|
|
30
|
-
`)]),s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"type"),s("span",{class:"hljs-type"}," Query"),e(` {
|
|
31
|
-
revisions_by_id(id:`),s("span",{class:"hljs-literal"}," ID"),e(`!): directus_revisions
|
|
32
|
-
}
|
|
33
|
-
`)])]),s("h5",{id:"example-2"},[e("Example "),s("a",{class:"header-anchor",href:"#example-2"},"#")]),s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"query"),e(` {
|
|
34
|
-
revisions_by_id(id: `),s("span",{class:"hljs-number"},"322"),e(`) {
|
|
35
|
-
id
|
|
36
|
-
data
|
|
37
|
-
delta
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
`)])])],-1),ws={setup(js,{expose:r}){const a={title:"Revisions",modularExtension:!1,pageClass:"page-reference"};return r({frontmatter:a}),(bs,qs)=>{const n=l("router-link"),i=l("DocsWrapper");return c(),h(i,{frontmatter:a},{default:t(()=>[s("div",d,[s("div",_,[s("div",p,[s("blockquote",null,[s("p",null,[u,o(n,{to:"/docs/getting-started/glossary/#revisions"},{default:t(()=>[v]),_:1}),m])])]),f]),g,y,s("div",j,[s("div",b,[s("div",q,[x,s("p",null,[w,k,R,E,T,o(n,{to:"/docs/reference/system/activity/"},{default:t(()=>[P]),_:1}),S]),L,C,A,D,Q])]),G]),H,I,O,s("div",W,[s("div",B,[N,V,s("p",null,[M,o(n,{to:"/docs/reference/query"},{default:t(()=>[z]),_:1}),F]),J,s("p",null,[K,o(n,{to:"/docs/reference/query/#limit"},{default:t(()=>[U]),_:1}),X,Y,Z])]),s("div",$,[ss,es,s("p",null,[o(n,{to:"/docs/reference/introduction/#search-http-method"},{default:t(()=>[ts]),_:1})]),ns,os,as,ls,rs])]),is,cs,hs,s("div",ds,[s("div",_s,[ps,s("p",null,[us,o(n,{to:"/docs/reference/query"},{default:t(()=>[vs]),_:1}),ms]),fs,gs]),ys])])]),_:1})}}};export{ws as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as d}from"./vendor.f6090249.js";function m(i,f){return f.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(n){if(n!=="default"&&!(n in i)){var c=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(i,n,c.get?c:{enumerable:!0,get:function(){return e[n]}})}})}),Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var p={exports:{}};(function(i,f){(function(e){e(d.exports)})(function(e){e.defineMode("rpm-changes",function(){var n=/^-+$/,c=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,a=/^[\w+.-]+@[\w.-]+/;return{token:function(o){return o.sol()&&(o.match(n)||o.match(c))?"tag":o.match(a)?"string":(o.next(),null)}}}),e.defineMIME("text/x-rpm-changes","rpm-changes"),e.defineMode("rpm-spec",function(){var n=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,c=/^[a-zA-Z0-9()]+:/,a=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,o=/^%(ifnarch|ifarch|if)/,u=/^%(else|endif)/,l=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;return{startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(r,t){var h=r.peek();if(h=="#")return r.skipToEnd(),"comment";if(r.sol()){if(r.match(c))return"header";if(r.match(a))return"atom"}if(r.match(/^\$\w+/)||r.match(/^\$\{\w+\}/))return"def";if(r.match(u))return"keyword";if(r.match(o))return t.controlFlow=!0,"keyword";if(t.controlFlow){if(r.match(l))return"operator";if(r.match(/^(\d+)/))return"number";r.eol()&&(t.controlFlow=!1)}if(r.match(n))return r.eol()&&(t.controlFlow=!1),"number";if(r.match(/^%[\w]+/))return r.match("(")&&(t.macroParameters=!0),"keyword";if(t.macroParameters){if(r.match(/^\d+/))return"number";if(r.match(")"))return t.macroParameters=!1,"keyword"}return r.match(/^%\{\??[\w \-\:\!]+\}/)?(r.eol()&&(t.controlFlow=!1),"def"):(r.next(),null)}}}),e.defineMIME("text/x-rpm-spec","rpm-spec")})})();var s=p.exports,v=m({__proto__:null,default:s},[p.exports]);export{v as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as oe}from"./vendor.f6090249.js";import{a as ae}from"./python.e0245f5c.js";import{a as ie}from"./stex.d0b9833b.js";import{o as le}from"./overlay.742dc1cd.js";function fe(A,I){return I.forEach(function(l){l&&typeof l!="string"&&!Array.isArray(l)&&Object.keys(l).forEach(function(p){if(p!=="default"&&!(p in A)){var i=Object.getOwnPropertyDescriptor(l,p);Object.defineProperty(A,p,i.get?i:{enumerable:!0,get:function(){return l[p]}})}})}),Object.freeze(Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}))}var M={exports:{}};(function(A,I){(function(l){l(oe.exports,ae.exports,ie.exports,le.exports)})(function(l){l.defineMode("rst",function(p,i){var v=/^\*\*[^\*\s](?:[^\*]*[^\*\s])?\*\*/,b=/^\*[^\*\s](?:[^\*]*[^\*\s])?\*/,w=/^``[^`\s](?:[^`]*[^`\s])``/,u=/^(?:[\d]+(?:[\.,]\d+)*)/,E=/^(?:\s\+[\d]+(?:[\.,]\d+)*)/,_=/^(?:\s\-[\d]+(?:[\.,]\d+)*)/,T="[Hh][Tt][Tt][Pp][Ss]?://",P="(?:[\\d\\w.-]+)\\.(?:\\w{2,6})",x="(?:/[\\d\\w\\#\\%\\&\\-\\.\\,\\/\\:\\=\\?\\~]+)*",y=new RegExp("^"+T+P+x),R={token:function(f){if(f.match(v)&&f.match(/\W+|$/,!1))return"strong";if(f.match(b)&&f.match(/\W+|$/,!1))return"em";if(f.match(w)&&f.match(/\W+|$/,!1))return"string-2";if(f.match(u))return"number";if(f.match(E))return"positive";if(f.match(_))return"negative";if(f.match(y))return"link";for(;f.next()!=null&&!(f.match(v,!1)||f.match(b,!1)||f.match(w,!1)||f.match(u,!1)||f.match(E,!1)||f.match(_,!1)||f.match(y,!1)););return null}},W=l.getMode(p,i.backdrop||"rst-base");return l.overlayMode(W,R,!0)},"python","stex"),l.defineMode("rst-base",function(p){function i(n){var e=Array.prototype.slice.call(arguments,1);return n.replace(/{(\d+)}/g,function(r,N){return typeof e[N]!="undefined"?e[N]:r})}var v=l.getMode(p,"python"),b=l.getMode(p,"stex"),w="\\s+",u="(?:\\s*|\\W|$)",E=new RegExp(i("^{0}",u)),_=`(?:[^\\W\\d_](?:[\\w!"#$%&'()\\*\\+,\\-\\./:;<=>\\?]*[^\\W_])?)`,T=new RegExp(i("^{0}",_)),P=`(?:[^\\W\\d_](?:[\\w\\s!"#$%&'()\\*\\+,\\-\\./:;<=>\\?]*[^\\W_])?)`,x=i("(?:{0}|`{1}`)",_,P),y="(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)",R="(?:[^\\`]+)",W=new RegExp(i("^{0}",R)),f=new RegExp("^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$"),z=new RegExp(i("^\\.\\.{0}",w)),j=new RegExp(i("^_{0}:{1}|^__:{1}",x,u)),s=new RegExp(i("^{0}::{1}",x,u)),S=new RegExp(i("^\\|{0}\\|{1}{2}::{3}",y,w,x,u)),D=new RegExp(i("^\\[(?:\\d+|#{0}?|\\*)]{1}",x,u)),F=new RegExp(i("^\\[{0}\\]{1}",x,u)),O=new RegExp(i("^\\|{0}\\|",y)),H=new RegExp(i("^\\[(?:\\d+|#{0}?|\\*)]_",x)),B=new RegExp(i("^\\[{0}\\]_",x)),G=new RegExp(i("^{0}__?",x)),g=new RegExp(i("^`{0}`_",R)),h=new RegExp(i("^:{0}:`{1}`{2}",_,R,u)),d=new RegExp(i("^`{1}`:{0}:{2}",_,R,u)),$=new RegExp(i("^:{0}:{1}",_,u)),J=new RegExp(i("^{0}",x)),K=new RegExp(i("^::{0}",u)),X=new RegExp(i("^\\|{0}\\|",y)),Q=new RegExp(i("^{0}",w)),U=new RegExp(i("^{0}",x)),V=new RegExp(i("^::{0}",u)),Y=new RegExp("^_"),Z=new RegExp(i("^{0}|_",x)),C=new RegExp(i("^:{0}",u)),ee=new RegExp("^::\\s*$"),ne=new RegExp("^\\s+(?:>>>|In \\[\\d+\\]:)\\s");function o(n,e){var r=null;if(n.sol()&&n.match(ne,!1))c(e,q,{mode:v,local:l.startState(v)});else if(n.sol()&&n.match(z))c(e,t),r="meta";else if(n.sol()&&n.match(f))c(e,o),r="header";else if(k(e)==h||n.match(h,!1))switch(m(e)){case 0:c(e,o,a(h,1)),n.match(/^:/),r="meta";break;case 1:c(e,o,a(h,2)),n.match(T),r="keyword",n.current().match(/^(?:math|latex)/)&&(e.tmp_stex=!0);break;case 2:c(e,o,a(h,3)),n.match(/^:`/),r="meta";break;case 3:if(e.tmp_stex&&(e.tmp_stex=void 0,e.tmp={mode:b,local:l.startState(b)}),e.tmp){if(n.peek()=="`"){c(e,o,a(h,4)),e.tmp=void 0;break}r=e.tmp.mode.token(n,e.tmp.local);break}c(e,o,a(h,4)),n.match(W),r="string";break;case 4:c(e,o,a(h,5)),n.match(/^`/),r="meta";break;case 5:c(e,o,a(h,6)),n.match(E);break;default:c(e,o)}else if(k(e)==d||n.match(d,!1))switch(m(e)){case 0:c(e,o,a(d,1)),n.match(/^`/),r="meta";break;case 1:c(e,o,a(d,2)),n.match(W),r="string";break;case 2:c(e,o,a(d,3)),n.match(/^`:/),r="meta";break;case 3:c(e,o,a(d,4)),n.match(T),r="keyword";break;case 4:c(e,o,a(d,5)),n.match(/^:/),r="meta";break;case 5:c(e,o,a(d,6)),n.match(E);break;default:c(e,o)}else if(k(e)==$||n.match($,!1))switch(m(e)){case 0:c(e,o,a($,1)),n.match(/^:/),r="meta";break;case 1:c(e,o,a($,2)),n.match(T),r="keyword";break;case 2:c(e,o,a($,3)),n.match(/^:/),r="meta";break;case 3:c(e,o,a($,4)),n.match(E);break;default:c(e,o)}else if(k(e)==O||n.match(O,!1))switch(m(e)){case 0:c(e,o,a(O,1)),n.match(X),r="variable-2";break;case 1:c(e,o,a(O,2)),n.match(/^_?_?/)&&(r="link");break;default:c(e,o)}else if(n.match(H))c(e,o),r="quote";else if(n.match(B))c(e,o),r="quote";else if(n.match(G))c(e,o),(!n.peek()||n.peek().match(/^\W$/))&&(r="link");else if(k(e)==g||n.match(g,!1))switch(m(e)){case 0:!n.peek()||n.peek().match(/^\W$/)?c(e,o,a(g,1)):n.match(g);break;case 1:c(e,o,a(g,2)),n.match(/^`/),r="link";break;case 2:c(e,o,a(g,3)),n.match(W);break;case 3:c(e,o,a(g,4)),n.match(/^`_/),r="link";break;default:c(e,o)}else n.match(ee)?c(e,re):n.next()&&c(e,o);return r}function t(n,e){var r=null;if(k(e)==S||n.match(S,!1))switch(m(e)){case 0:c(e,t,a(S,1)),n.match(X),r="variable-2";break;case 1:c(e,t,a(S,2)),n.match(Q);break;case 2:c(e,t,a(S,3)),n.match(U),r="keyword";break;case 3:c(e,t,a(S,4)),n.match(V),r="meta";break;default:c(e,o)}else if(k(e)==s||n.match(s,!1))switch(m(e)){case 0:c(e,t,a(s,1)),n.match(J),r="keyword",n.current().match(/^(?:math|latex)/)?e.tmp_stex=!0:n.current().match(/^python/)&&(e.tmp_py=!0);break;case 1:c(e,t,a(s,2)),n.match(K),r="meta",(n.match(/^latex\s*$/)||e.tmp_stex)&&(e.tmp_stex=void 0,c(e,q,{mode:b,local:l.startState(b)}));break;case 2:c(e,t,a(s,3)),(n.match(/^python\s*$/)||e.tmp_py)&&(e.tmp_py=void 0,c(e,q,{mode:v,local:l.startState(v)}));break;default:c(e,o)}else if(k(e)==j||n.match(j,!1))switch(m(e)){case 0:c(e,t,a(j,1)),n.match(Y),n.match(Z),r="link";break;case 1:c(e,t,a(j,2)),n.match(C),r="meta";break;default:c(e,o)}else n.match(D)||n.match(F)?(c(e,o),r="quote"):(n.eatSpace(),n.eol()?c(e,o):(n.skipToEnd(),c(e,ce),r="comment"));return r}function ce(n,e){return L(n,e,"comment")}function re(n,e){return L(n,e,"meta")}function L(n,e,r){return n.eol()||n.eatSpace()?(n.skipToEnd(),r):(c(e,o),null)}function q(n,e){return e.ctx.mode&&e.ctx.local?n.sol()?(n.eatSpace()||c(e,o),null):e.ctx.mode.token(n,e.ctx.local):(c(e,o),null)}function a(n,e,r,N){return{phase:n,stage:e,mode:r,local:N}}function c(n,e,r){n.tok=e,n.ctx=r||{}}function m(n){return n.ctx.stage||0}function k(n){return n.ctx.phase}return{startState:function(){return{tok:o,ctx:a(void 0,0)}},copyState:function(n){var e=n.ctx,r=n.tmp;return e.local&&(e={mode:e.mode,local:l.copyState(e.mode,e.local)}),r&&(r={mode:r.mode,local:l.copyState(r.mode,r.local)}),{tok:n.tok,ctx:e,tmp:r}},innerMode:function(n){return n.tmp?{state:n.tmp.local,mode:n.tmp.mode}:n.ctx.mode?{state:n.ctx.local,mode:n.ctx.mode}:null},token:function(n,e){return e.tok(n,e)}}},"python","stex"),l.defineMIME("text/x-rst","rst")})})();var ue=M.exports,_e=fe({__proto__:null,default:ue},[M.exports]);export{_e as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as A}from"./vendor.f6090249.js";function I(b,y){return y.forEach(function(u){u&&typeof u!="string"&&!Array.isArray(u)&&Object.keys(u).forEach(function(d){if(d!=="default"&&!(d in b)){var h=Object.getOwnPropertyDescriptor(u,d);Object.defineProperty(b,d,h.get?h:{enumerable:!0,get:function(){return u[d]}})}})}),Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var _={exports:{}};(function(b,y){(function(u){u(A.exports)})(function(u){function d(p){for(var f={},l=0,a=p.length;l<a;++l)f[p[l]]=!0;return f}var h=["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"],g=d(h),z=d(["def","class","case","for","while","until","module","then","catch","loop","proc","begin"]),w=d(["end","until"]),s={"[":"]","{":"}","(":")"},E={"]":"[","}":"{",")":"("};u.defineMode("ruby",function(p){var f;function l(e,i,n){return n.tokenize.push(e),e(i,n)}function a(e,i){if(e.sol()&&e.match("=begin")&&e.eol())return i.tokenize.push(O),"comment";if(e.eatSpace())return null;var n=e.next(),r;if(n=="`"||n=="'"||n=='"')return l(v(n,"string",n=='"'||n=="`"),e,i);if(n=="/")return W(e)?l(v(n,"string-2",!0),e,i):"operator";if(n=="%"){var t="string",o=!0;e.eat("s")?t="atom":e.eat(/[WQ]/)?t="string":e.eat(/[r]/)?t="string-2":e.eat(/[wxq]/)&&(t="string",o=!1);var c=e.eat(/[^\w\s=]/);return c?(s.propertyIsEnumerable(c)&&(c=s[c]),l(v(c,t,o,!0),e,i)):"operator"}else{if(n=="#")return e.skipToEnd(),"comment";if(n=="<"&&(r=e.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return l(L(r[2],r[1]),e,i);if(n=="0")return e.eat("x")?e.eatWhile(/[\da-fA-F]/):e.eat("b")?e.eatWhile(/[01]/):e.eatWhile(/[0-7]/),"number";if(/\d/.test(n))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if(n=="?"){for(;e.match(/^\\[CM]-/););return e.eat("\\")?e.eatWhile(/\w/):e.next(),"string"}else{if(n==":")return e.eat("'")?l(v("'","atom",!1),e,i):e.eat('"')?l(v('"',"atom",!0),e,i):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if(n=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"variable-2";if(n=="$")return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variable-3";if(/[a-zA-Z_\xa1-\uffff]/.test(n))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"ident";if(n=="|"&&(i.varList||i.lastTok=="{"||i.lastTok=="do"))return f="|",null;if(/[\(\)\[\]{}\\;]/.test(n))return f=n,null;if(n=="-"&&e.eat(">"))return"arrow";if(/[=+\-\/*:\.^%<>~|]/.test(n)){var k=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return n=="."&&!k&&(f="."),"operator"}else return null}}}function W(e){for(var i=e.pos,n=0,r,t=!1,o=!1;(r=e.next())!=null;)if(o)o=!1;else{if("[{(".indexOf(r)>-1)n++;else if("]})".indexOf(r)>-1){if(n--,n<0)break}else if(r=="/"&&n==0){t=!0;break}o=r=="\\"}return e.backUp(e.pos-i),t}function x(e){return e||(e=1),function(i,n){if(i.peek()=="}"){if(e==1)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](i,n);n.tokenize[n.tokenize.length-1]=x(e-1)}else i.peek()=="{"&&(n.tokenize[n.tokenize.length-1]=x(e+1));return a(i,n)}}function T(){var e=!1;return function(i,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](i,n)):(e=!0,a(i,n))}}function v(e,i,n,r){return function(t,o){var c=!1,k;for(o.context.type==="read-quoted-paused"&&(o.context=o.context.prev,t.eat("}"));(k=t.next())!=null;){if(k==e&&(r||!c)){o.tokenize.pop();break}if(n&&k=="#"&&!c){if(t.eat("{")){e=="}"&&(o.context={prev:o.context,type:"read-quoted-paused"}),o.tokenize.push(x());break}else if(/[@\$]/.test(t.peek())){o.tokenize.push(T());break}}c=!c&&k=="\\"}return i}}function L(e,i){return function(n,r){return i&&n.eatSpace(),n.match(e)?r.tokenize.pop():n.skipToEnd(),"string"}}function O(e,i){return e.sol()&&e.match("=end")&&e.eol()&&i.tokenize.pop(),e.skipToEnd(),"comment"}return{startState:function(){return{tokenize:[a],indented:0,context:{type:"top",indented:-p.indentUnit},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,i){f=null,e.sol()&&(i.indented=e.indentation());var n=i.tokenize[i.tokenize.length-1](e,i),r,t=f;if(n=="ident"){var o=e.current();n=i.lastTok=="."?"property":g.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(o)?"tag":i.lastTok=="def"||i.lastTok=="class"||i.varList?"def":"variable",n=="keyword"&&(t=o,z.propertyIsEnumerable(o)?r="indent":w.propertyIsEnumerable(o)?r="dedent":((o=="if"||o=="unless")&&e.column()==e.indentation()||o=="do"&&i.context.indented<i.indented)&&(r="indent"))}return(f||n&&n!="comment")&&(i.lastTok=t),f=="|"&&(i.varList=!i.varList),r=="indent"||/[\(\[\{]/.test(f)?i.context={prev:i.context,type:f||n,indented:i.indented}:(r=="dedent"||/[\)\]\}]/.test(f))&&i.context.prev&&(i.context=i.context.prev),e.eol()&&(i.continuedLine=f=="\\"||n=="operator"),n},indent:function(e,i){if(e.tokenize[e.tokenize.length-1]!=a)return u.Pass;var n=i&&i.charAt(0),r=e.context,t=r.type==E[n]||r.type=="keyword"&&/^(?:end|until|else|elsif|when|rescue)\b/.test(i);return r.indented+(t?0:p.indentUnit)+(e.continuedLine?p.indentUnit:0)},electricInput:/^\s*(?:end|rescue|elsif|else|\})$/,lineComment:"#",fold:"indent"}}),u.defineMIME("text/x-ruby","ruby"),u.registerHelper("hintWords","ruby",h)})})();var $=_.exports,B=I({__proto__:null,default:$},[_.exports]);export{_ as a,B as r};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import{w as a,y as c,z as h,A as n,E as e,C as r,W as t}from"./vendor.f6090249.js";const u={class:"markdown-body"},d=t("This guide explains how to install the "),p=e("em",null,"Development",-1),_=t(" version of Directus locally so that you can work on the platform\u2019s source code. To install the "),m=e("em",null,"Production",-1),g=t(" version locally, please follow to our "),f=t("standard installation guides"),y=t("."),b=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Minimum Requirements"),e("p",null,[t("You will need to have "),e("a",{href:"https://nodejs.org/en/download/current/",target:"_blank",rel:"noopener noreferrer"},"the latest version of Node"),t(" to "),e("em",null,"build"),t(" a Development version of Directus.")]),e("p",null,[t("You can use the JavaScript tool manager "),e("a",{href:"https://volta.sh/",target:"_blank",rel:"noopener noreferrer"},"volta"),t(" to automatically install the current node and npm versions.")])],-1),v=e("h2",{id:"1.-fork-the-directus-repository"},[t("1. Fork the Directus repository "),e("a",{class:"header-anchor",href:"#1.-fork-the-directus-repository"},"#")],-1),k=e("p",null,[t("Go to the "),e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},"repository"),t(" and fork it to your GitHub account. A fork is your copy of the Directus repository. Forking the repository allows you to freely experiment with changes without affecting the original project.")],-1),w=e("h2",{id:"2.-clone-from-your-repository"},[t("2. Clone from your repository "),e("a",{class:"header-anchor",href:"#2.-clone-from-your-repository"},"#")],-1),j=e("pre",null,[e("code",{class:"language-bash"},[t("git "),e("span",{class:"hljs-built_in"},"clone"),t(` git@github.com:YOUR-USERNAME/directus.git
|
|
2
|
-
`)])],-1),x=e("h2",{id:"3.-make-a-new-branch"},[t("3. Make a new branch "),e("a",{class:"header-anchor",href:"#3.-make-a-new-branch"},"#")],-1),D=e("pre",null,[e("code",{class:"language-bash"},`git checkout -b YOUR-BRANCH-NAME
|
|
3
|
-
`)],-1),A=e("h2",{id:"4.-install-the-dependencies-and-build-the-project"},[t("4. Install the dependencies and build the project "),e("a",{class:"header-anchor",href:"#4.-install-the-dependencies-and-build-the-project"},"#")],-1),T=e("pre",null,[e("code",{class:"language-bash"},`npm install
|
|
4
|
-
npm run build
|
|
5
|
-
`)],-1),C=e("h2",{id:"5.-create-a-.env-file"},[t("5. Create a "),e("code",null,".env"),t(" file "),e("a",{class:"header-anchor",href:"#5.-create-a-.env-file"},"#")],-1),E=e("p",null,[t("Create an "),e("code",null,".env"),t(" file under the "),e("code",null,"api"),t(" folder using vars from the online "),e("a",{href:"https://docs.directus.io/configuration/config-options/",target:"_blank",rel:"noopener noreferrer"},"config help")],-1),F=e("h2",{id:"6.-initialize-the-database"},[t("6. Initialize the database "),e("a",{class:"header-anchor",href:"#6.-initialize-the-database"},"#")],-1),R=e("p",null,"For this step, you\u2019ll need to already have a SQL database up-and-running, except if you\u2019re using the SQLite driver, which will create the database (file) for you.",-1),N=e("p",null,"To start the initialization run the following command:",-1),S=e("pre",null,[e("code",{class:"language-bash"},[e("span",{class:"hljs-comment"},"# From within the root of the project"),t(`
|
|
6
|
-
npm run cli bootstrap
|
|
7
|
-
|
|
8
|
-
`),e("span",{class:"hljs-comment"},"# For SQLite you need to run the command in the 'api' context (to ensure the database file is created in the right directory)"),t(`
|
|
9
|
-
npm run cli bootstrap --workspace=api
|
|
10
|
-
`)])],-1),z=e("p",null,"This will set-up the required tables for Directus and make sure all the migrations have run.",-1),B=e("h2",{id:"7.-start-the-development-server"},[t("7. Start the development server "),e("a",{class:"header-anchor",href:"#7.-start-the-development-server"},"#")],-1),I=e("p",null,[t("First you need to choose what packages you want to work on. Then, you should run the "),e("code",null,"dev"),t(" script on that package. You can see their names and list of scripts in their related "),e("code",null,"package.json"),t(". Example of running APP:")],-1),M=e("pre",null,[e("code",{class:"language-bash"},`npm run dev -w @directus/app
|
|
11
|
-
`)],-1),Y=e("p",null,"If you want to work on multiple packages at once, you should create a new instance of your terminal for each package: Example of running Api, App:",-1),q=e("table",null,[e("tr",null,[e("th",null," Terminal 1 [Api] "),e("th",null," Terminal 2 [App] ")]),e("tr",null,[e("td",null,[e("pre",null,[e("code",{class:"language-bash"},`npm run dev -w directus
|
|
12
|
-
`)])]),e("td",null,[e("pre",null,[e("code",{class:"language-bash"},`npm run dev -w @directus/app
|
|
13
|
-
`)])])])],-1),H=e("hr",null,null,-1),L=e("p",null,[t("To work on the Documentation (public website version), you should navigate to the "),e("code",null,"docs"),t(" directory and run the following command:")],-1),W=e("pre",null,[e("code",{class:"language-bash"},`npm install
|
|
14
|
-
`)],-1),G=e("p",null,[e("sup",null,"\u2139 This is necessary because the way vue-server-renderer imports vue")],-1),P=e("p",null,"Then you should run",-1),Q=e("pre",null,[e("code",{class:"language-bash"},`npm run dev:site
|
|
15
|
-
`)],-1),U=e("div",{class:"tip hint"},[e("p",null,"If you encounter errors during this installation process, make sure your node version meets the minimum requirements")],-1),V=e("h2",{id:"8.-make-your-fixes%2Fchanges"},[t("8. Make your fixes/changes "),e("a",{class:"header-anchor",href:"#8.-make-your-fixes%2Fchanges"},"#")],-1),O=t("At this point you are ready to start working on Directus! Before diving in however, it\u2019s worth reading through the introduction to "),J=t("Contributing"),K=t("."),X=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Debugging"),e("p",null,[t("Check our Wiki for a "),e("a",{href:"https://github.com/directus/directus/wiki/debugging",target:"_blank",rel:"noopener noreferrer"},"guide"),t(" on debugging the app and api.")])],-1),Z=e("h2",{id:"9.-running-tests"},[t("9. Running tests "),e("a",{class:"header-anchor",href:"#9.-running-tests"},"#")],-1),$=e("p",null,"Tests run automatically through GitHub Actions. However you may wish to run the tests locally especially when you write tests.",-1),ee=e("p",null,[t("Install "),e("a",{href:"https://docs.docker.com/get-docker/",target:"_blank",rel:"noopener noreferrer"},"Docker"),t(" and ensure that the service is running.")],-1),te=e("pre",null,[e("code",{class:"language-bash"},[e("span",{class:"hljs-comment"},"# Ensure that you are testing on the lastest codebase"),t(`
|
|
16
|
-
npm run build
|
|
17
|
-
|
|
18
|
-
`),e("span",{class:"hljs-comment"},"# Clean up in case you ran the tests before"),t(`
|
|
19
|
-
docker compose -f tests/docker-compose.yml down -v
|
|
20
|
-
|
|
21
|
-
`),e("span",{class:"hljs-comment"},"# Start the necessary containers"),t(`
|
|
22
|
-
docker compose -f tests/docker-compose.yml up -d --`),e("span",{class:"hljs-built_in"},"wait"),t(`
|
|
23
|
-
|
|
24
|
-
`),e("span",{class:"hljs-comment"},"# Run the tests"),t(`
|
|
25
|
-
npm run `),e("span",{class:"hljs-built_in"},"test"),t(`:e2e
|
|
26
|
-
`)])],-1),re={setup(ne,{expose:l}){const o={title:"Running Locally",modularExtension:!1};return l({frontmatter:o}),(oe,se)=>{const s=a("router-link"),i=a("DocsWrapper");return c(),h(i,{frontmatter:o},{default:n(()=>[e("div",u,[e("blockquote",null,[e("p",null,[d,p,_,m,g,r(s,{to:"/docs/self-hosted/installation/"},{default:n(()=>[f]),_:1}),y])]),b,v,k,w,j,x,D,A,T,C,E,F,R,N,S,z,B,I,M,Y,q,H,L,W,G,P,Q,U,V,e("p",null,[O,r(s,{to:"/docs/contributing/introduction"},{default:n(()=>[J]),_:1}),K]),X,Z,$,ee,te])]),_:1})}}};export{re as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as s}from"./vendor.f6090249.js";import{s as a}from"./simple.96f65f94.js";function u(r,n){return n.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in r)){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var i={exports:{}};(function(r,n){(function(e){e(s.exports,a.exports)})(function(e){e.defineSimpleMode("rust",{start:[{regex:/b?"/,token:"string",next:"string"},{regex:/b?r"/,token:"string",next:"string_raw"},{regex:/b?r#+"/,token:"string",next:"string_raw_hash"},{regex:/'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/,token:"string-2"},{regex:/b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/,token:"string-2"},{regex:/(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,token:"number"},{regex:/(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,token:"keyword"},{regex:/\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/,token:"atom"},{regex:/\b(?:true|false|Some|None|Ok|Err)\b/,token:"builtin"},{regex:/\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/#!?\[.*\]/,token:"meta"},{regex:/\/\/.*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"variable-3"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],meta:{dontIndentStates:["comment"],electricInput:/^\s*\}$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}}),e.defineMIME("text/x-rustsrc","rust"),e.defineMIME("text/rust","rust")})})();var f=i.exports,m=u({__proto__:null,default:f},[i.exports]);export{m as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as b}from"./vendor.f6090249.js";function v(c,p){return p.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(t){if(t!=="default"&&!(t in c)){var a=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(c,t,a.get?a:{enumerable:!0,get:function(){return i[t]}})}})}),Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var f={exports:{}};(function(c,p){(function(i){i(b.exports)})(function(i){i.defineMode("sas",function(){var t={},a={eq:"operator",lt:"operator",le:"operator",gt:"operator",ge:"operator",in:"operator",ne:"operator",or:"operator"},u=/(<=|>=|!=|<>)/,m=/[=\(:\),{}.*<>+\-\/^\[\]]/;function o(e,r,s){if(s)for(var l=r.split(" "),n=0;n<l.length;n++)t[l[n]]={style:e,state:s}}o("def","stack pgm view source debug nesting nolist",["inDataStep"]),o("def","if while until for do do; end end; then else cancel",["inDataStep"]),o("def","label format _n_ _error_",["inDataStep"]),o("def","ALTER BUFNO BUFSIZE CNTLLEV COMPRESS DLDMGACTION ENCRYPT ENCRYPTKEY EXTENDOBSCOUNTER GENMAX GENNUM INDEX LABEL OBSBUF OUTREP PW PWREQ READ REPEMPTY REPLACE REUSE ROLE SORTEDBY SPILL TOBSNO TYPE WRITE FILECLOSE FIRSTOBS IN OBS POINTOBS WHERE WHEREUP IDXNAME IDXWHERE DROP KEEP RENAME",["inDataStep"]),o("def","filevar finfo finv fipname fipnamel fipstate first firstobs floor",["inDataStep"]),o("def","varfmt varinfmt varlabel varlen varname varnum varray varrayx vartype verify vformat vformatd vformatdx vformatn vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx vinformatx vlabel vlabelx vlength vlengthx vname vnamex vnferr vtype vtypex weekday",["inDataStep"]),o("def","zipfips zipname zipnamel zipstate",["inDataStep"]),o("def","put putc putn",["inDataStep"]),o("builtin","data run",["inDataStep"]),o("def","data",["inProc"]),o("def","%if %end %end; %else %else; %do %do; %then",["inMacro"]),o("builtin","proc run; quit; libname filename %macro %mend option options",["ALL"]),o("def","footnote title libname ods",["ALL"]),o("def","%let %put %global %sysfunc %eval ",["ALL"]),o("variable","&sysbuffr &syscc &syscharwidth &syscmd &sysdate &sysdate9 &sysday &sysdevic &sysdmg &sysdsn &sysencoding &sysenv &syserr &syserrortext &sysfilrc &syshostname &sysindex &sysinfo &sysjobid &syslast &syslckrc &syslibrc &syslogapplname &sysmacroname &sysmenv &sysmsg &sysncpu &sysodspath &sysparm &syspbuff &sysprocessid &sysprocessname &sysprocname &sysrc &sysscp &sysscpl &sysscpl &syssite &sysstartid &sysstartname &systcpiphostname &systime &sysuserid &sysver &sysvlong &sysvlong4 &syswarningtext",["ALL"]),o("def","source2 nosource2 page pageno pagesize",["ALL"]),o("def","_all_ _character_ _cmd_ _freq_ _i_ _infile_ _last_ _msg_ _null_ _numeric_ _temporary_ _type_ abort abs addr adjrsq airy alpha alter altlog altprint and arcos array arsin as atan attrc attrib attrn authserver autoexec awscontrol awsdef awsmenu awsmenumerge awstitle backward band base betainv between blocksize blshift bnot bor brshift bufno bufsize bxor by byerr byline byte calculated call cards cards4 catcache cbufno cdf ceil center cexist change chisq cinv class cleanup close cnonct cntllev coalesce codegen col collate collin column comamid comaux1 comaux2 comdef compbl compound compress config continue convert cos cosh cpuid create cross crosstab css curobs cv daccdb daccdbsl daccsl daccsyd dacctab dairy datalines datalines4 datejul datepart datetime day dbcslang dbcstype dclose ddfm ddm delete delimiter depdb depdbsl depsl depsyd deptab dequote descending descript design= device dflang dhms dif digamma dim dinfo display distinct dkricond dkrocond dlm dnum do dopen doptname doptnum dread drop dropnote dsname dsnferr echo else emaildlg emailid emailpw emailserver emailsys encrypt end endsas engine eof eov erf erfc error errorcheck errors exist exp fappend fclose fcol fdelete feedback fetch fetchobs fexist fget file fileclose fileexist filefmt filename fileref fmterr fmtsearch fnonct fnote font fontalias fopen foptname foptnum force formatted formchar formdelim formdlim forward fpoint fpos fput fread frewind frlen from fsep fuzz fwrite gaminv gamma getoption getvarc getvarn go goto group gwindow hbar hbound helpenv helploc hms honorappearance hosthelp hostprint hour hpct html hvar ibessel ibr id if index indexc indexw initcmd initstmt inner input inputc inputn inr insert int intck intnx into intrr invaliddata irr is jbessel join juldate keep kentb kurtosis label lag last lbound leave left length levels lgamma lib library libref line linesize link list log log10 log2 logpdf logpmf logsdf lostcard lowcase lrecl ls macro macrogen maps mautosource max maxdec maxr mdy mean measures median memtype merge merror min minute missing missover mlogic mod mode model modify month mopen mort mprint mrecall msglevel msymtabmax mvarsize myy n nest netpv new news nmiss no nobatch nobs nocaps nocardimage nocenter nocharcode nocmdmac nocol nocum nodate nodbcs nodetails nodmr nodms nodmsbatch nodup nodupkey noduplicates noechoauto noequals noerrorabend noexitwindows nofullstimer noicon noimplmac noint nolist noloadlist nomiss nomlogic nomprint nomrecall nomsgcase nomstored nomultenvappl nonotes nonumber noobs noovp nopad nopercent noprint noprintinit normal norow norsasuser nosetinit nosplash nosymbolgen note notes notitle notitles notsorted noverbose noxsync noxwait npv null number numkeys nummousekeys nway obs on open order ordinal otherwise out outer outp= output over ovp p(1 5 10 25 50 75 90 95 99) pad pad2 paired parm parmcards path pathdll pathname pdf peek peekc pfkey pmf point poisson poke position printer probbeta probbnml probchi probf probgam probhypr probit probnegb probnorm probsig probt procleave prt ps pw pwreq qtr quote r ranbin rancau random ranexp rangam range ranks rannor ranpoi rantbl rantri ranuni rcorr read recfm register regr remote remove rename repeat repeated replace resolve retain return reuse reverse rewind right round rsquare rtf rtrace rtraceloc s s2 samploc sasautos sascontrol sasfrscr sasmsg sasmstore sasscript sasuser saving scan sdf second select selection separated seq serror set setcomm setot sign simple sin sinh siteinfo skewness skip sle sls sortedby sortpgm sortseq sortsize soundex spedis splashlocation split spool sqrt start std stderr stdin stfips stimer stname stnamel stop stopover sub subgroup subpopn substr sum sumwgt symbol symbolgen symget symput sysget sysin sysleave sysmsg sysparm sysprint sysprintfont sysprod sysrc system t table tables tan tanh tapeclose tbufsize terminal test then timepart tinv tnonct to today tol tooldef totper transformout translate trantab tranwrd trigamma trim trimn trunc truncover type unformatted uniform union until upcase update user usericon uss validate value var weight when where while wincharset window work workinit workterm write wsum xsync xwait yearcutoff yes yyq min max",["inDataStep","inProc"]),o("operator","and not ",["inDataStep","inProc"]);function y(e,r){var s=e.next();if(s==="/"&&e.eat("*"))return r.continueComment=!0,"comment";if(r.continueComment===!0)return s==="*"&&e.peek()==="/"?(e.next(),r.continueComment=!1):e.skipTo("*")?(e.skipTo("*"),e.next(),e.eat("/")&&(r.continueComment=!1)):e.skipToEnd(),"comment";if(s=="*"&&e.column()==e.indentation())return e.skipToEnd(),"comment";var l=s+e.peek();if((s==='"'||s==="'")&&!r.continueString)return r.continueString=s,"string";if(r.continueString)return r.continueString==s?r.continueString=null:e.skipTo(r.continueString)?(e.next(),r.continueString=null):e.skipToEnd(),"string";if(r.continueString!==null&&e.eol())return e.skipTo(r.continueString)||e.skipToEnd(),"string";if(/[\d\.]/.test(s))return s==="."?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):s==="0"?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(u.test(s+e.peek()))return e.next(),"operator";if(a.hasOwnProperty(l)){if(e.next(),e.peek()===" ")return a[l.toLowerCase()]}else if(m.test(s))return"operator";var n;if(e.match(/[%&;\w]+/,!1)!=null){if(n=s+e.match(/[%&;\w]+/,!0),/&/.test(n))return"variable"}else n=s;if(r.nextword)return e.match(/[\w]+/),e.peek()==="."&&e.skipTo(" "),r.nextword=!1,"variable-2";if(n=n.toLowerCase(),r.inDataStep){if(n==="run;"||e.match(/run\s;/))return r.inDataStep=!1,"builtin";if(n&&e.next()===".")return/\w/.test(e.peek())?"variable-2":"variable";if(n&&t.hasOwnProperty(n)&&(t[n].state.indexOf("inDataStep")!==-1||t[n].state.indexOf("ALL")!==-1)){e.start<e.pos&&e.backUp(e.pos-e.start);for(var d=0;d<n.length;++d)e.next();return t[n].style}}if(r.inProc){if(n==="run;"||n==="quit;")return r.inProc=!1,"builtin";if(n&&t.hasOwnProperty(n)&&(t[n].state.indexOf("inProc")!==-1||t[n].state.indexOf("ALL")!==-1))return e.match(/[\w]+/),t[n].style}return r.inMacro?n==="%mend"?(e.peek()===";"&&e.next(),r.inMacro=!1,"builtin"):n&&t.hasOwnProperty(n)&&(t[n].state.indexOf("inMacro")!==-1||t[n].state.indexOf("ALL")!==-1)?(e.match(/[\w]+/),t[n].style):"atom":n&&t.hasOwnProperty(n)?(e.backUp(1),e.match(/[\w]+/),n==="data"&&/=/.test(e.peek())===!1?(r.inDataStep=!0,r.nextword=!0,"builtin"):n==="proc"?(r.inProc=!0,r.nextword=!0,"builtin"):n==="%macro"?(r.inMacro=!0,r.nextword=!0,"builtin"):/title[1-9]/.test(n)?"def":n==="footnote"?(e.eat(/[1-9]/),"def"):r.inDataStep===!0&&t[n].state.indexOf("inDataStep")!==-1||r.inProc===!0&&t[n].state.indexOf("inProc")!==-1||r.inMacro===!0&&t[n].state.indexOf("inMacro")!==-1||t[n].state.indexOf("ALL")!==-1?t[n].style:null):null}return{startState:function(){return{inDataStep:!1,inProc:!1,inMacro:!1,nextword:!1,continueString:null,continueComment:!1}},token:function(e,r){return e.eatSpace()?null:y(e,r)},blockCommentStart:"/*",blockCommentEnd:"*/"}}),i.defineMIME("text/x-sas","sas")})})();var g=f.exports,x=v({__proto__:null,default:g},[f.exports]);export{x as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as W}from"./vendor.f6090249.js";import{a as _}from"./css.e214430c.js";function $(x,g){return g.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(t){if(t!=="default"&&!(t in x)){var p=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(x,t,p.get?p:{enumerable:!0,get:function(){return i[t]}})}})}),Object.freeze(Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}))}var O={exports:{}};(function(x,g){(function(i){i(W.exports,_.exports)})(function(i){i.defineMode("sass",function(t){var p=i.mimeModes["text/css"],y=p.propertyKeywords||{},j=p.colorKeywords||{},E=p.valueKeywords||{},T=p.fontProperties||{};function A(r){return new RegExp("^"+r.join("|"))}var K=["true","false","null","auto"],s=new RegExp("^"+K.join("|")),L=["\\(","\\)","=",">","<","==",">=","<=","\\+","-","\\!=","/","\\*","%","and","or","not",";","\\{","\\}",":"],z=A(L),R=/^::?[a-zA-Z_][\w\-]*/,u;function f(r){return!r.peek()||r.match(/\s+$/,!1)}function b(r,n){var e=r.peek();return e===")"?(r.next(),n.tokenizer=l,"operator"):e==="("?(r.next(),r.eatSpace(),"operator"):e==="'"||e==='"'?(n.tokenizer=a(r.next()),"string"):(n.tokenizer=a(")",!1),"string")}function H(r,n){return function(e,o){return e.sol()&&e.indentation()<=r?(o.tokenizer=l,l(e,o)):(n&&e.skipTo("*/")?(e.next(),e.next(),o.tokenizer=l):e.skipToEnd(),"comment")}}function a(r,n){n==null&&(n=!0);function e(o,d){var h=o.next(),k=o.peek(),v=o.string.charAt(o.pos-2),w=h!=="\\"&&k===r||h===r&&v!=="\\";return w?(h!==r&&n&&o.next(),f(o)&&(d.cursorHalf=0),d.tokenizer=l,"string"):h==="#"&&k==="{"?(d.tokenizer=P(e),o.next(),"operator"):"string"}return e}function P(r){return function(n,e){return n.peek()==="}"?(n.next(),e.tokenizer=r,"operator"):l(n,e)}}function c(r){if(r.indentCount==0){r.indentCount++;var n=r.scopes[0].offset,e=n+t.indentUnit;r.scopes.unshift({offset:e})}}function C(r){r.scopes.length!=1&&r.scopes.shift()}function l(r,n){var e=r.peek();if(r.match("/*"))return n.tokenizer=H(r.indentation(),!0),n.tokenizer(r,n);if(r.match("//"))return n.tokenizer=H(r.indentation(),!1),n.tokenizer(r,n);if(r.match("#{"))return n.tokenizer=P(l),"operator";if(e==='"'||e==="'")return r.next(),n.tokenizer=a(e),"string";if(n.cursorHalf){if(e==="#"&&(r.next(),r.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/))||r.match(/^-?[0-9\.]+/))return f(r)&&(n.cursorHalf=0),"number";if(r.match(/^(px|em|in)\b/))return f(r)&&(n.cursorHalf=0),"unit";if(r.match(s))return f(r)&&(n.cursorHalf=0),"keyword";if(r.match(/^url/)&&r.peek()==="(")return n.tokenizer=b,f(r)&&(n.cursorHalf=0),"atom";if(e==="$")return r.next(),r.eatWhile(/[\w-]/),f(r)&&(n.cursorHalf=0),"variable-2";if(e==="!")return r.next(),n.cursorHalf=0,r.match(/^[\w]+/)?"keyword":"operator";if(r.match(z))return f(r)&&(n.cursorHalf=0),"operator";if(r.eatWhile(/[\w-]/))return f(r)&&(n.cursorHalf=0),u=r.current().toLowerCase(),E.hasOwnProperty(u)?"atom":j.hasOwnProperty(u)?"keyword":y.hasOwnProperty(u)?(n.prevProp=r.current().toLowerCase(),"property"):"tag";if(f(r))return n.cursorHalf=0,null}else{if(e==="-"&&r.match(/^-\w+-/))return"meta";if(e==="."){if(r.next(),r.match(/^[\w-]+/))return c(n),"qualifier";if(r.peek()==="#")return c(n),"tag"}if(e==="#"){if(r.next(),r.match(/^[\w-]+/))return c(n),"builtin";if(r.peek()==="#")return c(n),"tag"}if(e==="$")return r.next(),r.eatWhile(/[\w-]/),"variable-2";if(r.match(/^-?[0-9\.]+/))return"number";if(r.match(/^(px|em|in)\b/))return"unit";if(r.match(s))return"keyword";if(r.match(/^url/)&&r.peek()==="(")return n.tokenizer=b,"atom";if(e==="="&&r.match(/^=[\w-]+/))return c(n),"meta";if(e==="+"&&r.match(/^\+[\w-]+/))return"variable-3";if(e==="@"&&r.match("@extend")&&(r.match(/\s*[\w]/)||C(n)),r.match(/^@(else if|if|media|else|for|each|while|mixin|function)/))return c(n),"def";if(e==="@")return r.next(),r.eatWhile(/[\w-]/),"def";if(r.eatWhile(/[\w-]/))if(r.match(/ *: *[\w-\+\$#!\("']/,!1)){u=r.current().toLowerCase();var o=n.prevProp+"-"+u;return y.hasOwnProperty(o)?"property":y.hasOwnProperty(u)?(n.prevProp=u,"property"):T.hasOwnProperty(u)?"property":"tag"}else return r.match(/ *:/,!1)?(c(n),n.cursorHalf=1,n.prevProp=r.current().toLowerCase(),"property"):(r.match(/ *,/,!1)||c(n),"tag");if(e===":")return r.match(R)?"variable-3":(r.next(),n.cursorHalf=1,"operator")}return r.match(z)?"operator":(r.next(),null)}function S(r,n){r.sol()&&(n.indentCount=0);var e=n.tokenizer(r,n),o=r.current();if((o==="@return"||o==="}")&&C(n),e!==null){for(var d=r.pos-o.length,h=d+t.indentUnit*n.indentCount,k=[],v=0;v<n.scopes.length;v++){var w=n.scopes[v];w.offset<=h&&k.push(w)}n.scopes=k}return e}return{startState:function(){return{tokenizer:l,scopes:[{offset:0,type:"sass"}],indentCount:0,cursorHalf:0,definedVars:[],definedMixins:[]}},token:function(r,n){var e=S(r,n);return n.lastToken={style:e,content:r.current()},e},indent:function(r){return r.scopes[0].offset},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"indent"}},"css"),i.defineMIME("text/x-sass","sass")})})();var M=O.exports,U=$({__proto__:null,default:M},[O.exports]);export{O as a,U as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bW as A}from"./vendor.f6090249.js";function D(f,x){return x.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(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var M={exports:{}};(function(f,x){(function(t){t(A.exports)})(function(t){t.defineMode("scheme",function(){var o="builtin",a="comment",v="string",d="atom",b="number",y="bracket",N=2;function w(e){for(var n={},i=e.split(" "),l=0;l<i.length;++l)n[i[l]]=!0;return n}var k=w("\u03BB case-lambda call/cc class cond-expand define-class define-values exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax define-macro defmacro delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),C=w("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function O(e,n,i){this.indent=e,this.type=n,this.prev=i}function u(e,n,i){e.indentStack=new O(n,i,e.indentStack)}function Q(e){e.indentStack=e.indentStack.prev}var _=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),j=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),I=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),$=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function R(e){return e.match(_)}function B(e){return e.match(j)}function s(e,n){return n===!0&&e.backUp(1),e.match($)}function U(e){return e.match(I)}return{startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,n){if(n.indentStack==null&&e.sol()&&(n.indentation=e.indentation()),e.eatSpace())return null;var i=null;switch(n.mode){case"string":for(var l,p=!1;(l=e.next())!=null;){if(l=='"'&&!p){n.mode=!1;break}p=!p&&l=="\\"}i=v;break;case"comment":for(var l,E=!1;(l=e.next())!=null;){if(l=="#"&&E){n.mode=!1;break}E=l=="|"}i=a;break;case"s-expr-comment":if(n.mode=!1,e.peek()=="("||e.peek()=="[")n.sExprComment=0;else{e.eatWhile(/[^\s\(\)\[\]]/),i=a;break}default:var r=e.next();if(r=='"')n.mode="string",i=v;else if(r=="'")e.peek()=="("||e.peek()=="["?(typeof n.sExprQuote!="number"&&(n.sExprQuote=0),i=d):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),i=d);else if(r=="#")if(e.eat("|"))n.mode="comment",i=a;else if(e.eat(/[tf]/i))i=d;else if(e.eat(";"))n.mode="s-expr-comment",i=a;else{var c=null,m=!1,S=!0;e.eat(/[ei]/i)?m=!0:e.backUp(1),e.match(/^#b/i)?c=R:e.match(/^#o/i)?c=B:e.match(/^#x/i)?c=U:e.match(/^#d/i)?c=s:e.match(/^[-+0-9.]/,!1)?(S=!1,c=s):m||e.eat("#"),c!=null&&(S&&!m&&e.match(/^#[ei]/i),c(e)&&(i=b))}else if(/^[-+0-9.]/.test(r)&&s(e,!0))i=b;else if(r==";")e.skipToEnd(),i=a;else if(r=="("||r=="["){for(var h="",g=e.column(),q;(q=e.eat(/[^\s\(\[\;\)\]]/))!=null;)h+=q;h.length>0&&C.propertyIsEnumerable(h)?u(n,g+N,r):(e.eatSpace(),e.eol()||e.peek()==";"?u(n,g+1,r):u(n,g+e.current().length,r)),e.backUp(e.current().length-1),typeof n.sExprComment=="number"&&n.sExprComment++,typeof n.sExprQuote=="number"&&n.sExprQuote++,i=y}else r==")"||r=="]"?(i=y,n.indentStack!=null&&n.indentStack.type==(r==")"?"(":"[")&&(Q(n),typeof n.sExprComment=="number"&&--n.sExprComment==0&&(i=a,n.sExprComment=!1),typeof n.sExprQuote=="number"&&--n.sExprQuote==0&&(i=d,n.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),k&&k.propertyIsEnumerable(e.current())?i=o:i="variable")}return typeof n.sExprComment=="number"?a:typeof n.sExprQuote=="number"?d:i},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent},closeBrackets:{pairs:'()[]{}""'},lineComment:";;"}}),t.defineMIME("text/x-scheme","scheme")})})();var K=M.exports,z=D({__proto__:null,default:K},[M.exports]);export{z as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as i,y as c,z as n,A as o,E as e,W as a}from"./vendor.f6090249.js";const d=e("div",{class:"markdown-body"},[e("blockquote",null,[e("p",null,"TK")]),e("h2",{id:"https"},[a("HTTPS "),e("a",{class:"header-anchor",href:"#https"},"#")]),e("h2",{id:"password-salting%2Fhashing%2Falgorithm-%26-password-policy"},[a("Password Salting/Hashing/Algorithm & Password Policy "),e("a",{class:"header-anchor",href:"#password-salting%2Fhashing%2Falgorithm-%26-password-policy"},"#")]),e("h2",{id:"static-tokens"},[a("Static Tokens "),e("a",{class:"header-anchor",href:"#static-tokens"},"#")]),e("h2",{id:"encrypted-fields-%26-encrypted-database"},[a("Encrypted Fields & Encrypted Database "),e("a",{class:"header-anchor",href:"#encrypted-fields-%26-encrypted-database"},"#")]),e("h2",{id:"private-file-links"},[a("Private File Links "),e("a",{class:"header-anchor",href:"#private-file-links"},"#")]),e("h2",{id:"mfa-(required)-%26-sso"},[a("MFA (Required) & SSO "),e("a",{class:"header-anchor",href:"#mfa-(required)-%26-sso"},"#")]),e("h2",{id:"granular-access-control-%26-ip-white-listing-%26-app-access"},[a("Granular Access Control & IP WHite-Listing & App Access "),e("a",{class:"header-anchor",href:"#granular-access-control-%26-ip-white-listing-%26-app-access"},"#")]),e("h2",{id:"rate-limiting"},[a("Rate Limiting "),e("a",{class:"header-anchor",href:"#rate-limiting"},"#")]),e("h2",{id:"encrypted"},[a("Encrypted "),e("a",{class:"header-anchor",href:"#encrypted"},"#")]),e("h2",{id:"parameterized-database-queries"},[a("Parameterized Database Queries "),e("a",{class:"header-anchor",href:"#parameterized-database-queries"},"#")])],-1),m={setup(h,{expose:r}){const s={title:"Security",modularExtension:!1};return r({frontmatter:s}),(l,p)=>{const t=i("DocsWrapper");return c(),n(t,{frontmatter:s},{default:o(()=>[d]),_:1})}}};export{m as default};
|