Commit Graph

421 Commits

Author SHA1 Message Date
Nicola Krumschmidt
051df415df Fix extensions (#6377)
* Add support for npm extensions

* Allow extensions to import vue from the main app

* Bundle app extensions on server startup

* Fix return type of useLayoutState

* Add shared package

* Add extension-sdk package

* Add type declaration files to allow deep import of shared package

* Add extension loading to shared

* Refactor extension loading to use shared package

* Remove app bundle newline replacement

* Fix extension loading in development

* Rename extension entrypoints

* Update extension build instructions

* Remove vite auto-replacement workaround

* Update package-lock.json

* Remove newline from generated extension entrypoint

* Update package-lock.json

* Build shared package as cjs and esm

* Move useLayoutState composable to shared

* Reverse vite base env check

* Share useLayoutState composable through extension-sdk

* Update layout docs

* Update package versions

* Small cleanup

* Fix layout docs

* Fix imports

* Add nickrum to codeowners

* Fix typo

* Add 'em to vite config too

* Fix email

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-23 12:43:06 -04:00
Rijk van Zanten
44082c60e1 Add schema caching (#6456)
* Rework cache handler to be function export

* Add default schema caching

* Add schema cache

* Auto purge schema cache on schema change from api

* Only set last_access value on login

* Add note on schema cache setting
2021-06-22 20:50:20 -04:00
Rijk van Zanten
25aaebacd4 Don't return default val for PK field in singleton (#6444)
Fixes #6429
2021-06-22 18:19:02 -04:00
Rijk van Zanten
1cb9181052 Add support for starts/ends with filters (#6437) 2021-06-22 14:28:11 -04:00
Aiden Foxx
980be7cb53 Fixed invalid onDelete constraint for some schemas (#6308)
* Fixed invalid onDelete clause for some schemas

* Ran prettier

* Updated all onDelete statements to be Oracle friendly

Co-authored-by: Aiden Foxx <aiden.foxx@sbab.se>
2021-06-17 15:43:32 -04:00
Rijk van Zanten
e033e17326 Use existing file extension as default (#6349) 2021-06-17 11:06:00 -04:00
Thijs-Jan
e4b9bf06a0 Add support for read hooks on items (#6341)
* Add emitter on item read

* Add performance warning to docs

* Make result instead of query the payload
2021-06-17 10:56:52 -04:00
Rijk van Zanten
36ecad783a Fix issue that would cause emails to be displayed incorrectly in certain email clients (#6267)
Fixes #6074
2021-06-14 16:24:55 -04:00
Rijk van Zanten
4cb8d1f814 Add additional check to Two-Factor Authentication (by @masterwendu) (#6187)
* 6113 add tfa generate endpoint

* 6113 implement tfa otp check in user settings

* 6113 add autfocus for otp field on login form

* update package-lock

* improve TFA uri with user email

* fix vue 3 compatibility

* reduce code duplication for enableTFA

* Remove unnecessary parameters

* Use project name in otp url when available

* Update docs/reference/api/system/users.md

Co-authored-by: Wendelin Peleska <wendu@pm.me>
2021-06-10 15:36:34 -04:00
Pascal Jufer
927b9f8cc2 Fix DB column update for data types with length or boolean as default value (#6163)
* Fix DB column update for types with length or boolean as default value

* Add docs/index.json to gitignore

* Remove specificType support

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-09 18:30:59 -04:00
Rijk van Zanten
76a31ca020 Don't initialize mailer on startup (#6169)
* Fix m2m relationship not showing current col/pk

* Don't initialize mailer on first boot

Another step to serverless!
2021-06-09 17:31:50 -04:00
Rijk van Zanten
fb908efe8f Cleanup one_allowed_collections field on collection delete (#6167)
Fixes #6161
2021-06-09 17:02:47 -04:00
Adam Sparks
c1b30a6d8c match url whitelist to domain (#5694)
* match url whitelist to domain

* Improve url-domain check

* Update lockfile

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-09 15:12:34 -04:00
Rijk van Zanten
5067410e09 Fixed issue that could trigger update actions of children on manual sorting of a parent o2m instance (#6048)
Fixes #6041
2021-06-03 21:02:47 -04:00
Rijk van Zanten
e1926ba5f7 Fix query during transaction in fk creation (#6045)
Fixes #6034
2021-06-03 17:48:13 -04:00
Rijk van Zanten
2270d870f9 Prevent foreign key constraint names from exceeding 64 characters (#6043)
* Add index name generator function

* Ensure foreign keys are 64 chars or less
2021-06-03 17:31:58 -04:00
Rijk van Zanten
0964b42ba4 Drop FK based on constraint name instead of column (#6042)
Fixes #6029
2021-06-03 16:32:39 -04:00
Rijk van Zanten
e6364d99a4 Extract IPTC title and keywords (#6035)
* Fix title IPTC extraction

* Pull IPTC keywords as tags
2021-06-03 12:37:50 -04:00
Rijk van Zanten
77e00b7db4 Don't initialize database on file require (#6003) 2021-06-02 11:41:42 -04:00
rijkvanzanten
95307cee97 Fix o2m updates not saving revisions nested 2021-05-24 21:05:50 -04:00
rijkvanzanten
1bbc8535a5 Move nodemailer setup to src root 2021-05-24 13:36:12 -04:00
rijkvanzanten
246c55266b Don't use NonNull for update input types
Fixes #5723
2021-05-21 21:32:42 -04:00
rijkvanzanten
e2c9e15a98 Throw 503 instead of 500 on file upload failure 2021-05-21 21:17:19 -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
bc8399c362 Fix validation short circuit on _or (#5806)
* Fix _or validation step when in nested context

Fixes #5405

* Add changeset
2021-05-21 12:30:13 -04:00
Rijk van Zanten
8d3102fbad Add max concurrency and max image transform size support (#5795)
* Add assets concurrency and max size controls

* Render no-thumbnail images nicer in app

* Document new asset environment variables

* Update package-lock
2021-05-20 18:18:10 -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
MiniDigger | Martin
1cc9900317 fix occasional typeerror in payload service (#5763) 2021-05-19 14:51:06 +00:00
rijkvanzanten
f06ac03755 Don't execute updateByQuery on empty item set
Fixes #5710, fixes #5070
2021-05-17 15:49:39 -04:00
Matteo Gazzoni
c84c002c7b Makes primary key always not nullable (#5731) 2021-05-17 19:11:39 +00:00
rijkvanzanten
b84d3be981 Use items service directly instead of super
Fixes callstack order problem, fixes #5538 pt 2
2021-05-17 11:50:48 -04:00
rijkvanzanten
e8ac74bb4c Fix issue on login when no hooks are registered
Fixes #5688
2021-05-14 18:52:20 -04:00
José Varela
4d242ab5bf api: pass user object to auth hooks (#5251)
* api: pass user object to auth hooks
The motivation for this is the ability to migrate from
bcrypt passwords to argon2 seamlessly.

Fixes #4718
Fixes #4335

* receive user from `auth.login.before` hook

* pass `otp` as well on `auth.login` hooks

* api: last registered hook should have priority
When registering multiple hooks for a single event,
the last hook should have priority on return value.

* Fix linter warning

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-05-14 12:33:51 -04:00
Pierre
28ef6418fc [TS] Improve EmailOptions def (#5563)
* [TS] Improve EmailOptions def

See https://nodemailer.com/message/

* Update index.ts

* Update index.ts

* [Mailer] pass nodemailer options

* fix missing comma

* [TS] Use SendMailOptions of nodemailer

* Use const instead of let

* fix lint

* Rename nodeMailerOptions -> emailOptions

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-05-14 12:25:19 -04:00
Christian Rendl
7133df2d56 Fixed issues with template overriding (#5671)
* Fixed issues with template overriding

* Remove `system` flag from email templates

* Remove usage of system in user services

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-05-14 12:20:42 -04:00
mcarlson
c0446cb379 Add support for mailgun transport (#5613)
* Add support for mailgun transport

* eslint fix

* Add nodemailer-mailgun-transport as optional dependency

* Add docs, rename APIKEY -> API_KEY

Co-authored-by: Max Carlson <>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-05-14 12:20:18 -04:00
Rijk van Zanten
9ac9a8d44b Add JSON/CSV Import (#5660)
* Add async/destroy packages

* Target node 12+

* Return payload data in json export

* Import JSON from Stream

* Add CSV import support

* Add CSV Import

* Add docs

* Add missing types
2021-05-14 11:03:12 -04:00
Fady Khalife
8fc8da62a7 Allow nodemailer SMTP configuration with no authentication (#5673)
* Allow nodemailer SMTP configuration with no authentication

* Fix typing + use or instead of and for user/pass combo

Co-authored-by: Fady Khalife <fady.khalife@yakkazoo.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-05-14 15:01:32 +00:00
rijkvanzanten
9e93342af0 Mark non-nullable fields as NonNull in GQL
Fixes #5544
2021-05-12 16:49:55 -04:00
rijkvanzanten
9bd5fc1f54 Ignore current users email on update
Fixes #5538
2021-05-12 16:40:17 -04:00
rijkvanzanten
24e28792f2 Fix fields_in_collection type signature
Fixes #5627
2021-05-12 16:34:34 -04:00
Oreille
316ac9076b Check for schema identity before updating it. (#5608) 2021-05-11 14:36:33 -04:00
rijkvanzanten
aaee7cc750 Fix having clause on postgres alias 2021-05-10 10:48:36 -04:00
Rijk van Zanten
c4ae4b66cc Finalize interface names (#5521)
* Rename button-links->presentation-links

* Rename checkboxes->select-multiple-checkbox

* Rename code->input-code

* Rename checkboxes files

* Rename color->select-color

* Rename divider->presentation-divider

* Rename dropdown-multiselect->select-multiple-dropdown

* Rename hash->input-hash

* Rename icon->select-icon

* Rename image->file-image

* Rename m2a-builder->list-m2a

* Rename many-to-many->list-m2m

* Rename many-to-one->select-dropdown-m2o

* Rename markdown->input-rich-text-md

* Rename notice->presentation-notice

* Rename one-to-many->list-o2m

* Rename radio-buttons->select-radio

* Rename repeater->list

* Rename text-input->input

* Rename textarea->input-multiline

* Rename toggle->boolean

* Rename tree-view->list-o2m-tree-view

* Rename wysiwyg->input-rich-text-html

* Use correct interfaces in system defaults

* Rename collection->system-collection

* Rename collections->system-collections

* Rename display-template->system-display-template

* Rename field->system-field

* Rename interface->system-interface

* Rename interface-options->system-interface-options

* Rename scope->interface-scope

* Rename tfa-setup->system-mfa-setup

* Fix oversights

* Remove old todo

* Some more tweaks

* Add migration, fix dropdown name in system use

* Merge numeric + input

* Replace dropdown->select-dropdown in app use

* Merge slug->input, user->select-dropdown-m2o

* Fix type issue

* Fix seeder field name
2021-05-06 16:49:32 -04:00
rijkvanzanten
ae1e22d116 Enforce new collections to have PK field
Fixes #5512
2021-05-06 11:19:51 -04:00
rijkvanzanten
e67702f1b5 Don't pass trx to async hook
Fixes #5460
2021-05-04 19:03:11 -04:00
Aiden Foxx
7df8cf2912 Added Oracle healthcheck fix (#5461) 2021-05-04 13:22:35 -04:00
Sebastian Kinzlinger
a4552e3752 Allow custom email subjects for invite and pw reset mail (#5446)
* Make email template overrides work

The ternary needs to be this way for custom email templates to be picked up.

* Allow custom subject lines for emails

Allow subject line to be passed into `inviteUser()` and `requestPasswordReset()`

* Fix typo

* Revert so only one change for PR

* fix typo

* Fix ts tests
2021-05-04 09:32:29 -04:00
Sebastian Kinzlinger
faa3ca7a06 Allow base Email override for standard emails (#5449)
* Make email template overrides work

The ternary needs to be this way for custom email templates to be picked up.

* Allow custom subject lines for emails

Allow subject line to be passed into `inviteUser()` and `requestPasswordReset()`

* Fix typo

* Fix typo

* eslint stuff

* Update users.ts
2021-05-04 09:31:13 -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