Commit Graph

78 Commits

Author SHA1 Message Date
Rijk van Zanten
77e00b7db4 Don't initialize database on file require (#6003) 2021-06-02 11:41:42 -04:00
Rijk van Zanten
ba2e56e43c Fix collection delete for collections w/ m2o to them (#5809)
* Fix new-collection relational field creation

* Fix collection delete for collections w/ m2o to them

Fixes #5793
2021-05-21 13:57:42 -04:00
Rijk van Zanten
9335372400 Foreign Key Constraints (#5615)
* Bump knex-schema-inspector

* Fix cli role name attr

* Update relation type

* Restructure relations

* Restructure relations table

* Update api type for relation record

* Fetch relations in new structure

* Update schema-inspector

* Use new relations schema structure in api

* Update relations GETters

* Add default value to one deselect

* Add create relationship on existing field

* Add updating existing relationship

* Add delete relations

* Add relations query resolver

* Add graphql mutations for relations

* Fix reading from wrong name

* Fix wrong method name

* No idea why this flip flops every install

* Update relation type

* Accept null in use-collection composable

* Use new relations structure in translations

* Use new relations structure in new-collection

* Start updating field detail store

* Renames for new relations structure

* Silently ignore passed collection/field in relation update

* Fix setting pk field in m2o relational setup

* Small tweaks in o2m setup

* Fix m2m setup

* Tweak m2o setup

* Fix m2a setup

* Allow null for related collection (m2a)

* Fix languages code name

* Fix migration default value

* Fix relational cleanup in collections/fields

* Fix transaction problem in field delete

* Fix inserting relational o2m items

* Don't execute updateByQuery on empty item set

Fixes #5710, fixes #5070

* Show referential action input on m2o

* Finish language for m2o

* Show triggers config on o2m

* Delete items on one_deselect_item delete

* Fix naming, show relational trigger config on m2m

* Tweak language, add setup to m2a

* Fix linter warnings

* Add trigger setup for translations

* fix Edit non-schema relationship issue

* Sync existing on_delete triggers in o2m setup

* Add migration to setup foreign key constraints

* Update illegal FK values before setting constraint

* Fix MySQL unsigned vs not-unsigned in FK creation

* Use pretty names for labels in relational triggers

* Prefix auto-junction when system table

Fixes #5493

* Add system foreign key triggers

Fixes #5749

* Update docs
2021-05-19 12:29:16 -04:00
Matteo Gazzoni
c84c002c7b Makes primary key always not nullable (#5731) 2021-05-17 19:11:39 +00:00
Oreille
316ac9076b Check for schema identity before updating it. (#5608) 2021-05-11 14:36:33 -04:00
rijkvanzanten
ae1e22d116 Enforce new collections to have PK field
Fixes #5512
2021-05-06 11:19:51 -04:00
Rijk van Zanten
f3574deae0 Ask for value when changing nullable to not-nullable (#5400)
* Add ContainsNullValues exception abstraction

* Add dialog for null values when disabling non-null

Fixes #2934

* Add translation for CONTAINS_NULL_VALUE error

* Make dialog title translated
2021-04-30 15:27:18 -04:00
rijkvanzanten
74861e6f81 Add default display template for directus_files
Fixes #5364
2021-04-29 20:40:52 -04:00
rijkvanzanten
ba98f23d3d Fix TS errors 2021-04-29 16:18:09 -04:00
rijkvanzanten
801e868554 Fix remaining eslint errors
h/t @paescuj
2021-04-29 15:55:12 -04:00
Pascal Jufer
acd41eb0be Syntax fixes (#5367)
* Declare return types on functions

And a very few other type related minor fixes

* Minor syntax fixes

* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)
2021-04-29 12:11:43 -04:00
Rijk van Zanten
3b05372713 Finalize services API (#5170)
* Start the xOne/xMany work

* Update update/upsert

* Finish updating itemsservice

* Add comments, add nested revisions on update

* Use new internal api

* Update collectionService to one/many structure

* Move files to one/many structure

* Move permissions to one/many structure

* Move relations service to one/many structure

* Move roles to one/many structure

* Move users service over

* Move webhooks to updated structure

* Move deprecated methods to the bottom

* Replace deprecated uses

* Use new methods in controllers, add batch update/delete by query

* Use updated methods in API

* Fix email being required

* Remove unnecessary DB call

* Fix batch update/delete validation
2021-04-20 18:06:27 -04:00
rijkvanzanten
f6e0b2cc81 Clear archive_field / sort_field of directus_collections on field delete
Fixes #3737
2021-04-08 17:11:16 -04:00
Joonas Palosuo
9c621c6e20 feat: add delete event emitting to fields service (#4840)
* feat: add delete event emitting to fields service

* Inline event scope

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-04-08 16:39:31 -04:00
rijkvanzanten
eb79c00756 Don't delete columns for alias fields
Fixes #4802
2021-04-05 17:01:19 -04:00
Rijk van Zanten
f90c31b798 GraphQL 2.0 (#4625)
* Start on GraphQL "2.0", add methodnotallowed exceptoin

* Fix relative file pointer in peer dep

* [WIP] Add pre-filtered schema to SchemaOverview

* Use root schema as is, add reduce-schema util

* Use reduceSchema in the wild

* Base schema on local reduced schema

* Remove todo

* Use graphql-compose to build out schema

* Start restructuring resolvers

* Add create mutation

* Return boolean true for empty create mutation selections

* Add update mutation

* Add delete mutation

* Add system/items scoping

* Fix merge conflicts for real now

* Use system services, rename ids->keys

* Start on docs on mutations

* Updates to match main

* Add fetch-by-id

* Add one/many resolvers for mutations

* Check system collection rows for singleton

* Fix resolver extraction for single read

* Share delete return type

* Add comments

* Use collection root name for readable type

* Add specs endpoint for GraphQL SDL

* Update docs

* Add note on SDL spec

* Fix delete single example

* Remove package-lock

* Fix collection read scoping in non-read
2021-03-30 17:06:35 -04:00
rijkvanzanten
ef9f281c3c Fix unique constraint error on field create/update
Fixes #4481
2021-03-11 18:11:58 -05:00
Rijk van Zanten
4248b187bb Implement unique constraint support (#4467)
* Allow creating unique fields

* Allow removing unique constriant

* Show unique constraint error as validation error in app
2021-03-10 17:35:21 -05:00
rijkvanzanten
5afa6c04fc Create field in transaction
Fixes #4211
2021-03-04 17:35:39 -05:00
Nicola Krumschmidt
08293b8570 Update Knex to version 0.95.0 (#4374)
* Update Knex to version 0.95.0

* Fix formatting in schema dialects

* Fix Knex imports

* Update package-lock

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-03-03 19:37:44 -05:00
Rijk van Zanten
7ab359eacf Throw forbidden error on /fields (#4366)
Fixes #4349
2021-03-03 17:04:39 -05:00
rijkvanzanten
f6c4ab0e6a Check if table still exists before auto-dropping columns 2021-02-26 16:08:10 -05:00
rijkvanzanten
b88150c29d Save "null" default value as null
Closes #3190
2021-02-15 14:04:02 -05:00
Rijk van Zanten
ee3f5cbad3 Various m2a builder fixes (#4032)
* Fix drawer opening empty item after sort

* Fix null sorting

* Fix sending null for a type in field creation

* Fix sort / edit existing on sorted values in m2a builder

Fixes #4005, fixes #4007

* Remove stray console log
2021-02-12 15:23:23 -05:00
Rijk van Zanten
b7d87e581a System permissions for app access (#4004)
* Pass relations through schema, instead of individual reads

* Fetch field transforms upfront

* Fix length check

* List if user has app access or not in accountability

* Load permissions up front, merge app access minimal permissions

* Show app access required permissions in permissions overview

* Show system minimal permissions in permissions detail

* Fix app access check in authenticate for jwt use

* Fix minimal permissions for presets

* Remove /permissions/me in favor of root use w/ permissions

* Fix logical nested OR in an AND

* Use root permissions endpoint with filter instead of /me

* Allow filter query on /permissions

* Add system minimal app access permissions into result of /permissions

* Remove stray console log

* Remove stray console.dir

* Set current role as role for minimal permissions

* Fix no-permissions state for user detail

* Add filter items function that allows altering existing result set
2021-02-11 12:50:56 -05:00
Rijk van Zanten
e6fa07dba8 Allow field creation with just field/type combo (#3990)
Fixes #3926
2021-02-09 18:43:25 -05:00
rijkvanzanten
05f0bc967e Turn hash into type
Fixes #3542
2021-01-12 17:08:19 -05:00
rijkvanzanten
578b761ded Add auto-purge option
And add cache-control header when auto purge is disabled

Fixes #3425
2020-12-16 14:26:38 -05:00
rijkvanzanten
83b003b5ff Fix scale/precision not saving properly
Fixes #3368
2020-12-14 19:28:14 -05:00
rijkvanzanten
e0da67fef7 Fix default value on create for boolean fields
Fixes #3398
2020-12-11 17:48:03 -05:00
Igor Savin
7cddb458cb Run prettier across app and api 2020-12-08 02:22:00 +02:00
rijkvanzanten
a17c3ce6db Start on m2a-builder interface 2020-11-16 15:38:59 -05:00
rijkvanzanten
ae0fcc28fe Use dropdown for boolean default value 2020-11-11 16:10:33 -05:00
rijkvanzanten
393078cc98 Prevent sorting on illegal fields
Fixes #955
2020-11-11 15:05:53 -05:00
rijkvanzanten
8cbdfb409b Use prefetched schema info 2020-11-09 17:13:48 -05:00
rijkvanzanten
528112314d Remove outdated tests, fix imports 2020-11-09 12:29:01 -05:00
rijkvanzanten
39d9b34248 Fix default value check
Fixes #854
2020-11-03 15:39:49 -05:00
rijkvanzanten
1743c2523d Fix double casting of field meta values 2020-10-29 14:48:57 -04:00
rijkvanzanten
bcb4041ff9 Add migrations 2020-10-29 14:05:36 -04:00
rijkvanzanten
ee9baf02c0 Move system fields out of DB 2020-10-29 13:06:37 -04:00
rijkvanzanten
f583fae41a Allow setting now() as default value
Fixes #742
2020-10-21 13:28:33 +02:00
rijkvanzanten
2c3992b1f1 Add precision / scale support
Fixes #560
2020-10-15 17:22:39 -04:00
rijkvanzanten
8afe2ee0c9 Fix m2o not nesting pk correctly 2020-10-12 16:03:26 -04:00
rijkvanzanten
5dba15082f Handle non-o2m cases 2020-10-09 13:13:49 -04:00
rijkvanzanten
f0e7e906ae Allow to-be-created fields to be selected in m2m setup
Fixes #443
2020-10-05 19:11:34 -04:00
rijkvanzanten
f1159d08cd Fix date io in api 2020-09-28 18:16:27 -04:00
rijkvanzanten
aa0a0f9f6e Fix datetime using timezones in pg 2020-09-28 17:29:27 -04:00
rijkvanzanten
59c5183f93 Generate languages on auto generate of languages collection 2020-09-25 15:40:36 -04:00
rijkvanzanten
61659c4b06 Combine translations/languages pane 2020-09-25 14:42:32 -04:00
rijkvanzanten
6d9809254a Add comment 2020-09-23 19:14:11 -04:00