From 574d81ac5456fffb0fb43d759c1902074655edcb Mon Sep 17 00:00:00 2001 From: julien vdb Date: Mon, 4 May 2026 18:46:41 +0200 Subject: [PATCH] New upload way --- config/plugins.ts | 14 +- .../1.0.0/full_documentation.json | 857 +++++++++++++++++- src/extensions/upload/strapi-server.ts | 43 + .../users-permissions/strapi-server.ts | 55 +- types/generated/contentTypes.d.ts | 1 + 5 files changed, 940 insertions(+), 30 deletions(-) create mode 100644 src/extensions/upload/strapi-server.ts diff --git a/config/plugins.ts b/config/plugins.ts index 821679b..da48ba7 100644 --- a/config/plugins.ts +++ b/config/plugins.ts @@ -23,16 +23,18 @@ export default () => ({ config: { provider: "aws-s3", providerOptions: { - baseUrl: "https://container.harmonylab.ovh/harmony", + baseUrl: "https://container.choralsync.com", credentials: { - accessKeyId: "admin", - secretAccessKey: "Apslxnap12bn23", + accessKeyId: "a6f474b04f010543022788efc626cbfe", + secretAccessKey: + "eeeb631194378edee5145b3ef6314630b152fa186b3dab2fefdf8b48952cde21", }, - endpoint: "https://container.harmonylab.ovh", + endpoint: + "https://4c59d3c67191bdd08e311a5a49c3ac98.r2.cloudflarestorage.com", forcePathStyle: true, - region: "eu-west-3", + region: "weur", params: { - Bucket: "harmony", + Bucket: "choralsync", }, }, }, diff --git a/src/extensions/documentation/documentation/1.0.0/full_documentation.json b/src/extensions/documentation/documentation/1.0.0/full_documentation.json index 6993cad..8452950 100644 --- a/src/extensions/documentation/documentation/1.0.0/full_documentation.json +++ b/src/extensions/documentation/documentation/1.0.0/full_documentation.json @@ -14,7 +14,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, - "x-generation-date": "2026-04-14T21:06:17.253Z" + "x-generation-date": "2026-05-04T16:37:25.949Z" }, "x-strapi-config": { "plugins": [ @@ -18773,6 +18773,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -18928,6 +18931,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -19118,6 +19124,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -19382,6 +19391,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -19661,6 +19673,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -20986,6 +21001,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -21291,6 +21309,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -21752,6 +21773,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -22156,6 +22180,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -23386,6 +23413,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -23688,6 +23718,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -24020,6 +24053,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -24536,6 +24572,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -25034,6 +25073,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -25489,6 +25531,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -25739,6 +25784,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -26018,6 +26066,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -26430,6 +26481,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -27147,6 +27201,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -27551,6 +27608,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -29477,6 +29537,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -30066,6 +30129,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -30564,6 +30630,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -30754,6 +30823,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -31209,6 +31281,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -31459,6 +31534,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -31738,6 +31816,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -32150,6 +32231,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -32867,6 +32951,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -33271,6 +33358,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -35197,6 +35287,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -35869,6 +35962,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -36367,6 +36463,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -36557,6 +36656,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -37012,6 +37114,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -37261,6 +37366,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -37978,6 +38086,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -38382,6 +38493,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -40308,6 +40422,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -40696,6 +40813,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -41033,6 +41153,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -41582,6 +41705,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -42080,6 +42206,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -42270,6 +42399,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -42725,6 +42857,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -42974,6 +43109,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -43691,6 +43829,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -44095,6 +44236,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -46021,6 +46165,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -46356,6 +46503,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -47153,6 +47303,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -47651,6 +47804,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -48106,6 +48262,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -48356,6 +48515,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -48635,6 +48797,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -49047,6 +49212,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -49764,6 +49932,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -50168,6 +50339,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -52094,6 +52268,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -53335,6 +53512,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -53490,6 +53670,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -53680,6 +53863,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -53944,6 +54130,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -54223,6 +54412,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -55548,6 +55740,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -55853,6 +56048,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -56314,6 +56512,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -56718,6 +56919,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -57971,6 +58175,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -59334,6 +59541,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -59489,6 +59699,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -59679,6 +59892,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -59943,6 +60159,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -60222,6 +60441,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -61547,6 +61769,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -61852,6 +62077,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -62313,6 +62541,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -62717,6 +62948,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -64026,6 +64260,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -65449,6 +65686,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -65604,6 +65844,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -65794,6 +66037,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -66058,6 +66304,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -66337,6 +66586,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -67662,6 +67914,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -67967,6 +68222,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -68428,6 +68686,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -68832,6 +69093,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -70049,6 +70313,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -70317,6 +70584,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -70978,6 +71248,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -71476,6 +71749,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -71931,6 +72207,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -72121,6 +72400,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -72385,6 +72667,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -72664,6 +72949,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -73989,6 +74277,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -74294,6 +74585,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -74755,6 +75049,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -75159,6 +75456,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -76553,6 +76853,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -77700,6 +78003,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -77855,6 +78161,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -78045,6 +78354,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -78309,6 +78621,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -78588,6 +78903,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -79913,6 +80231,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -80218,6 +80539,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -80679,6 +81003,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -81083,6 +81410,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -83297,6 +83627,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -83452,6 +83785,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -83642,6 +83978,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -83906,6 +84245,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -84185,6 +84527,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -85510,6 +85855,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -85815,6 +86163,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -86276,6 +86627,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -86680,6 +87034,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -88854,6 +89211,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -89009,6 +89369,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -89199,6 +89562,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -89463,6 +89829,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -89742,6 +90111,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -91067,6 +91439,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -91372,6 +91747,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -91833,6 +92211,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -92237,6 +92618,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -94461,6 +94845,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -94616,6 +95003,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -94806,6 +95196,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -95070,6 +95463,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -95349,6 +95745,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -96674,6 +97073,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -96979,6 +97381,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -97440,6 +97845,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -97844,6 +98252,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -100075,6 +100486,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -100230,6 +100644,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -100420,6 +100837,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -100684,6 +101104,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -100963,6 +101386,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -102288,6 +102714,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -102593,6 +103022,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -103054,6 +103486,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -103458,6 +103893,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -105629,6 +106067,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -105784,6 +106225,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -105974,6 +106418,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -106238,6 +106685,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -106517,6 +106967,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -107842,6 +108295,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -108147,6 +108603,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -108608,6 +109067,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -109012,6 +109474,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -111455,6 +111920,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -111610,6 +112078,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -111800,6 +112271,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -112064,6 +112538,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -112343,6 +112820,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -113668,6 +114148,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -113973,6 +114456,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -114434,6 +114920,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -114838,6 +115327,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -116718,6 +117210,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -117216,6 +117711,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -117671,6 +118169,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -117921,6 +118422,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -118200,6 +118704,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -118612,6 +119119,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -119329,6 +119839,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -119733,6 +120246,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -121659,6 +122175,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -122916,6 +123435,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -123071,6 +123593,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -123261,6 +123786,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -123525,6 +124053,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -123804,6 +124335,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -125129,6 +125663,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -125434,6 +125971,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -125895,6 +126435,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -126299,6 +126842,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -128048,6 +128594,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -128546,6 +129095,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -128738,6 +129290,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -129193,6 +129748,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -129443,6 +130001,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -129722,6 +130283,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -130134,6 +130698,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -130851,6 +131418,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -131255,6 +131825,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -133181,6 +133754,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -133527,6 +134103,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -134109,6 +134688,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -134607,6 +135189,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -135082,6 +135667,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -135272,6 +135860,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -135536,6 +136127,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -135815,6 +136409,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -137140,6 +137737,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -137445,6 +138045,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -137892,6 +138495,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -139121,6 +139727,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -140470,6 +141079,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -140625,6 +141237,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -140815,6 +141430,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -141079,6 +141697,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -141358,6 +141979,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -142683,6 +143307,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -142988,6 +143615,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -143449,6 +144079,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -143853,6 +144486,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -146052,6 +146688,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -146207,6 +146846,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -146397,6 +147039,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -146661,6 +147306,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -146940,6 +147588,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -148265,6 +148916,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -148570,6 +149224,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -149031,6 +149688,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -149435,6 +150095,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -153016,6 +153679,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -153171,6 +153837,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -153361,6 +154030,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -153625,6 +154297,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -153904,6 +154579,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -155229,6 +155907,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -155534,6 +156215,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -155995,6 +156679,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -156399,6 +157086,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -158632,6 +159322,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -158787,6 +159480,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -158977,6 +159673,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -159241,6 +159940,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -159520,6 +160222,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -160845,6 +161550,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -161150,6 +161858,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -161611,6 +162322,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -162015,6 +162729,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -164307,6 +165024,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -164462,6 +165182,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -164652,6 +165375,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -164916,6 +165642,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -165195,6 +165924,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -166520,6 +167252,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -166825,6 +167560,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -167286,6 +168024,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -167690,6 +168431,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -169864,6 +170608,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -170362,6 +171109,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -170817,6 +171567,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -171067,6 +171820,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -171346,6 +172102,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -171758,6 +172517,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -172475,6 +173237,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -172879,6 +173644,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -174805,6 +175573,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -175456,6 +176227,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -175954,6 +176728,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -176400,6 +177177,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -176590,6 +177370,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -176854,6 +177637,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -177133,6 +177919,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -178458,6 +179247,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -178763,6 +179555,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -179224,6 +180019,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -179628,6 +180426,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -181889,6 +182690,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -182044,6 +182848,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -182234,6 +183041,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -182498,6 +183308,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -182777,6 +183590,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -184102,6 +184918,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -184407,6 +185226,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -184868,6 +185690,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -185272,6 +186097,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -187479,6 +188307,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -187634,6 +188465,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -187824,6 +188658,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -188088,6 +188925,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -188367,6 +189207,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -189692,6 +190535,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -189997,6 +190843,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -190458,6 +191307,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" @@ -190862,6 +191714,9 @@ "folderPath": { "type": "string" }, + "path": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time" diff --git a/src/extensions/upload/strapi-server.ts b/src/extensions/upload/strapi-server.ts new file mode 100644 index 0000000..5979abd --- /dev/null +++ b/src/extensions/upload/strapi-server.ts @@ -0,0 +1,43 @@ +module.exports = (plugin) => { + // 1. LE SECRET : On ajoute le champ 'path' au schéma officiel de Strapi. + // Strapi va ainsi créer la colonne en BDD et arrêter de supprimer notre variable. + plugin.contentTypes.file.schema.attributes.path = { + type: "string", + configurable: false, + }; + + const originalServiceFactory = plugin.services.upload; + + plugin.services.upload = ({ strapi }) => { + const service = originalServiceFactory({ strapi }); + + return { + ...service, + + // 2. Surcharge de l'Uploader + async upload(fileData, usage) { + const ctx = strapi.requestContext.get(); + // On récupère le custom path envoyé par ton client Next.js + const customPath = ctx?.request?.body?.path; + + if (customPath) { + // Pour que le provider S3 l'utilise tout de suite (R2) + fileData.path = customPath; + + // Pour que Strapi l'enregistre dans notre nouvelle colonne BDD + if (!fileData.fileInfo) fileData.fileInfo = {}; + fileData.fileInfo.path = customPath; + } + + // Le service original va maintenant sauvegarder le path en BDD ! + return service.upload(fileData, usage); + }, + + // Note : Plus besoin de surcharger `remove` (l'équivalent de delete) ! + // Comme la colonne 'path' est maintenant en BDD, le service original + // récupère l'info et la passe au provider S3 qui supprime le bon dossier. + }; + }; + + return plugin; +}; diff --git a/src/extensions/users-permissions/strapi-server.ts b/src/extensions/users-permissions/strapi-server.ts index 08d1f5d..304127d 100644 --- a/src/extensions/users-permissions/strapi-server.ts +++ b/src/extensions/users-permissions/strapi-server.ts @@ -26,7 +26,7 @@ module.exports = (plugin) => { if (attributes[key] && attributes[key].type === "password") { // Check if a custom encryption.rounds has been set on the password attribute const rounds = toNumber( - getOr(10, "encryption.rounds", attributes[key]) + getOr(10, "encryption.rounds", attributes[key]), ); values[key] = await bcrypt.hash(values[key], rounds); } @@ -186,14 +186,14 @@ module.exports = (plugin) => { if (fullUser.contacts && Array.isArray(fullUser.contacts)) { fullUser.contacts = fullUser.contacts.filter( - (contact) => contact.state === "accepted" + (contact) => contact.state === "accepted", ); } if (fullUser.post_ownerships && Array.isArray(fullUser.post_ownerships)) { fullUser.post_ownerships = fullUser.post_ownerships.filter( (ownership) => - ownership.contextType === "user" && ownership.relation === "owner" + ownership.contextType === "user" && ownership.relation === "owner", ); } @@ -202,7 +202,7 @@ module.exports = (plugin) => { Array.isArray(fullUser.group_memberships) ) { fullUser.group_memberships = fullUser.group_memberships.filter( - (membership) => ["member", "admin", "owner"].includes(membership.role) + (membership) => ["member", "admin", "owner"].includes(membership.role), ); } @@ -324,27 +324,27 @@ module.exports = (plugin) => { }, activities: true, }, - } + }, ); // Fusionne les données originales (permissions/serialization) avec les relations user = { ...user, ...populatedUser }; if (user.contacts && Array.isArray(user.contacts)) { user.contacts = user.contacts.filter( - (contact) => contact.state === "accepted" + (contact) => contact.state === "accepted", ); } if (user.post_ownerships && Array.isArray(user.post_ownerships)) { user.post_ownerships = user.post_ownerships.filter( (ownership) => - ownership.contextType === "user" && ownership.relation === "owner" + ownership.contextType === "user" && ownership.relation === "owner", ); } if (user.group_memberships && Array.isArray(user.group_memberships)) { user.group_memberships = user.group_memberships.filter((membership) => - ["member", "admin", "owner"].includes(membership.role) + ["member", "admin", "owner"].includes(membership.role), ); } @@ -411,7 +411,12 @@ module.exports = (plugin) => { return ctx; }; - const uploadImage = async (ctx, label: string, username: string) => { + const uploadImage = async ( + ctx, + label: string, + username: string, + userId: number, + ) => { const key = `${label}Image`; if (ctx.request.files[key]) { const files = Array.isArray(ctx.request.files[key]) @@ -424,6 +429,7 @@ module.exports = (plugin) => { alternativeText: username || "", name: `${username}_avatar${extension}`, }, + path: `user/${userId}`, }; const asset = await strapi.services["plugin::upload.upload"].upload({ data: payload, @@ -444,7 +450,14 @@ module.exports = (plugin) => { return ctx.unauthorized(); } - const data = JSON.parse(ctx.request.body.data); + let data; + if (ctx.request.body.data && typeof ctx.request.body.data === 'string') { + data = JSON.parse(ctx.request.body.data); + } else if (ctx.request.body.data && typeof ctx.request.body.data === 'object') { + data = ctx.request.body.data; + } else { + data = ctx.request.body; + } const newData = lod.pick(data, [ "email", @@ -463,6 +476,7 @@ module.exports = (plugin) => { "languages", "parameter", "privacy", + "avatar", ]); /* @@ -506,7 +520,7 @@ module.exports = (plugin) => { ctx.params = { id: user.id }; const keysExcludingParameterAndPrivacy = Object.keys(newData).filter( - (key) => key !== "parameter" && key !== "privacy" + (key) => key !== "parameter" && key !== "privacy", ); if (keysExcludingParameterAndPrivacy.length === 0) { @@ -520,9 +534,6 @@ module.exports = (plugin) => { return ctx; }); } else { - const avatarId = await uploadImage(ctx, "avatar", newData.username); - if (avatarId != 0) ctx.request.body.avatar = avatarId; - return plugin.controllers.user.update(ctx); } }; @@ -533,14 +544,12 @@ module.exports = (plugin) => { await sendConfirmationEmail(result); - await strapi - .service("api::notification.notification") - ?.addActivity({ - userId: result.id, - activityMessage: `Bienvenue ${result.username}, Ton compte est maintenant activé.`, - activityUser: result.username, - activityType: "user", - }); + await strapi.service("api::notification.notification")?.addActivity({ + userId: result.id, + activityMessage: `Bienvenue ${result.username}, Ton compte est maintenant activé.`, + activityUser: result.username, + activityType: "user", + }); // Appel du service de notification await strapi @@ -555,7 +564,7 @@ module.exports = (plugin) => { }); strapi.log.info( - `🔔 Notification envoyée pour l'utilisateur ${result.id}` + `🔔 Notification envoyée pour l'utilisateur ${result.id}`, ); }, }; diff --git a/types/generated/contentTypes.d.ts b/types/generated/contentTypes.d.ts index ae7c2b2..5c952e4 100644 --- a/types/generated/contentTypes.d.ts +++ b/types/generated/contentTypes.d.ts @@ -1971,6 +1971,7 @@ export interface PluginUploadFile extends Struct.CollectionTypeSchema { Schema.Attribute.Private; mime: Schema.Attribute.String & Schema.Attribute.Required; name: Schema.Attribute.String & Schema.Attribute.Required; + path: Schema.Attribute.String; previewUrl: Schema.Attribute.String; provider: Schema.Attribute.String & Schema.Attribute.Required; provider_metadata: Schema.Attribute.JSON;