Commit Graph

1308 Commits

Author SHA1 Message Date
Rijk van Zanten
839fdb10bd Add missing var 2024-03-07 17:29:11 -05:00
Rijk van Zanten
3072a1aa57 Document max limit 2024-03-07 14:48:12 -05:00
Rijk van Zanten
5aa949bcfc Soften note language 2024-03-06 16:24:40 -05:00
Rijk van Zanten
bd168545d0 Add support for EMAIL_TEMPLATES_PATH (#21729)
* Load custom templates from templates path

* Fix name

* Add changeset

* Fix missing env vars in tests

* Fix name typo

* Move email templates to self hosted section

* Add breaking change note

* Add redirect for old file
2024-03-06 15:48:21 -05:00
Kevin Lewis
740b7ca48b Docs: Move Migrations out of Extensions (#21719)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-06 13:14:40 +00:00
dependabot[bot]
d4be67e6ab Bump eslint-plugin-react from 7.33.2 to 7.34.0 (#21708)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.2 to 7.34.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-06 10:16:36 +01:00
Pascal Jufer
6a4b9ba942 Remove outdated hint about npm in marketplace docs (#21705) 2024-03-05 16:48:46 -05:00
Kevin Lewis
d12b7c9033 Clarified that extension type subdirectories must be removed (#21696)
* Clarified that extension type subdirectories must be removed

* Update docs/releases/breaking-changes.md

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Improve language on extensions type breaking change

* Add changeset

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-03-05 15:34:32 -05:00
Pascal Jufer
82b23a57d4 Add the Directus Marketplace (#21674)
* Add support for MIGRATIONS_PATH (#20627)

* Deprecate "local" extension types (#20624)

* No longer resolve local non-package extensions

* Remove local extensions from watcher

* Install fs-extra for app dev

* Replace usage of get-extensions

* Rename create functions to match behavior

* Drop extensions prefix from cli create

* Drop name requirement from cli add

* Drop extensions name regex checks

* Don't rely on regex for extension identification

* Add changeset

* Fix build for @directus/extensions

* Don't ensure nested dirs

* Load npm dependency by name prefix

* Throw more helpful error when pkg json is missing

* Fix dependency loading paths

* Only load local extensions if extensions path exists

* Fix merge conflict

* Remove unused fs-extra

* Only sync extensions if location is defined

* `extensions` -> `localExtensions`

* Fix resolving of package extensions

- consistent usage of term "package extensions"
- enhance error messages

* Fix syncing extension from storage

* Revert-revert change from #20627

---------

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Add back `MIGRATIONS_PATH` to `@directus/env` (#21053)

* Setup browse endpoint for browsing Directus extensions (#21033)

* Rename tag directus-custom to directus-extension

* Devil's in the details

* [WIP] Start on search lib

* Setup extensions-registry package

* Update pnpm lock

* Move registry search fn to new package

* Squash bugs

* Remove unused deps

* Remove unused dep in `extensions`

* Add tests for validate-limit

* Finish test coverage

* Remove unused constant

* Add back lodash-es 😇

* Install extensions-registry

* Add default keywords

* Expose registry endpoint in rest api

* Add describe module

* Reinstal pnpm

* Drop reliance on author field

The problem is that there's no requirement for it to be a valid(ated) user. Publisher is the only field we can rely on being an existing NPM user.

* Update convertSearchResult test after author change

* Format

* Allow anything after the route

To support packages with scopes

* Add test for describe

* Add more tests

* Throw unprocessablecontenterror instead of error

* Install errors pkg

* Finish test coverage

* Don't require description

* Don't wrap individual keywords

* Run formatter

* Add changeset

* Update packages/extensions-registry/src/modules/search/utils/validate-text.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Return sandbox information

* Drop support for directus-custom keyword

* Set type to null for multiple tags

* Restart api for new registry

* Add version utility

* Add out-of-date error

* Add assertion for api versions

* Finish new list method

* Add describe

* Use updated registry functions

* Fix controller usage

* Return output in data flag to be consistent

* Add tests for the describe module

* Add tests for list module

* Finish tests for extensions-registry package

* Remove vscode shenanigans

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Project Forum: Browse UX (#21276)

* Render marketplace route in-app

* Update api list integration

* Add support for limit/offset in list

* Boilerplate route for drawer

* Render extension readme in drawer

* Render extension detail as separate page

* Setup markup for extension banner

* Render readme with markdown styling

* Boilerplate metadata block

* Use v-list for extension metadata metrics

* Render compatibility metric

* Show downloads and publish date

* Refactor to individual files

* Fix missing import

* Add size metric

* Show author on metadat

* Show verified badge

* Finish metadata

* Run formatter

* Style forum detail banner (#21290)

* Style banner contents

* Add background art

* Add banner styles to default dark mode theme

* Undo base style change to avoid conflict

* Add beta chip badge to settings nav (#21296)

* Add layout styling for detail page (#21297)

* Render metadata as grid if size allows

* Finish layout for detail page

* Fix alignment of count

* Fix search-input active state

* Finalize forum header

* Add marketplace banner

* Style registry filter

* Change v-list-item height to min-height

Allows rows for forum registry to grow

* Finalize styling for extension list item

* Finalize styling for registry

* Don't rely on format util

* Forum account detail page (#21299)

* Add support for author describe endpoint

* Boilerplate author page

* Add author endpoint

* Update naming to account

* Render github name on registry list

* Render user's name + avatar on detail

* Load account data on account page

* Restructure module

* Render account banner on account page

* Render account metadata

* Finish account detail page

* Run formatter

* Add sidebar info detail sections

* install extensions from registry (#21070)

* added an endpoint to install extensions from registries

* add changeset

* Revert format/lint scripts

* Update pnpm-lock

* Remove unused dependency

* Add download module to extensions-registry abstraction

* Download from extension registry instead of direct npm

* Throw on error

* Install based on version ID rather than name

* Install based on ID in body

Allows us to extend it in the future if need be

* Download to tmp path instead of extensions

* Save to extensions manager flattened

* Use const for package folder name

* Run more in try/catch to avoid server exit

* Remove changeset

* Undo docs updates

We'll do all docs in a single PR :)

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* Manage extensions by directus_extensions primary key instead of npm package name (#21300)

* Add marketplace migration

* Include bundle info

* Rename name to folder

* Store name as folder

* [WIP] Change name to ID

* Update API to use UUIDs for extensions

* Update app to use extensions id

* Run formatter

* Add changeset

* Update generate-app-entrypoint to use updated format

* Fix graphql usage

* Format

* Add forum uninstall endpoint (#21301)

* Bootstrap uninstall

* Finish uninstall endpoint

* Use shared extensions store state for managing extensions in settings (#21317)

* Use extensionsstore for extensions management

* Use shared store for extensions state and modification

* Remove unused emit

* Adds install/uninstall GUI elements for project forum (#21319)

* Use warning color for incompatible

* Styling tweaks

* Transition optional background color

* Add keys for installing

* Add install button to extension detail

* Finish install button

* Add uninstall option to extensions item

* Empty local cached extensions on start

* Add (hopefully) temporary hack to await reload

* Add install / uninstall buttons

* Update lockfile

* Fix bundle entries not rendering properly

* Clean up spinner styling

* Properly wait for reload to be done

* Run formatter

* Fix registry name

* Fix local extension loading

* Render location/company in byline

* Rearchitect metadata to unstyled listitems

* Add max-width to page container

* Only allow admins to install/uninstall extensions

* Remove unused link

* Disable eslint for map use

* Run formatter

* Add no-results indicator (#21389)

* Add no-results indicator

* add error state as well

* Standardize trailing slash

* Standardize pk check

* Resolve unnecessary check

* Move all deps to dev deps in app

* Optimize exec order

* Pull data from top level package

* Redesign filter bar

* Reset page count on filter change

* Use default padding on top of page

Feels weird now, but there's a theme-update coming that'll make this make sense :)

* Show first/last in pagination

* Auto-format package name

* Use updated registry api return names

* Add sorting by total downloads

* Add sparkline for downloads

* Add a bit of padding

* Finalize sparkline styling

* Run formatterg

* Add sandbox flag in list call

* Add MARKETPLACE_TRUST env var

* Set sandbox requirement on download

* Render list item badge

* Fix padding

* Show license in gui

* Add support for multiple maintainers

* Add activity tracking for install

* Make incompatibility notice friendlier

* Tweak margin of sparkline

* Update default CSP headers to include github content

* Make extension readme selectable

* Consistent icon, add tooltips

* Reduce size of install button

* Run formatter

* Render readme anchors with target blank

* Add min width to v-select components

* Fix background on search input

* Reduce padding on marketplace pages

* Fix showing no results

* Be consistent

* Render type filter menu in full height

* Clean up compatibility notice

* Hide count result when search count is 0

* Use v-show instead

* Bump no results notice down a bit

* Cleanup size of install buttons

* Use buttons for install / author

* Fix sparkline rendering

* Add better loading state for extension detail page

* Add spinners

* Render proper error message in case readme is missing

* Use heart logo for marketplace

* Add image border shadow

* Add loading banner on account page

* Show reload warning as persistent notification

* Only show one notification

* Update snapshot

* Add padding to verified icon

* Base extensions id on package id, show installed badge

* Sync pagination / search / filter with URL

Special shoutout to Tim

* Next max ext (#21541)

* Add limit exceeded error

* Add limit exceeded translation

* Add extensions_limit env var

* Load extensions limit in app

* Don't allow installing unknown versions

* Don't require installed flag

* Return bundled entries in describe

* Update chip to match style

* Prevent install on limit reached

* Run formatter

* Fix bundle loading

* Resolve npm extensions by package manifest (#21478)

* Merge main into next (#21669)

* Clean-up deps

* Don't export type (as long as not used anywhere)

* Update semver to latest

* Relax compatibility notice

* Use more suitable icon for version

* Re-render download charts on color-scheme change

* Link extensions to marketplace

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Mahendra Kumar <22556323+mahendraHegde@users.noreply.github.com>
2024-03-04 14:34:59 -05:00
Azri Kahar
a9b628baa6 Deep merge relational fields in content versions (#21386)
* deep merge content version saves

* update content version graphql

* moved version merging to its own middleware

* added query param to request the unmodified version

* make sure the App uses the raw version format

* prettier

* removed unused middleware

* initial recursive version merging

* use loop instead of spreading

* cleanup

* accept boolean strings as versionRaw query value

* added middleware sanity check

* initial mergeVersionsRaw tests

* initial mergeVersionsRaw tests

* started merge tests

* initial m2o tests

* initial tests

* fixed logic for initial tests

* prettier

* more tests

* fixed brought up by tests

* first level relational tests

* testing nested relations

* fixed recursiveness

* more prettier

* namin consistency

* the prettiest

* Create chilled-icons-provide.md

* Add breaking change note

* updated graphql for version merging

* prettier

* added new sdk query param

* implemented judds feedback

* Enable singleton

* Slightly reformat/reword breaking change

Thanks @w0kyj!

* Clarify comment about primitive type substitution

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* replaced for in loops

* applied isObject check

* prettier

* Short issue link

* Update changeset

* added sso guide warning

* pretttier

* update sso guide instead of warning

* prettier

* reverted SSO guide from other PR, nothing to see here

* Added cloneDeep to be safe

* removed snake case

---------

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2024-03-04 11:57:51 -05:00
Brainslug
37a63bd9ea Added redirect allow list note (#21679)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-04 14:34:15 +00:00
Brainslug
0be4703c7f updated SSO docs for the new session token (#21677) 2024-03-04 15:29:40 +01:00
Kevin Lewis
5c312f8bee Removed sections (#21676) 2024-03-04 11:48:03 +00:00
Pascal Jufer
1c0d786e2c Fix endpoint typo in Content Versions docs (#21672) 2024-03-04 10:12:53 +01:00
Pascal Jufer
7f8fa35322 Happy Spellchecker (#21668) 2024-03-04 05:52:07 +01:00
Brainslug
5477d7d61b Fix URL Redirection in OAuth2/OpenID/SAML (#21238)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2024-03-04 04:43:48 +00:00
Pascal Jufer
068591def0 Patch Happy Monday 🐸 (#21667) 2024-03-04 03:47:55 +01:00
Brainslug
77d73398f1 Session Based Authentication (#21239)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-04 01:59:45 +01:00
Pascal Jufer
9f536270b9 Fix a few inaccuracies in auth provider docs (#21662) 2024-03-03 17:44:20 +01:00
Kevin Lewis
4073324d3b Marketplace Documentation (#21458)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-02 14:50:29 +00:00
dependabot[bot]
17cc6d156b Bump @pnpm/find-workspace-dir from 6.0.2 to 6.0.3 (#21583)
Bumps [@pnpm/find-workspace-dir](https://github.com/pnpm/pnpm) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/pnpm/pnpm/releases)
- [Commits](https://github.com/pnpm/pnpm/commits)

---
updated-dependencies:
- dependency-name: "@pnpm/find-workspace-dir"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 02:11:15 +01:00
dependabot[bot]
ce8f405d3d Bump typedoc from 0.25.8 to 0.25.9 (#21580)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.25.8 to 0.25.9.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.25.8...v0.25.9)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 02:01:10 +01:00
Bryant Gillespie
2494b5c2d0 Fix typo on extensions doc (#21571) 2024-02-26 19:15:56 +01:00
Pascal Jufer
f306dfffb6 Fix links to Next.js guide (#21549) 2024-02-25 18:48:28 +01:00
Rijk van Zanten
2fb5bef2e4 Update collections.md
Fixes #21490
2024-02-20 11:47:03 -05:00
Brainslug
1af3c57509 Fixed incorrect deep filter docs example (#21473) 2024-02-19 11:50:40 +01:00
Pascal Jufer
7811d83884 Clean-up MESSENGER_* config options (#21452) 2024-02-16 12:15:28 +01:00
Davian The Phoenix
450f923b18 Allow Flow Update data operation to update item bulk (unique values per item) (#21443)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-16 11:04:39 +00:00
dependabot[bot]
baffa1af2d Bump typedoc-plugin-markdown from 4.0.0-next.43 to 4.0.0-next.53 (#21435)
Bumps [typedoc-plugin-markdown](https://github.com/tgreyuk/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown) from 4.0.0-next.43 to 4.0.0-next.53.
- [Release notes](https://github.com/tgreyuk/typedoc-plugin-markdown/releases)
- [Changelog](https://github.com/tgreyuk/typedoc-plugin-markdown/blob/typedoc-plugin-markdown@4.0.0-next.53/packages/typedoc-plugin-markdown/CHANGELOG.md)
- [Commits](https://github.com/tgreyuk/typedoc-plugin-markdown/commits/typedoc-plugin-markdown@4.0.0-next.53/packages/typedoc-plugin-markdown)

---
updated-dependencies:
- dependency-name: typedoc-plugin-markdown
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-15 11:48:06 +01:00
Pascal Jufer
77346cf639 Clean-up request IP validation (#21370) 2024-02-14 15:37:51 +01:00
Kevin Lewis
633edc5042 CLoses #21415 (#21429) 2024-02-14 15:18:47 +01:00
Brainslug
2c4883ae42 Filter system collections based on the system property (#21197)
Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-14 14:40:57 +01:00
Pascal Jufer
206a7cae0b Update dependencies (#21428) 2024-02-14 12:12:50 +01:00
Pascal Jufer
0697657c76 Small follow-up on "Fix Next.js Starter Guide" #21405 (#21408) 2024-02-12 21:03:01 +01:00
Esther Agbaje
92cda04d7a Fix Next.js Starter Guide (#21405)
* updates to fix errors

* update filename

* add redirect

* fix redirect

* update fields query

* update fields query

* Don't lint toml files

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-12 20:46:30 +01:00
dependabot[bot]
d5b6dd328e Bump spellchecker-cli from 6.1.1 to 6.2.0 (#21395)
Bumps [spellchecker-cli](https://github.com/tbroadley/spellchecker-cli) from 6.1.1 to 6.2.0.
- [Changelog](https://github.com/tbroadley/spellchecker-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tbroadley/spellchecker-cli/compare/v6.1.1...v6.2.0)

---
updated-dependencies:
- dependency-name: spellchecker-cli
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 11:10:21 +01:00
Kevin Lewis
a817bd0879 Added styling to recaptcha (#21376) 2024-02-08 18:41:27 +01:00
Pascal Jufer
56b809abe4 Fix item permissions check (#21152)
* Introduce permissions API endpoint to fix item permissions check

* Add changeset

* Revision

- Wrap API response in 'data' prop
- Split-up usePermissions composables & add tests
- Rework all permission checks

* Remove obsolete test

* Revision 2

- Singleton support
- Bug fixes
- Use permission composables wherever applicable
- Complete tests

* Update mock path in archive test

* Move remaining checks to usePermissions composables

* Update docs

* Lint & spelling fix

* Add SDK method

* Require authentication for getItemPermissions service

* Add blackbox tests

* Use multi-line if

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Format JSON code blocks

* Use correct type for computed values

Co-authored-by: Brainslug <tim@brainslug.nl>

* More explicit check & add comments

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
2024-02-07 21:50:35 +01:00
Bryant Gillespie
756c6f5767 D+ Docs (#21350)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-07 18:06:20 +01:00
Alex van der Valk
2f8cdfe6b5 add meta object to createCollection SDK example. (#21353)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-07 14:17:47 +00:00
Jonas Stettner
1edd23853d endpoint for updating an operation is /operations not /operation (#21357) 2024-02-07 13:28:17 +01:00
Kevin Lewis
046edfcefb Added breaking changes docs for 10.9 (#21358)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-07 12:27:55 +00:00
Kevin Lewis
1f059a5144 Added new framework guides (#21354) 2024-02-07 13:26:25 +01:00
Waldi
b1e7bf4f1f Fix boolean error in docker-compose quickstart template (#21336) 2024-02-06 16:01:20 +01:00
Brainslug
f34e05bd30 [SDK] Update Readonly Properties on Query Type (#21261) 2024-02-01 08:35:47 -05:00
Esther Agbaje
1f2efa7592 Update 'Roles and Permissions' settings to 'Access Control' (#21240)
* change roles and permissions to access control

* update GIFs for permissions

* updates in next and nuxt guides

* update alt text
2024-02-01 12:38:37 +01:00
Esther Agbaje
a7128cd547 Updates to Next and Nuxt Guides (#21265)
* updates to next and nuxt guides

* Add changeset

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-01-31 17:13:07 -05:00
Pascal Jufer
19a0d0d8ed Notes & Breaking Changes for Next Release (#20844)
* Notes & Breaking Changes for Next Release

* Update breaking changes note about extension endpoint

* Add info for "Update exif-reader to v2 (#20820)"

* Fix version number in title

* Reword exif changes

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-01-31 15:37:07 -05:00
Pascal Jufer
8db8241cc4 Update exif-reader to v2 (#20820)
* Update exif-reader to v2

* Add changeset

* Update changeset

* EXIF -> exif

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-01-31 15:24:38 -05:00
Esther Agbaje
d7827ba24b Fix NPM Quickstart Guide (#21234)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-01-30 11:44:21 +01:00