diff --git a/backend/scripts/repl b/backend/scripts/repl index 219e2c164..4dfac5de8 100755 --- a/backend/scripts/repl +++ b/backend/scripts/repl @@ -28,7 +28,8 @@ export PENPOT_FLAGS="\ enable-access-tokens \ disable-file-validation \ disable-file-schema-validation \ - enable-soft-file-schema-validation"; + enable-soft-file-schema-validation \ + enable-soft-file-validation"; # export PENPOT_DATABASE_URI="postgresql://172.17.0.1:5432/penpot" # export PENPOT_DATABASE_USERNAME="penpot" diff --git a/backend/scripts/start-dev b/backend/scripts/start-dev index f905fe3ad..32d7ba7da 100755 --- a/backend/scripts/start-dev +++ b/backend/scripts/start-dev @@ -19,7 +19,8 @@ export PENPOT_FLAGS="\ enable-access-tokens \ disable-file-validation \ disable-file-schema-validation \ - enable-soft-file-schema-validation"; + enable-soft-file-schema-validation \ + enable-soft-file-validation"; # Initialize MINIO config mc alias set penpot-s3/ http://minio:9000 minioadmin minioadmin diff --git a/backend/src/app/rpc/commands/files_update.clj b/backend/src/app/rpc/commands/files_update.clj index 8b8eb6bfd..883937c68 100644 --- a/backend/src/app/rpc/commands/files_update.clj +++ b/backend/src/app/rpc/commands/files_update.clj @@ -275,6 +275,15 @@ file) +(defn- soft-validate-file! + [file libs] + (try + (val/validate-file! file libs) + (catch Throwable cause + (l/error :hint "file validation error" + :cause cause))) + file) + (defn- update-file-data [conn file changes skip-validate] (let [file (update file :data (fn [data] @@ -309,6 +318,9 @@ (not skip-validate)) (val/validate-file-schema!)) + (cond-> (contains? cf/flags :soft-file-validation) + (soft-validate-file! libs)) + (cond-> (contains? cf/flags :soft-file-schema-validation) (soft-validate-file-schema!))