Commit Graph

100 Commits

Author SHA1 Message Date
Rijk van Zanten
2273480c6d Implement the new permissions policy (#22773)
* WIP start on migrations

* Add migration

* Don't insert if there's no rows

* Use service to read/write permissions

* Use payload service rather than itemsservice

* Start on downgrade command

* Update system data structure

* Update migrations to keep structure flat

* Remove icon from policies

* Drop policies table on downgrade

* Rearchitect migrations to structure v3

* Add down migration

* Update system fields

* Add policy to fields import

* Fix public role attachment

* Update packages/system-data/src/fields/index.ts

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* Update packages/system-data/src/fields/policies.yaml

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* Add nested roles

* Remove unused step

* Use two o2ms instead of m2a for attachments

* Update system data

* Implement permission policies in the API (#22384)

* Update system data structure

* Update migrations to keep structure flat

* Remove icon from policies

* Drop policies table on downgrade

* Rearchitect migrations to structure v3

* Add down migration

* Update system fields

* Add policy to fields import

* Fix public role attachment

* Update packages/system-data/src/fields/index.ts

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* Update packages/system-data/src/fields/policies.yaml

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* Add nested roles

* Remove unused step

* Use two o2ms instead of m2a for attachments

* Update system data

* [WIP] Start reorging permissions handling

* Setup field extraction

* Remove watch from vitest

* Finish fieldMap creation logic

* Add tests for utils

* Improve tests

* Improve coverage

* Split test and test:watch

* Continue on this fun

* [WIP] Setup processing

* Sort roles

* Restructure to util files for org

* Add missing util tests

* More tests

* Add cases/whencase to ast

* Start on injection logic

* Add tests for inject cases

* Add tests for process

* Add todo

* Organize run-ast

* Add clear method to kv

* Remove reliance on acc.perm

* Restructure permissions setup

* Drop perm from acc, add roles/policies

* Remove get-permissions in middleware

* Remove/comment use of acc.perm

* Add default roles/permissions

* Use knex

So we don't have to initialize the schema before we want to use the accountability system

* Use new fetching logic in get accountability

* Add new fetch global access utils

* Gotta redo based on new setup

* Replaced with new util

* Remove dropping of perm in acc

It's no longer there by default, so no need to remove here

* Temporarily comment out the enforce tfa check

* Update usage of fetch tree to use knex

* Don't store policies on accountability

* Feed in roles thru acc

* Bit of whitespace

* Rename role->policy

* Wreck some more stuff

Jk, this is splitting up the large get-ast-from-query function into smaller individual functions to make it easier to update the wildcard conversion to use permissions

* Add ability to lookup all allowed fields in col+ac

* Add note so I don't forget stuff which i will

* Handle null acc

* Introduce parseAst to itemsservice

* That cleans things up

* Replace checkAccess with validateAccess

* Remove checkaccess from service

* cleanup imports

* Whoops one more

* Leave crumbs for next time

* Implement most of the fn

* Fix various tests

* Start on test for fetch roles tree

* Add tests for fetch roles tree

* Fix process tests

* All. of. the. tests.

* Update uses of validateAccess

* Fix name in runAst

* Fix use of accountability in gql sub

* Deprecate authorization service

* Remove getPermissions use

* Drop old getpermissions

* Pass services

* Replace admin/app uses with fetch global

* Update fetch user count to pull from policies

* Remove broken admin existence checks

* Update min accountability

* Remove unused import

* Drop permissions override from controller

* Refactor reliance on acc.perm

* Replace usage of permissions in fields

* Replace usage of permissions in import/export

* Drop permissions use from relations

* Drop no longer used method

* Remove unused import

* fix type usage of pk in validate

* Fix default acc in user

* Replace use of permissions in utils

* Update reduceSchema in specs/gql

* Remove old share merging

* Remove empty file

* Remove outdated comment

* Use ctx objects for large param fns

* Add with-cache memoize util

* Add cache to fetchpermissions

* Update caching use in fetchRolesTree

* Add caching to fetchAllowedFieldMap

* Add more cache

* Refactor call signatures

* Move call signature updates

* Handle presets

* Update process call sig

* Prevent infinite recursion in roles tree lookup

* Use create util for acc

* Remove old checkIp

* Fix where equality operator

* Break EVERYTHING!

Jk just cleaning up the structure some more, and removing the dep injection in favor of mocking

* Fix build

* Add missing module tests

* Don't crash on missing parent

* Fix role lookup

* add missing type annotation

* use logical-OR assignment and avoid a memory allocation

* Attach admin policy in default admin creation

* Fix admin check

* Add todo for later

* rm code duplication

* fix test

it was missing the new `roles`

* add types and fix type error

policies dont [yet] have an icon

* move spread order to avoid potential future mishaps

new default keys would override the manually set keys, potentially leading to unintended behavior

* reduce allocations, add escape hatch to loop and type db-row

* Implement case/when

* Clean up comments

* Optimize perm fetching in allowed f

* Move apply case when to util fn

* Optimize fetch-allowed-fields

* Add fetch inconsistent util

* Allow nulls

* Remove obsolete getCacheKey

* Remove unused import

* Update getAccountabilityForRole test

* Update fetchGlobalAccess test with one more test case + fix other test case

* Type cleanup

* Fix "admin access means automatic app access" in fetchGlobalAccessForQuery

* Clean up and expand fetch-inconsistent-field-map.test.ts

* Test uncached functions

* Test uncached

* Remove cases usage in parse-current-level

* Only consider non-null rules in inject cases

* Fix parseCurrentLevel call

* Move service imports into functions to avoid circular imports

* Ensure that we test that an error is thrown in processAst test

* Add failing test case for flattenFilter

* Ensure uniqueness in extractPathsFromQuery

* Early exit in validatePath

* Add additional test case for process payload test

* Update validateCollectionAccess test

* Clean up validate-item-access.test.ts

* Remove redundant initializer

* Use createDefaultAccountability

* Fix fetch-user-count.test.ts

* Cleanup unused default initializer

* Add empty cases to subfilter in _relationCount

* Drop AccessService and PermissionsService usage from services

* Found some more PermissionsServices

* Fix a few more tests

* Add nested role relation

* Fix query invocation in aggregate and group queries

* Fix role property name in auth/refresh

* Add some missing relations for permissions, access and roles

* Add m2o relation from permissions to policy

* Add m2o relation access to role, user, policy

* Allow fetchPermissions to fetch all permissions and not just those limited by an action

* Add parent to Role type

* Make sure that admin users see all fields

* Add access and policies controller, add util methods to policies and access service

* Change name and description of public policy, update description of admin policy and add on delete trigger.

* Make sure access row uuids are auto generated

* optimize kvredis clear function and add a unit test

to be fair: unit test is also testing implementation details but thats a problem there in general and for future us

* Add minimal app permission and dynamic variable injection to the permission fetching

* Fix m2o collection name in extractFieldsFromChildren

* Make sure to clone permission before injecting dynamic variables

* Actually do the cloning in with withAppMinimalPermissions since people might missbehave with the permissions obtained from PermissionsService.readByQuery so it better to go the source of the problem

* Use knex transaction in createOne -> processPayload - otherwise deadlock

* Make sure to respect '*' field in allowed fields

* Fix extractFieldsFromChildren for o2m as well - classic

* Fix allowed field check in `FieldsService.readAll` to account for multiple permissions for collection+action

* Skip case/when if `allowedFields` includes '*'

* Restructure the way the current users permissions are returned

* add ability to clear all keys from memory cache

* add test for clear method

* add await to clear function

* Clear permissions caches on changes to policy attachments (directus_access) and policy updates (directus_policies) and permissions updates (directus_permissions)

* Make the public role a real role rather than a virtual one

* Inject the public role, we're it previously was `null`

* Revert adding a fix public role

* remove unused variable

* Ensure that a user without a role can still use the /me util endpoints

* Make sure that the /me endpoints always return minimal information, similar to /users/me

* Some fixes after merging main

* Update api/src/permissions/utils/with-cache.ts

Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>

* Avoid broken role query for now

* Skip related collection `parseFields` if user has no permissions

* Ensure same call order as in `convertWildcards`

* Create default admin policy and connect it in cli init command

* Remove obsolete middleware mock in app.test.ts

* Add validation against non-existent fields and collections to `validatePath`

* Split up permission and path existence validation and validate path existence for admin users as well

* Make applySearch not async

* Fix relation extraction and permissions for `$FOLLOW` fields

* Fix case when for related collections and query wrapping

* Rework user integrity checks for Auditus (#22737)

* Changes to user counting and integrity checks

* Ensure that user validation happens in both create one and create many

* Rename `checkType` to `flags`

* Update api/src/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.ts

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* Update to enum usage

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* A few more changes to enum instead of number

* One more enum type update

* Make sure to correctly override the callback when combining options

* Clean up option type

* Update api/src/services/users.ts

Co-authored-by: ian <licitdev@gmail.com>

* Only take validation shortcut for users

We can only be sure that the deletion of users does not increase any other access types count, so in all other cases we need to verify that for example the App or API users have not increased over the limit

* Make both app and admin users count against app access limit

* Update api/src/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.ts

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

* One post-merge fix, two small fixes

* Simplify flag updating and callback calling

* Changing app access in a policy only requires user limit checking, not full check

* Only the status of a created user should matter to determine if a check is neccessary

* Add count alias to count query

---------

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* Add roles and permissions to the app (#22654)

* Initial app changes

* Fix getRelationsForField

* Add changeset

* Remove app-permissions from role settings

* Make sure access row uuids are auto generated

* Move a few things around, set up policies m2m properly

* Show roles as tree in sidebar
Change avatar field query for user

* Show user and role count in policy table

* Default to not adding app access for a policy, makes composability less annoying

* Correctly fall back to 0 for counts

* Change the structure of current user permissions

* Start bringing back the public role

* Make the public role a real role rather than a virtual one

* Revert public role changes

* Extend list-m2m to allow for very custom junction matching and a primary key of `null`

* Remove unused

* Fix public role policy update payload

* Fix app access for users without role (which is a thing now apparently)

* Make sure that the /me endpoints always return minimal information, similar to /users/me

* Tweak nav icons

* Pull policy id from constants

* Update permissions interface design to match

New design language in figma

* Some minor adjustments

- Make chip hover border more consistent
- Add "Remove" button to remove a full row of permissions, as in the UI mockup
- Fix table layout

* Clean up a few more things

* Fix `setFullAccess`

* Align collection view icons with navigation

* Don't query 'admin_access' for role

* Fix relation extraction and permissions for `$FOLLOW` fields

* Don't show `0 Items` for child rows, but `--` instead

* Make policy detail work in nested policy creating use case

* Remove unused v-icon override

* Move system collections to separate visual table

* Navigate before refresh

Prevents a flash of the previous value to be visible in the table

* Move composable to separate file

---------

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* Optimize types

* Clone query deep

* Optimize type order

* Throw error on invalid role id

* Rename run.js -> run-ast.js

* Re-add filesizes to telemetry report collection that got lost in the merge

* Make `systemCollections` reactive

* Use one column per action to avoid unwanted shifting if some actions are not allowed at all

* Render system and custom together

* Add divider between regular and system permissions if both have elements

* Add AccessService and PoliciesService to `getService`

* Move policy global flags fetching to util

* Move collection access fetching into util

* Remove permissions for `directus_access`, `directus_permissions` and `directus_policies` from schema permissions

* use formatted-value display for name & description in roles & policies

* Rename `process.ts` to `process-ast.ts`

* Fix process-ast import after renaming

* Perform user integrity check on item deletion

* Fix first admin creation on bootstrap

* Revert "Fix first admin creation on bootstrap"

This reverts commit bf480d023c.

Will be fixed by adjusting the check in access service

* Don't perform admin integrity check if a new access row is created. Only check user limits

* Don't set an alias to the raw column value if it is wrapped in a case/when

* Correctly handle aliases when in field map and case injection

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Hannes Küttner <kuettner.hannes@gmail.com>
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>

* Remove changeset of already merged PR (#22653)

* Fix multi cache subscribe call to preserve context

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Add max length to name for policy and role names

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Update app/src/modules/settings/routes/policies/collection.vue

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Organize settings sidebar for clarity

* Remove query limit override from access and policies controller

THe query limit was added previously, where the idea was to fetch all policies in the app, but since that is not required anymore we can remove the override again, which in turn fixed pagination for policies. Woop

* Rework MetaService

* Fix filtered counting (previously it did not account for left join caused by permissions filter)
* Collect permissions for current collection and dedupe access to align filter with the one used in the actual query
* Use applyFilter and an _or filter to retrieve permitted items

* Prevent certain skips in _or filters

We can only skip empty filters in `_or` if either they are not equal to the value of `cases` or if _or has exactly only exactly one empty filter

This is needed to prevent dropping joins that are required for the case/when construction. For example when having the permissions `_or: [ {}, {related_item: { id: 1} }]` all joins need to be retained

* Revert unintentional with-cache commit

* Remove check for id in children which fails on some DBs if no children are set

* Show users and roles in policy item view

* Update directus_access policy/roles + policy/users `one_deselect_action`

This ensures that the access rows are cleaned up when removing users or roles from the policy side of the relation

* Merge policy loaded from API with current edits

* Make `app_access` default to false

* Split field map into read specific and other fields

This change is necessary since process-ast is used to verify item access for actions other than `read`.
But, if a user does not have action permissions for fields used in the query filter or sort field the validation for `xByQuery` would have failed until now.

* The fields are verified separately checked against read and action specific permission.
* Updated all the tests accordingly

* Fix `hasCaseWhen` check in `getDBQuery`

Previously it was checking if `cases.length > 0` which was always true, since we always pass in at least one case (`{}`), now it checks if there are actually field nodes with a whenCase property

* Don't expose o2m fields that the user might not have access to for some items

This approach uses a flag that is introduced into the parent item db query, that uses the case/when construct to determine if a user has access to the o2m field on the specific item.
The flag is 1 if the user has access and null otherwise.
It is set in the resulting query object for all o2m fields that have a whenCase (the ones with partial access) and used when merging the nested query items into the parent items.

* Accept O2MNode as fieldNode

* Filter policies in fetchGlobalAccess by ip_access if applicable and use `withCache` util

* Filter the policies influencing the global access by ip_access filter if an ip is available
* Use `withCache` util for top level function and the two lower level functions

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* Fix filter in roles. Again. Almost like I didn't properly test it. huh

* Add cache key stability by only picking the props that are relevant from accountability and enforcing an order in the provided options object

* Improve `fetchAllowedFields` to only return fields that are actually in the schema

* Make a local copy of `junctionFilter` in order to prevent reloads on form value changes

* Remove debug log

* Update packages/system-data/src/fields/policies.yaml

Co-authored-by: ian <licitdev@gmail.com>

* Update api/src/permissions/utils/filter-policies-by-ip.ts

Co-authored-by: ian <licitdev@gmail.com>

* Conditionally add IP to request level cache key

Add `accountability.ip` to the request level cache key if, and only if, the IP is matched by any of the `ip_access` filters of the current users policies.

This ensures that, if the request IP influences the request result, it is path of the cache key, but also not included if there are no IP filters configured for the current user.

* Update api/src/permissions/modules/fetch-policies-ip-access/fetch-policies-ip-access.ts

Co-authored-by: ian <licitdev@gmail.com>

* Make sure that fetchAllowedFields does not remove field wildcard '*'

* Temporarily disable cache key picking

* Refine cache key picking + remove `undefined` from Accountability['ip'] type

* Rename `pick` to `prepareArg`

* Define the sort field for the `directus_access` junction table

* Verify that user has access to automatically selected sort field and default to first allowed field if not

* Sort the fetched permissions to match the order of the passed in policies

* Some clean-up of TODOs and unused code

* Take care of a special case, where no fields are requested and we are still interested the correct items being returned

This surfaced when running `validateItemAccess` with an update permission that did not include the primary key field.

* 3 less

* Update api/src/database/migrations/20240328A-permissions-policies.ts

Co-authored-by: ian <licitdev@gmail.com>

* Change /permissions/me response and add corresponding types and constants

* Fix payload validation

- Field validation needs to happen for admin users as well
- Add back injection of validation rules for non-nullable fields

Tests added/adjusted accordingly

* Mark `system-permissions` interface as `system`

* Remove special handling for public policy. It's one of us now.

- Add `icon` field to policies
- Add notice to the public role

* Rename migration to most recent date

* Clear permissions cache in `clearSystemCache`

* Make `getDBQuery` not async

* Set the sort field to `null` if the user does not have any allowed fields, not even the primary key

* Handle the case where `null` is returned as item edits by the permission detail drawer and remove the existing item, if any.

* Prevent role recursion (this is a simple check right now and I would expect it to fail on nested role updates that do funky stuff)

* Add overflow to permissions table

* Ensure fields are always passed to validation-errors

When v-form is used with the `collection` prop, instead of directly
passing fields via `fields` prop, the validation-errors component
didn't receive any field information.
This is fixed, by passing down the "finalFields" from `useForm`.

This is not directly related to 'auditus', but since it seems like this will be the
only place (so far) where we want to show validation-errors on a system
collection, I'm committing here.

* Outsource 'useSave' for roles, exactly as in policies

* Clean-up policies & roles item views

- Remove leftover styles, use clearer naming 'content'
- Fix types (policies was using role type)
- Show validation errors, handle errors on save & delete
- Use loading state of v-form (to have some indicator and less layout shift)

* Mark name field in policy & role as required

That way, an indicator is shown in the form, and value is checked when
editing via drawer

* remove role filter from public registration m2o

roles dont have access fields anymore, simply allow admin roles for now

* Remove overflow again. It broke

* Add cache purging for permission related updates.

* Add `dropForeign` in migration

Fixes migration on MySQL

* Add parsed field name to field map instead of raw field name

This fixes filtering & sorting with function as keys, e.g. `year(date_updated)`

* Account for $FOLLOW field filters earlier and don't confuse them with functions (see prev commit)

* Update migration to also work with CockroachDB

Instead of altering the `policy` column on `directus_permissions` to add the NOT NULL constraint it needs to be created with NOT NULL in the first place, as this will fail in CockroachDB.

That means we need to drop the foreign key constraint for the role column in order to update to `null` `role` to the public policy ID before we copy the values into the `policy` column

* Fix typo

* Add icon to default admin policy

* Be more clear about where the public role applies

* Update api/src/permissions/lib/fetch-policies.ts

Co-authored-by: ian <licitdev@gmail.com>

* Update api/src/permissions/lib/fetch-policies.test.ts

Co-authored-by: ian <licitdev@gmail.com>

* Enable GH workflows

* Make eslint happy, cleanup and improve role sidebar in users view

* Fix wrong suggestion application and move comments in block

* Format files

* Update isFullPermission test

* Clean up policy filter logic

* Flip order in test

* Update mocking in user/flows store tests

* Update expected results of a lot of api tests that changed during development (all stay true to the original idea)

* Update parseFilter test

* Update injectCases test

* Manually set parent to `null` if a role gets deleted and remove the `SET NULL` on delete action.

The `SET NULL` action causes problems problems on OracleDB

* Fix limit check for new users w/o "status" field

status defaults to "active", thus if the field is not in payload, the
user limit check needs to be triggered

* Fixed migration "inconsistent datatypes: expected - got CLOB" error in oracle

* Update extractFieldsFromChildren test

* Fix `count(o2m)` type queries

* Update UsersService tests

- Adapt to new user integrity logic
- Add basic ItemsService tests to ensure user integrity checks take
  place

* Move withAppMinimalPermissions to appropriate dir

* Fixed boolean logic error for graphql counting

* Make sure that relational function aliases are recognized as `functionField`

* Fix permission for relational functions

Before this functions that operated on a o2m field like `count(o2m)` did not respect permissions on the related collection.

Now function field nodes have a cases list as well and correctly get the cases injected for the related collection.
The permissions are then correctly injected in the query that is passed down to the relational count function helper.

* Fix mock in withAppMinimalPermissions test

* Update RolesService tests

Copied and commented out old checks from roles to policies, so we can
re-check later on

* Add preliminary changesets

* Reword changeset to "Policies"

* Update .changeset/strong-numbers-warn.md

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

* Policies Documentation (#22729)

Co-authored-by: Hannes Küttner <kuettner.hannes@gmail.com>
Co-authored-by: Brainslug <tim@brainslug.nl>

* Reformat docs

* SDK functions for auditus (#22795)

* Updated sdk types

* added policy commands

* prettier

* Added new and missing websocket subscription hooks

* Added missing endpoints

* Added missing graphql endpoints

* prettier

* Added changesets

* updated changesets

* Update .changeset/nine-geckos-jog.md

* Update api/src/services/graphql/index.ts

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

* Update sdk/src/rest/commands/create/policies.ts

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

* Update sdk/src/rest/commands/create/policies.ts

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

* Update sdk/src/rest/commands/read/policies.ts

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

* Update sdk/src/rest/commands/read/roles.ts

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

* Update sdk/src/rest/commands/read/policies.ts

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

* Update sdk/src/rest/commands/read/policies.ts

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

* Update sdk/src/rest/commands/read/policies.ts

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

* Update sdk/src/schema/policy.ts

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

* Update sdk/src/schema/policy.ts

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

---------

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

---------

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Hannes Küttner <kuettner.hannes@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Kevin Lewis <kvn@lws.io>
2024-06-20 21:21:06 +02:00
Pascal Jufer
0ef1f3dd3e Fix loading of Sandbox Operation Extensions (#21751) 2024-03-08 09:24:02 +01: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
Pascal Jufer
6a4b9ba942 Remove outdated hint about npm in marketplace docs (#21705) 2024-03-05 16:48:46 -05: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
Kevin Lewis
4073324d3b Marketplace Documentation (#21458)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-02 14:50:29 +00:00
Esther Agbaje
ba6ceba437 Update useItems composable with the required parameters (#21194)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-01-25 13:26:55 +00:00
Esther Agbaje
62d640a723 update secure extensions to sandboxed extensions (#21196) 2024-01-25 14:12:50 +01:00
Esther Agbaje
155870ecf5 Add Upload File to FilesService Docs (#21087)
* update filesservice

* add a note for busboy

* fix format

* add note

* change name back to data

---------

Co-authored-by: Kevin Lewis <kvn@lws.io>
2024-01-16 15:09:26 +01:00
Pascal Jufer
c9292fdd13 Various small codebase clean-ups (#20977) 2024-01-05 18:53:44 +01:00
daedalus
b189fd4594 Add enable/disable support for bundle type extensions (#20940)
* Add enable/disable support for bundle type extensions

* added changeset

* Update app/src/modules/settings/routes/extensions/components/extension-item.vue

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* add docs

* bundle with app extensions should display reload on prod

* use early returns for toggle logic

Co-Authored-By: Brainslug <br41nslug@users.noreply.github.com>

* add enable/disable all for partially enabled

* refresh message should work for enable and disable all

* Clearer tooltip for app extensions in dev

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-01-05 13:03:24 +01:00
Kevin Lewis
e0ad84ac96 Make extension directory prefix requirement clear (#20835)
* Add note about directory prefix

* CI
2023-12-21 13:25:36 +00:00
Esther Agbaje
d5b9ba9244 Add Documentation for Extension SDK Composables (#20684)
* add useApi

* update sidebar

* update docs

* update composabeles

* more updates

* updates to docs

* update dictionary

* Update docs/.vitepress/data/sidebar.ts

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/sdk-composables.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* updated headings

* update useApi and useStores

* update useCollection

* updates

* fix docs

* Update docs/dictionary.txt

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

* Update docs/.vitepress/data/sidebar.ts

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

* remove links with line numbers

* rearrange extension sidebar

* update composable file name

---------

Co-authored-by: Kevin Lewis <kvn@lws.io>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-21 13:51:04 +01:00
Pascal Jufer
dfefb5368a Fix dead links in documentation (#20794) 2023-12-19 18:16:17 +01:00
Kevin Lewis
59d79787c7 Add docs guides for building modules (#20630)
* Add Create a Custom Portal Module

* Add Use Native Layout Features In Your Modules

* Added changeset

* Pascal's edits

* Update guide imports on extension type pages

* Changed livePreviewMode to a bool

* Please for formatter

* Rename file

* Replace all remaining imports while we're at it

* Finishing touch

* Update docs/guides/extensions/modules-native-layout-features.md

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

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-19 09:14:32 +00:00
Esther Agbaje
33259fd4c4 Add documentation for Directus UI Components (#20675)
Co-authored-by: Kevin Lewis <kvn@lws.io>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-18 18:04:20 +00:00
Daniel Biegler
b232e18156 Add translatable label to themes and field translations (#20641)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-12 14:14:56 +01:00
Boegie19
b2d66be54b Add missing events to extension hooks docs (#20425)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Kevin Lewis <kvn@lws.io>
2023-12-04 11:18:41 +01:00
Pascal Jufer
ad91629d35 Clean-up obsolete tags in extensions docs pages (#20566) 2023-11-29 01:49:07 +01:00
Pascal Jufer
bd1ad9ae5b Adjust heading levels for services docs pages (#20565) 2023-11-28 23:08:19 +01:00
Kevin Lewis
e67ed8acf7 Add docs for themes extension type (#20561)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-11-28 19:58:51 +00:00
Pascal Jufer
387cf0cd35 Docs: Config / Data improvements (#20532) 2023-11-27 12:17:43 +01:00
Brainslug
b1b5abc6f5 Update Services for Extensions examples (#20519)
* updated code examples for best practices

* prettier

* removed obsolete res.locals['payload']

* update intro

* fix typo

* fix formatting

---------

Co-authored-by: Esther Agbaje <folasadeagbaje@gmail.com>
2023-11-25 19:31:40 +01:00
Esther Agbaje
2e88169b69 Document Services for Extensions (#20376)
* docs: add services to config

* docs: intro to services

* document ItemsService

* update introducgtion

* update introduction

* fix typo

* update accessing database

* document collectionsService

* add page to config

* update docs

* update authoring docs

* set up boilerplate for userservice, filesservice

* update files service

* update working with users

* link and text updates

* update dictionary

* update link

* update eslint ignore

* update eslint ignore

* Update docs/.vitepress/config.js

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/.vitepress/config.js

update config

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/.vitepress/config.js

update config

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

update intro text

Co-authored-by: Kevin Lewis <kvn@lws.io>

* update intro to services

* Update docs/extensions/services/introduction.md

update text

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* Update docs/extensions/services/introduction.md

Co-authored-by: Kevin Lewis <kvn@lws.io>

* updates to introduction

* update text

* update config

* fix text

* updates to items service

* updates to link

* more updates

* update files service and items service

* update user service

* more updates

* clean up items service

* clean up intro

* clean up all services

* more updates

* update dictiionary

* Moved initialization to root of extensions intead of in route handlers

* Fixed typo

* Added explicit introduction page

* Added changeset

---------

Co-authored-by: Kevin Lewis <kvn@lws.io>
2023-11-24 10:42:03 +01:00
Rijk van Zanten
8d8b649a1f Theming various (#20426)
* Update the minimal theme

* Remove unused files

* Remove unused default dark theme

* Fix type error

* Fix the order of themes in the picker interface

* Fix account/sign-out not using module foreground color

* Fix module bar interface styling

* Update system match label

* Use half width for default appearance

* Fix preview changed based on appearance

* Add includeNull option to theme selector interface

* Add minimal theme extension docs

* Attempt to make typedoc play nice

* Remove module bar color override

* Add snippet on overrides interface

* Deprecate "normal" style v-notice

* System filter interface background

* Add menu scope

* Use colors consistent with interface previews

* Remove card-face-color usage

* Use consistent hover style in collections & fields

* Deprecate card-face-color

* Remove old --card vars

* Fix revisions divider styling

* Remove duplicate background from overview header

* Fix permissions overview corner overlap

* Make form input height configurable

* Allow overriding public form input height

* Rename text string

* updated data model icon

* Standardize form settings between scopes

* Allow overriding sidebar forms

* Add configurable form gap

* Add configurable input-padding

* Fix list-item padding

* Fix padding in block style

* Add links to defaults

* Apply color match updates

* Default to database icon

* Fix schaling of theme selector interface

* Fix font loading

* Fetch font weights from Google as well

* Use display weight in titles

* Fix color match display font

* Clean up font weights for labels

* Update test to remove normal state

* Remove typo

* Add lowercase dev

* Add changeset

* Remove font-weight

---------

Co-authored-by: Ben Haynes <ben@rngr.org>
2023-11-16 15:36:54 -05:00
Pascal Jufer
45847a61a2 Prevent re-installation of deps in Docker image (#20346)
* Ignore Dockerfile to prevent layer cache drops

* Prevent reinstallation of deps in Docker image

* Add changeset

* Prettify by using heredoc & inject packageManager

* Add comment

* Update docs

* Apply suggestions from code review

* Refer to original issue instead of pull request

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2023-11-08 13:37:59 -05:00
Kevin Lewis
67306613b3 Secure Extensions Documentation (#19998)
* Scaffed page

* Execution Type section

* Moved secure page to account for potential future subpages

* Request

* CRUD

* Added execution types page

* Please the CI Gods

* Format file

* Update docs

* Add doc highlighting registration differences

* Add missing words to dict

* Add wildcard docs

* Capitalization kills

* Format file

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-10-23 09:34:59 -04:00
Pascal Jufer
42d4f2d56a Merge next into main (#20107)
* Content Versioning (#19463)

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Update clean-berries-do.md

* Prerelease mode

* v10.7.0-beta.0

* Ignore format of auto-generated pre.json file

* Update naming conventions for Content Versioning (#19678)

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

* Content versioning tweaks (#19700)

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

* Add additional system fields to Content Versioning & include preview in promote drawer (#19752)

* Use key instead of name for Content Versioning (#19813)

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

* Reorder component tags

* Prompt user to keep or delete the version before promoting (#19829)

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

* Fix multiple constraints to users system table from versions system table for MSSQL (#19912)

* fix multiple constraints from versions to users

* fix users unit test

* Add Sorting by Aggregated Queries (#19568)

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

* Update API References for Content Versioning (#19911)

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

* Add version argument in GraphQL (#19910)

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

* Merge branch 'main' into next (#19974)

* Show installed extensions in settings pane (#19964)

* Setup boilerplate for extensions page

* Allow reading all extensions from the root endpoint

* Add basic sidebar info detail

* Render list of extensions

* Move extensions manager to folder

* Move stuff related to extensions to @directus/extensions

* Import extensions utils/types/etc from ext. package

* Resolve last imports

* Add no-extensions warning

* Start on extensions grouped

* Remove string type

* Improve naming conventions

* Couple more optimizations

* Add more structure

* Add comments

we finally understand how this works! hehe

* Remove constructor in favor of static set

* Add more comments

* Don't filter in get-extensions

TBD if this will break things horrendously

* Sprinkle on better names / comments

* Render by section, nested bundled extensions

* Fix typo

* Live-saving tip from the formatter

* Don't know where this came frmo

* Add a changeset

* 📈 Insights QoL Part 1 (#19467)

* Start adding Create Default Modal

* Add Metric List

* Number Formatter Utility

* Start on Label Formatting Options and Resizing

* Update Metric List to use New Number Formatter

* fix auto fit and styling

* fix typings for number formatter and error catching

* add conditional formatting to metric list

* Add Number Formatting to Metrics and Size Formats

* Add Option to Hide Percentage and Fix Sizing of Meter

* Add manual sizing for labels

* Add translation strings

* Add comments to insights

* Fix color errors and add icon

* update translations

* Refine Linechart

* Revert "Start adding Create Default Modal"

This reverts commit 184dd0bb73.

* Run prettier

* Remove Console Logging

* Fix Typings

* Create itchy-berries-rule.md

* Format file

* Fix Metric List for Aggre Group PR

* Remove Empty Class

* Run formatter

* Fix linter errors

* Fix import

* Update app/src/panels/label/panel-label.vue

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

* Update app/src/panels/label/panel-label.vue

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

* Update app/src/panels/line-chart/panel-line-chart.vue

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

* Remove commented css

* Remove unneeded logic

* Fix auto resizing and text alignment

* Remove Expect Error Typechecking

* Add Migration

* Fix Prettier

* Lint auto-fixes

* Fix Resizing CSS and JS

* Add Metric List Translation

* Optimize migration

* Format files

* Fix metric-list translations

* Fix type issue in metric-list/index.ts

> Default export of the module has or is using private name 'Aggregate'.ts(4082)
> Default export of the module has or is using private name 'Group'.ts(4082)

* Remove Unit Translations

* De-duplicate migration

---------

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

* SDK support for Content Versioning (#20000)

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Add basic support for theming! (#20026)

* WIP start integrating theming

* Fix name

* Fix typo

* Move theme definition to json files

* Generate json from vite plugin

* Move default themes to root

* Render theme-provider in app

* Format variable names

* Move build script to separate npm run scrip
t

* Render correct var names in provider

* Render dark mode

* Update dependencies

* Setup styling rules for module bar

* Remove variables

* Don't rely on scoped var in editor

* Move light styles to theme

* Use theme vars in module bar

* Render theme styles in head

* Render alongside rather than wrapped

* Themable nav

* Allow using local devtools

* Do magic

* Fix auto theme fallback

* Update vue-i18n

* Use proper unicode symbol for multiplication

* Reorganize settings sidebar

* Use global translations for appearance options

* Add fields to migration

* Add theming group fields to system data

* Add strings to en-us for theming

* Add theming route that only renders theme group

* Add custom css to theming group

* Add system-theme interface

* Move default themes above custom css

* Move theme to global translations

* Use an array instead of object structure

* Add defaults for system fields

* Update migrations

* Pass theming information to provider

* Don't use default key in theme settings

* Use lodash.merge instead of defu

Better TypeScript type inference

* Nevermind the standalone app

It kinda sucks

* Only override rules

* Fetch theme overrides from user

* Use same field layout as settings

* Add theme overrides to db

* Classic 🤦🏻‍♂️

* Fix import

* Boilerplate overrides interface

* Update themes rules to use type def

* Boilerplate nested sections for themes

* Custom favicon (#19968)

* Add public_favicon field

* Add translation for favicon note

* Allow favicon regardless of permissions

* Return favicon as project info

* Type favicon in store

* Replace set-favicon with generate-fav util

* Render favicon in usehead

* Add changset

* Reads a little cleaner

* Semi-colons are a sign of wealth in wisdom

* Add a theme-overrides interface (#19970)

* Install typebox

* Rough in overrides interface

* Update theming settings in settings

* Upgrade dependencies

* Move theme output generation to separate composable

* Upgrade typebox

* Rename app/use-theme to use theme config

* Rework overrides interface

* Add changeset

* Allow default inheritAttrs

* Fixed handling of multiple WebSocket subscriptions on same target  (#20005)

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

* Add a cache clear method to the UtilsService (#19990)

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

* Change csv db type to text (#19953)

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

* Update placeholder text in file-image interface (#20004)

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

* Use current Directus version in docs (#20008)

* Use theme background instead of background-page

* Replace foreground normal with theme foreground

* Add missing translation

* Use foreground-accent and foreground-subdued from theme

* Rename --brand to --project-color

* Reuse variable color

* Replace primary/secondary/success/warning/danger

* Use theme based vars in api data

* Add header bar theming options

* Add more theming rules

* Nest icon colors

* Fix names

* Fix names in sidebar icon

* Update theming form layout

* Consolidate shades

* Consolidate primary shades

* Add primary shades

* Use shade-calculcated primary alternatives

* Use primary as mixing color

* Define warning/danger/success/secondary as shades

* Support form field label

* Add schema for interface foreground

* Allow setting input colors

* Add Google custom font loading algorithm

* Use font variables from theme

* Use unhead to load google fonts

* Install unhead to themes provider

* Use display font in title text and large dividers

* Add the dark mode default

* Run formatter

* Updating seeds is a no-no

* 😔

* Fix test

---------

Co-authored-by: Nihcep <32708027+Nihcep@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rob Lee <rob@nodeworks.com>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Fix build script on components package

* Fix RGB var usage

* Resolve Azri's notes

See https://github.com/directus/directus/pull/20026#pullrequestreview-1676876461

* Fix extensions icon

* Add ability to enable/disable extensions from App Settings (#20015)

* Add migrations for directus extensions table

* Prevent duplicate extensions from being loaded

* Add extension settings type

* Add settings getter with db sync

* Add commented out columns

For part 2!

* Load settings when loading extensions

* Normalize settings into extension info

* Use system-like output for extensions endpoint

* Render extensions overview from new meta type

* white         space

* Bundle shared stuff as node exports as well

* Format file

* Fix output type of nested bundle entries

* Update package lock

* Hide uninstalled extensions

* Add disable context menu

* Hide disable controls on bundles

* Add API endpoint to update enabled state in DB

* Reload extensions on enable/disable

* Add refreshing on state change for disabled

* Remove commented out code

* Remove commented fields

* Add changeset

* Image having no empty line at the end

* Update GraphQL endpoints for extensions enable/disable (#20017)

* Update type for extensions read

* Add update extension

* Add changeset

* Update docs for updates in 19988 (#20019)

* SDK methods for extension reading/updating (#20018)

* Update SDK methods for extensions

* Add changeset

* Resolve Pascal's notes

* extracted extension api output type

* updated the update command

* Update sdk/src/types/extensions.ts

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

---------

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Run formatter

* Add extensions to app deny list

* Fix input param name

* Fix typo in docs

* Azri is right, again!

* Remove extraneous fields

* Fix registration of operation and bundle extensions (#20030)

* Fix icon map

* Fix extension enable flag type on SQLite

* Fetch settings from itemservice

Fixes database inconsistency issues

* Only load extensions service when database is installed

---------

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>

* Use theme colors in extensions settings

* 📈 Insights QoL Part 2 (#20029)

* Update Dashboard Overview Page + New Only Import Sidebar

* Update Panel Config Drawer

* Remove Old Export Function

* Add changeset

* Add Back Missing Translations

* Fix Styling

* Update Styling to use new themeing

* Fox Formatting

* Fix Last CSS Var

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* Fix auto-theme issue on public pages (#20045)

* Return default appearance from server info

* Don't default to auto

* Render light/dark class based on theme appearance

* Render browser matches dynamically

* Read default appearance on public project info

* No-mo' auto

* Fix linter error

* Use unhead to set body class attr

* Content Versioning: Small tweaks & fixes (#20020)

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* fix input-rich-text-html body color css variable (#20049)

* Fix three small issues in `next` (#20051)

* Fix casting of json fields on sqlite

* Cast to json on user settings as well

* Prevent multiple versions of Vue/Pinia (#20066)

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

* Insights QoL - QA Fixes (#20063)

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

* Add changeset for #20066 (#20071)

* Merge `main` into `next` (#20082)

* added save options and hide archive button for Content Versioning (#20095)

* Allow removal of version name (#20101)

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

* Merge `main` into `next` (#20100)

* Add max length to `key` & `name` for Content Versioning (#20097)

* Make `next` ready for `main` (#20104)

* Durus: test for o2m (#19957)

* Fix casing in file names

* Refactor file structure

* Split up related field node

* formatter

* renamed fields-node.ts to fields.ts

* added o2m field in tdd test

* Split up tests

Co-authored-by: Nitwel <mail@nitwel.de>

* moved variables to test

* used random values in db response mock

* finalized actual test

* added some explanation

* encapsulated mock stream creation

* encapsulated receiving data from stream

* removed root prop in query

* Fix some spelling errors and variable names

* Remove mocked stream hotfix

* Reset mock after each test

* reduced test to a minimum

---------

Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Nitwel <mail@nitwel.de>

* fix styling for specific map buttons (#20047)

* fix styling for specific map buttons

* added myself to contributors.yml

* fix format

* fix location of code.

* removed extra space

* signed cla (#20058)

* Fix format of contributors.yml (#20068)

* Correct count param in BlobClient.download() (#20056)

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

* move api/errors to @directus/errors package (#20054)

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

* Fix  http range request when transformation in use (#20060)

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

* Fixed SDK docblock for docs build (#20075)

* Docs: Snippet Toggler Improvements (#20077)

* Enforce Vue shorthand form for `true` attribute (#20079)

* Add homepage for quick ref in root package.json (#20083)

* Apply min-width for attached menus only (#20092)

* Apply min-width for attached menus only

* Add changeset

* Content Versioning Documentation (#20070)

* docs: add content-versioning guide

* docs: add versioning to user guide items

* updates: made updates to docs

* updates: add to headless cms guide

* fix: format

* fix: typo

* Fix link to versions ref page

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Use "Content Versioning" capitalized

* Addressed comments

* Format file

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Kevin Lewis <kvn@lws.io>

* Allow disabling of field menu options (#20094)

* New Crowdin updates (#19816)

* New translations en-us.yaml (German)

* New translations en-us.yaml (Portuguese, Brazilian)

* New translations en-us.yaml (Persian)

* New translations en-us.yaml (Chinese Simplified)

* New translations en-us.yaml (Arabic)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Dutch)

* New translations en-us.yaml (Vietnamese)

* New translations en-us.yaml (Spanish, Mexico)

* New translations en-us.yaml (Spanish)

* New translations en-us.yaml (Croatian)

* New translations en-us.yaml (Turkish)

* New translations en-us.yaml (Romanian)

* New translations en-us.yaml (French)

* New translations en-us.yaml (Afrikaans)

* New translations en-us.yaml (Bulgarian)

* New translations en-us.yaml (Catalan)

* New translations en-us.yaml (Czech)

* New translations en-us.yaml (Danish)

* New translations en-us.yaml (Greek)

* New translations en-us.yaml (Finnish)

* New translations en-us.yaml (Hebrew)

* New translations en-us.yaml (Hungarian)

* New translations en-us.yaml (Japanese)

* New translations en-us.yaml (Korean)

* New translations en-us.yaml (Lithuanian)

* New translations en-us.yaml (Norwegian)

* New translations en-us.yaml (Polish)

* New translations en-us.yaml (Portuguese)

* New translations en-us.yaml (Russian)

* New translations en-us.yaml (Slovak)

* New translations en-us.yaml (Slovenian)

* New translations en-us.yaml (Albanian)

* New translations en-us.yaml (Swedish)

* New translations en-us.yaml (Ukrainian)

* New translations en-us.yaml (Chinese Traditional)

* New translations en-us.yaml (Icelandic)

* New translations en-us.yaml (Indonesian)

* New translations en-us.yaml (Spanish, Chile)

* New translations en-us.yaml (Thai)

* New translations en-us.yaml (Estonian)

* New translations en-us.yaml (Hindi)

* New translations en-us.yaml (Malay)

* New translations en-us.yaml (English, Canada)

* New translations en-us.yaml (English, United Kingdom)

* New translations en-us.yaml (French, Canada)

* New translations en-us.yaml (Faroese)

* New translations en-us.yaml (Esperanto)

* New translations en-us.yaml (Breton)

* New translations en-us.yaml (Bosnian)

* New translations en-us.yaml (Serbian (Latin))

* New translations en-us.yaml (Nepali)

* New translations en-us.yaml (Sorani (Kurdish))

* New translations en-us.yaml (Spanish, Latin America)

* Update source file en-US.yaml

* Update source file en-US.yaml

* New translations en-us.yaml (Croatian)

* New translations en-us.yaml (Croatian)

* New translations en-us.yaml (Russian)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Croatian)

* Update source file en-US.yaml

* Update source file en-US.yaml

* New translations en-us.yaml (German)

* New translations en-us.yaml (Greek)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Greek)

* New translations en-us.yaml (Albanian)

* 10.6.4 (#20102)

* Exit prerelease mode

---------

Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: Boegie19 <34578426+Boegie19@users.noreply.github.com>
Co-authored-by: Dominic <dmarx@marxulm.de>
Co-authored-by: mscbpi <ms@cbpi.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Esther Agbaje <53586167+estheragbaje@users.noreply.github.com>
Co-authored-by: Kevin Lewis <kvn@lws.io>

---------

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Connor <12714889+ConnorSimply@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Nihcep <32708027+Nihcep@users.noreply.github.com>
Co-authored-by: Rob Lee <rob@nodeworks.com>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: Boegie19 <34578426+Boegie19@users.noreply.github.com>
Co-authored-by: Dominic <dmarx@marxulm.de>
Co-authored-by: mscbpi <ms@cbpi.ch>
Co-authored-by: Esther Agbaje <53586167+estheragbaje@users.noreply.github.com>
Co-authored-by: Kevin Lewis <kvn@lws.io>
2023-10-21 00:34:57 +02:00
Craig Harman
ed6c764125 docs: fixed a typo in the docs (#20032) 2023-10-14 10:16:14 +00:00
Pascal Jufer
da7cccc6b9 Use current Directus version in docs (#20008) 2023-10-12 12:50:07 +02:00
Esther Agbaje
20b977b7a8 Improve Extension Documentation (#19727)
Co-authored-by: Kevin Lewis <kvn@lws.io>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-09-28 20:40:49 +02:00
Kevin Lewis
0f26c7b39b Add new panel-building guides in docs (#19793)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-09-28 13:49:27 +02:00
cheddar
a806cb38b0 Docs: Fix broken link (#19645)
* Fix broken link

Link was pointing to an older page (I assume). Updated to what I believe is the right page.

* Update link description

* Create clever-guests-stare.md

* Clarify changeset

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-09-10 15:08:31 +02:00
Kevin Lewis
f92b4b6db7 Building Extensions Guides (#18952)
Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
2023-08-22 14:51:42 +02:00
Bevis Halsey-Perry
0c54f5a9ef Introduce SnippetToggler and New SDK Reference (#19110)
* items semi complete

* updated items page to use snippet toggler and migrated endpoint docs to use it

* updated files page to use snippet toggler and migrated REST and GraphQL endpoint docs to it

* updated activity page to use snippet toggler and migrated REST and GraphQL endpoint doc to it

* updated collections page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* updated dashboards page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated extensions page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated fields page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated flows page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated folders page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated notifications page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated operations page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated panels page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated permissions page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated presets page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated relations page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated revisions page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated roles page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Made headlines consistant with the rest of the doc pages

* Updated server page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated settings page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated shares page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated translations page to use snippet togglers and migrated REST endpoint docs to them

* Updated users page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated utilities page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated webhooks page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated authentication page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* Updated Global Parameters page to use snippet togglers where there are adjacent REST and GraphQL Examples

* Added SDK code snippets to items page and made generic variables consistant

* Added SDK code snippets to files  page and made generic variables consistant

* Few lang changes for files page

* Added SDK code snippets to activity page and made generic variables consistant

* Added SDK code snippets to collections page and made generic variables consistant

* Added SDK code snippets to dashboards page and made generic variables consistant

* removed query word from query parameter objects

* Added SDK code snippets to fields page and made generic variables consistant

* SnippetToggler border

* Used dynamic border color for snippettoggler heading

* Spacing top and bottom of snippet toggler in docs

* Removed extra HRs

* Remove manual TOC in query reference

* Small code styling change in items page

* Updated users page to use snippet togglers and migrated REST and GraphQL endpoint docs to them

* dashboards fixed up property names

* Small copy update on extensions page

* Updated keys in delete mult notifications REST

* Updated keys in operations

* Update keys in panel delete many

* Update keys in permissions

* Added quotes around generic example ID strings

* Added code formatting to final example in share public info

* Format files

* Refined sidebar

* Insert newline before ending template tags

* Fixed extra closing tags, causing an error, un users ref

* Text Formatting Users

* Put GQL related notes inside toggler

* Added SDK code snippets to flows page and made generic variables consistant

* Added SDK code snippets to folder page and made generic variables consistant

* fixing whitepsace for flows and folders page

* Consistent newlines in SnippetToggler usages

* Run prettier

* Fix 'alwaysDark' definition

* Home page snippet toggler style fixes

* Fix snippet toggler lang hover color in light mode

* Introduce different code theme for light mode

* Added SDK code snippets to notifications page and made generic variables consistant

* Switch to 'material-theme-lighter'

* Format file

* Fix tip

* Fix tip in sdk ref

* Consistent spacing for custom containers

* Added SDK code snippets to operations page and made generic variables consistant

* Lint & format code blocks

* Lint & format operations

* Added SDK code snippets to panels page and made generic variables consistant

* Added SDK code snippets to permissions page and made generic variables consistant

* Added SDK code snippets to presets page and made generic variables consistant

* Added SDK code snippets to relations page and made generic variables consistant

* Added SDK code snippets to revisions page and made generic variables consistant

* Added SDK code snippets to roles page and made generic variables consistant

* Added SDK code snippets to server page and made generic variables consistant

* Added SDK code snippets to settings page and made generic variables consistant

* app_url -> directus_project_url

* Omitted auth details in delete multiple files

* Added quotes to values in roles

* Upload a file snippets

* Pluralization for upload/import files

* More files functions typos

* Added SDK code snippets to shares page (still missing createShare(s) as endpoint not functioning currently) and made generic variables consistant

* Added SDK code snippets to translations page (missing delete endponts because not working) and made generic variables consistant

* Added SDK code snippets to users page and made generic variables consistant

* Added SDK code snippets to webhooks page and made generic variables consistant

* Added SDK code snippets to utilites page (except cleaning cache, will be tested and added in later commit) and made generic variables consistant

* Added SDK code snippets to auth page (not login, refresh, and logout though due to errors)

* Added SDK code snippets for utilsExport and clearCache

* added github username be7DOTis to contributors

* Omit auth commands in updateComment

* utilsImport

* rename app_url generic value

* changed instances of updated*operation* to update*Operation*

* missed some 'updated' changse

* Added SDK Snippets to Query Parameters page

* Add section on file security

* added create(s)Shares SDK snippet to shares page

* added console.log to create snippets

* Added delete(s)Webhook SDK snippet to webhooks page

* Added SDK snippets to extensions page

* Added create/updateSingleton section to items page

* Links in files security

* Added SDK Snippets to Schema page

* Added GQL Generic examples to snippet togglers and removed snippet toggler from Login Using SSO Providers

* Added create(s)Presets SDK Snippets to presets page

* replaced fields query in generics snippets for a more generic

* replaced fields query in generics snippets for a more generic

* Use storage value only if valid choice

* Sync snippet togglers across page

* Update docs/reference/system/activity.md

* Update docs/reference/system/activity.md

* Update docs/reference/system/extensions.md

* Update docs/reference/system/revisions.md

* Update docs/reference/system/settings.md

* Update docs/reference/system/revisions.md

* Update docs/reference/system/settings.md

* Update docs/reference/system/activity.md

* Update docs/reference/system/roles.md

* Update docs/reference/system/roles.md

* Update docs/reference/system/roles.md

* Update docs/reference/system/roles.md

* Update docs/reference/system/schema.md

* Update docs/reference/system/server.md

* Update docs/reference/system/shares.md

* Replace all directus_project_url placeholders

* Revert "Sync snippet togglers across page"

This reverts commit 8b36f0d778.

* Update docs/reference/system/shares.md

* Update docs/reference/system/webhooks.md

* Clarify singleton section

* Consistent newlines between SnippetToggler templates

* Format files

* Remove console.log(result) statements from snippet

* Add examples for shares & users

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

* Fix hash GraphQL example

* Clarify update singleton section

* Add auth examples

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

* Final run on consistent newlines between SnippetToggler

* Switch to github themes

* The "Last One"

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

* The "Big One"

* Fix dead links

---------

Co-authored-by: Bevis Halsey-Perry <hi@be7.is>
Co-authored-by: Kevin Lewis <kvn@lws.io>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
2023-07-25 17:30:37 -04:00
Rijk van Zanten
1005738267 Tweak last quirks in hooks error example (#19122) 2023-07-11 11:16:45 +02:00
Connor
f63716af1b update example (#19117) 2023-07-10 23:41:53 +02:00
Kevin Lewis
67c008df37 Fixes the many broken docs redirects (#19026)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-06-29 13:49:38 +02:00
Connor
92621429ee Linting and Formatting Upgrade (#18892)
* add docs to eslint

* update prettier ignore

* fix vitepress linting

* eslint ignore fixes

* prettier run

* update prettier ignore

* fix formatting

* enable linting of markdown files

* revert format command change

* fix irregular whitespace

* update dictionary

* (Changelog) Create four-boxes-shake.md

* Rework ESLint / Prettier setup

- Disable js/ts/vue files for Prettier to ensure linting/formatting is
  only happening via ESLint
- Rework formatting of code blocks in md files
  - Disable formatting of code blocks in md files under '/docs' by Prettier
  - Instead use "eslint-plugin-markdown" to format & __lint__ js*/ts*/vue such code blocks
  - Replace unmaintained "eslint-plugin-md" plugin by official "eslint-plugin-markdown" plugin
  - I'll check whether we can use this to format other code blocks
    (json, html, ...) as well
- Restructure, clean-up and apply some fixes to the ESLint config
  (Note: Not ready for flat config yet since not supported by
  vscode-eslint)
- Enable cache for ESLint / Prettier in scripts
- Clean-up ignore file
  - Explicit folder declaration (.../)
  - Don't ignore all 'extensions' folders in ESLint (only
    '/api/extensions/')
  - Enable formatting in '/.github' folder

* Fix all formatting issues with Prettier

* Update md files under /docs/.typedocs

* Fix lint issues in vue/js files

* ESLint / Prettier config revision v2

Enable Prettier for md code blocks, but only as warnings since it can
get into the way with Vitepress md extensions like '[!code ...]'
comments

* Remove prettier-ignore comments

* Make spellchecker happy

* Remove changeset

* Revert lint setup for code blocks

There are many cases in the docs where linting / formatting of code
blocks doesn't make
sense:
- Code block is only an excerpt - linter fails
- Code block contains special comments (e.g. markdown extensions) which
  needs to remain at the same place - formatting would break it
- ...

* Apply lint issues / formatting from temp lint setup

* Run formatter

* Fix merge failure

* Simplify & modernize ESLint / Prettier setup

No longer run Prettier via ESLint. Nowadays, this is the recommended
setup. There's no real need to run it this way, it's just an additional
layer.

Add VS Code settings to make the work with the new setup easier.

* Remove unused eslint disable directives

* Make editorconfig more useful

* Fix formatting issues reported by editorconfig

* Format files with Prettier

* Enable formatting of source translations file

* Format source translations file

* Remove unnecessary console error

* Remove unnecessary line

* Only ignore md files under .changeset

* Add CI reporter for Prettier

* Fail job on wrongly formatted files

* Fix format

* Test Prettier action on changed/added file

* Use simple CI format check for now & no cache

* Revert "Test Prettier action on changed/added file"

This reverts commit 4f7d8826ad.

* Introduce code blocks check for docs

* Fix code block issues

* Ignore auto-generated packages dir

* Fix comment position

* Also lint `/app/.storybook`

* Reformat modified files

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-06-29 11:54:01 +02:00
Rijk van Zanten
ca3e7f521f Upgrade previous "Extensions" system to new "Errors" model (#18797)
* Typecheck across packages that are built with esbuild

* Boilerplate new Errors package

* No need, tsup checks with --dts

* Switch to tsup

* Setup dev script

* Add readme

* More boilerplaty things

* Finish createError function

* Install @directus/random

* Downgrade node types

* Add utility function to check if an error is a DirectusError

* Use new is-error check

* Install errors package

* Add failed validation common error

* Export common errors

* Move joi convertion to utils

* Export failed validation

* Use new failed validation error in validate-batch

* Enhance typing output of createError

* Remove outdir (handled by tsup now)

* Replace Exception with Error

* Replace exception in test

* Remove exceptions from app

* Remove exceptions from app

* Remove failed validation exception from users service

* Remove old failed validation exception from shared

* Remove exceptions package in favor of errors

* Uninstall exceptions

* Replace baseexception check

* Migrate content too large error

* Critical detail

* Replace ForbiddenException

* WIP remove exceptions

* Add ForbiddenError to errors

* HitRateLimitError

* Move validation related error/helper to new validation package

* Add index

* Add docs

* Install random

* Convert TokenExpired

* Convert user-suspended

* Convert invalid-credentials

* Move UnsupportedMediaType

* Replace wrong imports for forbidden

* Convert invalid-ip

* Move invalid provider

* Move InvalidOtp

* Convert InvalidToken

* Move MethodNotAllowed

* Convert range not satisfiable

* Move unexpect response

* Move UnprocessableContent

* Move IllegalAssetTransformation

* Move RouteNotFound

* Finalize not found

* Various db errors

* Move value too long

* Move not null

* Move record-not-unique

* Move value out of range

* Finish db errors

* Service unavailable

* GQL errors

* Update packages/validation/src/errors/failed-validation.ts

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Update packages/validation/src/errors/failed-validation.ts

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* InvalidQuery

* Add test for invalid query message constructor

* Invalid Payload

* Finalize exceptions move

* Improve type of isDirectusError

* Various fixes

* Fix build in api

* Update websocket exceptions use

* Allow optional reason for invalid config

* Update errors usage in utils

* Remove unused package from errors

* Update lockfile

* Update api/src/auth/drivers/ldap.ts

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Update packages/validation/src/utils/joi-to-error-extensions.ts

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Put error codes in shared enum

* Replace instanceof checks in api

* Fix tests I think

* Tweak override names

* Fix linter warnings

* Set snapshots

* Start fixing BB tests

* Fix blackbox tests

* Add changeset

* Update changeset

* Update extension docs to use new createError abstraction

* 🙄

* Fix graphql validation error name

* 🥳

* use ErrorCode.Forbidden

* fix blackbox auth login test

* Add license files

* Rename preMutationException to preMutationError

* Remove unused ms dep & sort package.json

* Remove periods from error messages for consistency

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Add optional code check

* Use updated error code checker

* Rename InvalidConfigError to InvalidProviderConfigError

---------

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
2023-06-27 17:22:26 -04:00
Rijk van Zanten
3b52f2d59d Fix custom migrations running not validating against documented file path requirement (#18971)
* Require - to exist in custom migration filepath

* Update docs to mention shared helpers

* Add changeset
2023-06-22 19:00:01 -04:00
Craig Harman
90f7674152 Fix duplicate brackets for Storybook link (#18764)
* Fix duplicate brackets for Storybook link

* Sign the CLA

* Create gentle-goats-lay.md

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2023-05-30 09:54:43 -04:00
Nicola Krumschmidt
60be3c2b40 Add synchronization across horizontally scaled instances to schedule flows and hooks (#18584)
* Add synchronization to schedule flows and hooks

Fixes #15052

* Add changeset

* Add test

* Add to sequential list

* Fix spelling in changeset

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
2023-05-24 17:16:42 -04:00
Pascal Jufer
76555bc41d Add documentation for auth create and update hooks (#18641)
* Add documentation for auth create and update hooks

* Create pretty-lobsters-look.md
2023-05-17 18:34:18 -04:00
Brainslug
1628c68fa2 Bundle deployment instructions (#18606)
* re-adding bundle deployment instructions

* Create empty-doors-promise.md
2023-05-15 14:24:16 -04:00
Connor
b67c4cd2e2 Contributor Docs Improvements Round 1 (#18545)
* Move Debug Docs from Wiki to Docs

* Add Copyright License Agreement to Docs

* Start Reformat0 of Codebase Overview

* Add Package Documentation to Codebase Overview

* Add Link to Blackbox Folder

* Add Changesets to Pull Request Process

* Add Component Library Tips

* Fix Spelling

* Fix dictionary

* Create thick-glasses-bake.md

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-05-12 09:29:00 -04:00
Brainslug
1fba5ebf94 Load cjs custom migrations (#18385) 2023-05-02 21:10:19 +02:00
Nicola Krumschmidt
80bcc35af3 Add support for building API extensions to ESM (#18351)
* Remove language check from extension build command

* Add getFileExt util

* Add support for building API extensions to ESM

* Build new extensions to ESM by default

* Update config file docs to be in ESM

* Add changeset

* Fix extension test

* Replace nested ternary expression

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Li(n)t

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2023-05-02 14:45:25 -04:00
Matthew Rumery
bf10c943c8 Fix broken links in the documentation (#18377)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-05-02 10:03:32 +02:00