From e63979891803d13e4bcc0ad89191bd9a6e127175 Mon Sep 17 00:00:00 2001 From: juetan Date: Tue, 17 Oct 2023 22:40:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/database/db.sqlite | Bin 163840 -> 163840 bytes content/upload/2023/10/1697194556035.json | 36 +++++++ content/upload/2023/10/1697458155519.txt | 100 ++++++++++++++++++ content/upload/2023/10/1697549196766.png | Bin 0 -> 13727 bytes src/content/category/category.controller.ts | 32 ++---- .../category/dto/update-category.dto.ts | 6 +- src/database/suscribers/entify.subscriber.ts | 16 ++- .../permission/dto/update-permission.dto.ts | 6 +- .../permission/entities/permission.entity.ts | 2 +- .../permission/permission.controller.ts | 2 - src/storage/upload/dto/find-upload.dto.ts | 0 11 files changed, 169 insertions(+), 31 deletions(-) create mode 100644 content/upload/2023/10/1697194556035.json create mode 100644 content/upload/2023/10/1697458155519.txt create mode 100644 content/upload/2023/10/1697549196766.png create mode 100644 src/storage/upload/dto/find-upload.dto.ts diff --git a/content/database/db.sqlite b/content/database/db.sqlite index 2f42cb7657a8cbf9b9bdc2897b35043262aa9e27..74d8176652ab490cdea8851aa804d26883525480 100644 GIT binary patch delta 11905 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 KO1cUQAN>uIT3Ac~ diff --git a/content/upload/2023/10/1697194556035.json b/content/upload/2023/10/1697194556035.json new file mode 100644 index 0000000..24d61cb --- /dev/null +++ b/content/upload/2023/10/1697194556035.json @@ -0,0 +1,36 @@ +{ + "acmer": { + "Account": { + "Email": "contact@juetan.cn", + "Registration": { + "body": { + "status": "valid", + "contact": [ + "mailto:contact@juetan.cn" + ] + }, + "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/1350824466" + }, + "PrivateKey": "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", + "KeyType": "4096" + }, + "Certificates": [ + { + "domain": { + "main": "router.dev.juetan.cn" + }, + "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUY5RENDQk55Z0F3SUJBZ0lTQkJPSGI2b0E5dXhhNFZ6aTdLcjdpZ0xtTUEwR0NTcUdTSWIzRFFFQkN3VUEKTURJeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rc3dDUVlEVlFRRApFd0pTTXpBZUZ3MHlNekV3TURrd01ESTVNVGhhRncweU5EQXhNRGN3TURJNU1UZGFNQjh4SFRBYkJnTlZCQU1UCkZISnZkWFJsY2k1a1pYWXVhblZsZEdGdUxtTnVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUMKQ2dLQ0FnRUF0Y3VMdVdqdWlaSXBCUEIwcFF4NTlicHpoaFcyZmlQTXZ3NnJvalk1aHVmWlIvdHIzQVpMQ0hFRQpDbDd0bDZ0UmtzT3cxRkZjZVlZczBPL1NXODlGSmNmUm9wbHJjLzdBUysvNHV2K2F4Rndma1g1NUF5WU8zRmdCCmhvNFJ2TUlWZjdSQ3d1aEo4T2dQK2pUL2FHSTRTUjF2Q3pWbVVSUGNGZGRLSDRFNW1mT2VDdElWaEJlZ1RoU2cKQURZcEpWM2cxenl2SlNrU3dMa0hOaXhSWUZDTlZpVHd2eFlUbVUzTHVwOVhES0lvem9Rd0Nlajk4U3BZZ3ZnNApvRHVKNDR4Rk04eTF3WFhGSWpxd2NEUWxrRTlxaUpQREVGa0JpN0hQM1IwUHlVMk5rRk4zaUUvczd2Z3QweEltCkhMWTNoOGtrRDBlSTBybjAxb0wyanBhRFFOVEFBNERWRlpqMFMrTlZIQUNKUUtrVWdXOFR3WFR2Um1oS0JzNDEKRndxTlowamk0QnNhalNDZmppOHNxbG1yL2IwUlVTWHFLejZEcVlnYUluVE5rMThXbjZWVW5VeTI3eXZSN1V1MAptK3RDMVNFblo0UHhRS2JsZ05HU2pWRmN3YXZ6WFowSEM0WFJ1UVU4S2hoaklXdWFsUjgzUER4Q05LY3Q3eEo3Ck44WDdCbkQ0NEtBMTBPMFd6RnNPQkh5S0pQT0N2Q3g2WHhUZG5ocGVpQUk5bktMcnJoTEUyS2UwYkdlVlBWOGMKaUZPcmpsUTljUDAwL0Q4TU4yVTYzb0M5ZUpWeCtCaVFTTURtU05yTVFvV0VXSXpwZGlmdnBEc0FpMkZhckNjQQptMnNka0ZhdnRqMUZqYVhWaVMveWlOQUkyL1dVOVo0UGMwSk1JMDA5bjNQWDY0K0dQQUVDQXdFQUFhT0NBaFV3CmdnSVJNQTRHQTFVZER3RUIvd1FFQXdJRm9EQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFkQmdOVkhRNEVGZ1FVYzhsb050c29iSFE5Qk9Uemp6d2tZdjZtWWxvdwpId1lEVlIwakJCZ3dGb0FVRkM2ekY3ZFlWc3V1VUFsQTVoK3ZuWXNVd3NZd1ZRWUlLd1lCQlFVSEFRRUVTVEJICk1DRUdDQ3NHQVFVRkJ6QUJoaFZvZEhSd09pOHZjak11Ynk1c1pXNWpjaTV2Y21jd0lnWUlLd1lCQlFVSE1BS0cKRm1oMGRIQTZMeTl5TXk1cExteGxibU55TG05eVp5OHdId1lEVlIwUkJCZ3dGb0lVY205MWRHVnlMbVJsZGk1cQpkV1YwWVc0dVkyNHdFd1lEVlIwZ0JBd3dDakFJQmdabmdRd0JBZ0V3Z2dFREJnb3JCZ0VFQWRaNUFnUUNCSUgwCkJJSHhBTzhBZGdEYXRyOXJQN1cySXArYndydGNhK2h3a1hGc3UxR0VoVFM5cEQwd1NOZjdxd0FBQVlzU0RZaUsKQUFBRUF3QkhNRVVDSUJKQjBWWmRBaDBaSFc5L3JVZ3B3VHVoTmRrTVhJN2R2TUFJQ2dDdUNEQjdBaUVBblRFWAprUE90dWg2KzVTeUhPU1VoOURiR01yb1kzVlBlSXBCbVJ2UXc0VnNBZFFEdXpkQmsxZHNhenNWY3Q1MjB6Uk9pCk1vZEdmTHpzM3NOUlNGbEdjUisxbXdBQUFZc1NEWWl2QUFBRUF3QkdNRVFDSUVuNlYzaVlPSmE2QVVMQVpHanAKVytnQlFVTnk3NjBKWkhOY2ZzNllUdFBhQWlCS1RaUzRXZS9wMzdRSXZ0RUFncVVqaFA5eUlDaEtseGRINVJ3OQo5UjBYdERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWEwNkRvWjZXRWZ1QW5XbW5qQ00zczVwa0JUUWpuaDVVCnJrZHVJdUVVSFpPMVFHTFJ4dFVDVmI4b2w3QjNKbnNVUElzVVBiOFRWL2ZJQWlNNiszbkxocUkwSFNsNE5kb08KRW9nQ2J2Rm5qbjJNc0p6ZGNodXBZQUYrZzJ1VzBSamh1aUlkazNYR3czaG43VXVBZHVtUHdodWN5L2hpQVR3bgpiWk82QnNrcFVqQzlmTTVTR0Y2d0F5eGFuSmhZRUh2NFJ4bFZDZ3Uxc1RoVHpVd0hSaGtBZ1pWYmdPQzlyTm8zClBFQWdYbytKVCtBNnEvUFZrUUNqUCtXekFza0dteXZTaDhzWFRxUVduWTZrQXAvdVpya2pjbkFUbnR6NmFlcWcKVnVDWHFKZGJpeWV6U3M5a1ZYVkFJK0dnTms0aXJQUCszbE5ETjFuRVdPRXdnN0R6dldSS2p3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZGakNDQXY2Z0F3SUJBZ0lSQUpFckNFclBEQmluVS9iV0xpV25YMW93RFFZSktvWklodmNOQVFFTEJRQXcKVHpFTE1Ba0dBMVVFQmhNQ1ZWTXhLVEFuQmdOVkJBb1RJRWx1ZEdWeWJtVjBJRk5sWTNWeWFYUjVJRkpsYzJWaApjbU5vSUVkeWIzVndNUlV3RXdZRFZRUURFd3hKVTFKSElGSnZiM1FnV0RFd0hoY05NakF3T1RBME1EQXdNREF3CldoY05NalV3T1RFMU1UWXdNREF3V2pBeU1Rc3dDUVlEVlFRR0V3SlZVekVXTUJRR0ExVUVDaE1OVEdWMEozTWcKUlc1amNubHdkREVMTUFrR0ExVUVBeE1DVWpNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFDN0FoVW96UGFnbE5NUEV1eU5WWkxEK0lMeG1hWjZRb2luWFNhcXRTdTV4VXl4cjQ1citYWElvOWNQClI1UVVWVFZYako2b29qa1o5WUk4UXFsT2J2VTd3eTdiamNDd1hQTlpPT2Z0ejJud1dnc2J2c0NVSkNXSCtqZHgKc3hQbkhLemhtKy9iNUR0RlVrV1dxY0ZUempUSVV1NjFydTJQM21CdzRxVlVxN1p0RHBlbFFEUnJLOU84WnV0bQpOSHo2YTR1UFZ5bVorREFYWGJweWIvdUJ4YTNTaGxnOUY4Zm5DYnZ4Sy9lRzNNSGFjVjNVUnVQTXJTWEJpTHhnClozVm1zL0VZOTZKYzVsUC9Pb2kyUjZYL0V4anFtQWwzUDUxVCtjOEI1ZldtY0JjVXIyT2svNW16azUzY1U2Y0cKL2tpRkhhRnByaVYxdXhQTVVnUDE3VkdoaTlzVkFnTUJBQUdqZ2dFSU1JSUJCREFPQmdOVkhROEJBZjhFQkFNQwpBWVl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1CSUdBMVVkRXdFQi93UUlNQVlCCkFmOENBUUF3SFFZRFZSME9CQllFRkJRdXN4ZTNXRmJMcmxBSlFPWWZyNTJMRk1MR01COEdBMVVkSXdRWU1CYUEKRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dU1ESUdDQ3NHQVFVRkJ3RUJCQ1l3SkRBaUJnZ3JCZ0VGQlFjdwpBb1lXYUhSMGNEb3ZMM2d4TG1rdWJHVnVZM0l1YjNKbkx6QW5CZ05WSFI4RUlEQWVNQnlnR3FBWWhoWm9kSFJ3Ck9pOHZlREV1WXk1c1pXNWpjaTV2Y21jdk1DSUdBMVVkSUFRYk1Ca3dDQVlHWjRFTUFRSUJNQTBHQ3lzR0FRUUIKZ3Q4VEFRRUJNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNGeWs1SFBxUDNoVVNGdk5WbmVMS1lZNjExVFI2VwpQVE5sY2xRdGdhRHF3KzM0SUw5ZnpMZHdBTGR1Ty9aZWxON2tJSittNzR1eUErZWl0Ulk4a2M2MDdUa0M1M3dsCmlrZm1aVzQvUnZUWjhNNlVLKzVVemhLOGpDZEx1TUdZTDZLdnpYR1JTZ2kzeUxnamV3UXRDUGtJVno2RDJRUXoKQ2tjaGVBbUNKOE1xeUp1NXpsenlaTWpBdm5uQVQ0NXRSQXhla3JzdTk0c1E0ZWdkUkNuYldTRHRZN2toK0JJbQpsSk5Yb0IxbEJNRUtJcTRRRFVPWG9SZ2ZmdURnaGplMVdyRzlNTCtIYmlzcS95Rk9Hd1hEOVJpWDhGNnN3Nlc0CmF2QXV2RHN6dWU1TDNzejg1SytFQzRZL3dGVkROdlpvNFRZWGFvNlowZitsUUtjMHQ4RFFZemsxT1hWdThycDIKeUpNQzZhbExiQmZPREFMWnZZSDduN2RvMUFabHM0STlkMVA0am5rRHJRb3hCM1VxUTloVmwzTEVLUTczeEYxTwp5SzVHaEREWDhvVmZHS0Y1dStkZWNJc0g0WWFUdzdtUDNHRnhKU3F2MyswbFVGSm9pNUxjNWRhMTQ5cDkwSWRzCmhDRXhyb0wxKzdtcnlJa1hQZUZNNVRnTzlyMHJ2WmFCRk92VjJ6MGdwMzVaMCtMNFdQbGJ1RWpOL2x4UEZpbisKSGxVanI4Z1JzSTNxZkpPUUZ5LzlyS0lKUjBZLzhPbXd0LzhvVFdneTFtZGVIbW1qazdqMW5Zc3ZDOUpTUTZadgpNbGRsVFRLQjN6aFRoVjErWFdZcDZyamQ1SlcxemJWV0VrTE54RTdHSlRoRVVHM3N6Z0JWR1A3cFNXVFVUc3FYCm5MUmJ3SE9vcTdoSHdnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZZRENDQkVpZ0F3SUJBZ0lRUUFGM0lUZlU2VUs0N25hcVBHUUt0ekFOQmdrcWhraUc5dzBCQVFzRkFEQS8KTVNRd0lnWURWUVFLRXh0RWFXZHBkR0ZzSUZOcFoyNWhkSFZ5WlNCVWNuVnpkQ0JEYnk0eEZ6QVZCZ05WQkFNVApEa1JUVkNCU2IyOTBJRU5CSUZnek1CNFhEVEl4TURFeU1ERTVNVFF3TTFvWERUSTBNRGt6TURFNE1UUXdNMW93ClR6RUxNQWtHQTFVRUJoTUNWVk14S1RBbkJnTlZCQW9USUVsdWRHVnlibVYwSUZObFkzVnlhWFI1SUZKbGMyVmgKY21Ob0lFZHliM1Z3TVJVd0V3WURWUVFERXd4SlUxSkhJRkp2YjNRZ1dERXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQ3Q2Q1J6OUJRMzg1dWVLMWNvSEllKzNMZmZPSkNNYmp6bVY2QjQ5M1hDCm92NzFhbTcyQUU4bzI5NW9obXhFazdheFkvMFVFbXUvSDlMcU1ac2hmdEV6UExwSTlkMTUzN080L3hMeElacEwKd1lxR2NXbEtabVpzajM0OGNMK3RLU0lHOCtUQTVvQ3U0a3VQdDVsK2xBT2YwMGVYZkpsSUkxUG9PSzVQQ20rRApMdEZKVjR5QWRMYmFMOUE0alhzRGNDRWJkZkl3UFBxUHJ0M2FZNnZyRmsvQ2poRkxmczhMNlArMWR5NzBzbnRLCjRFd1NKUXh3alFNcG9PRlRKT3dUMmU0WnZ4Q3pTb3cvaWFOaFVkNnNod2VVOUdOeDdDN2liMXVZZ2VHSlhEUjUKYkhidk81QmllZWJicEpvdkpzWFFFT0VPM3RrUWpoYjd0L2VvOThmbEFnZVlqellJbGVmaU41WU5ObldlK3c1eQpzUjJidkFQNVNRWFlnZDBGdENyV1FlbXNBWGFWQ2cvWTM5VzlFaDgxTHlnWGJOS1l3YWdKWkhkdVJ6ZTZ6cXhaClhtaWRmM0xXaWNVR1FTaytXVDdkSnZVa3lSR25XcU5NUUI5R29abTFwenBSYm9ZN25uMXlweElGZUZudFBsRjQKRlFzRGo0M1FMd1d5UG50S0hFdHpCUkw4eHVyZ1VCTjhRNU4wczhwMDU0NGZBUWpRTU5SYmNUYTBCN3JCTURCYwpTTGVDTzVpbWZXQ0tvcU1wZ3N5NnZZTUVHNktEQTBHaDFnWHhHOEsyOEtoOGhqdEdxRWdxaU54Mm1uYS9IMnFsClBSbVA2emp6Wk43SUt3MEtLUC8zMitJVlF0UWkwQ2RkNFhuK0dPZHdpSzFPNXRtTE9zYmRKMUZ1Lzd4azlUTkQKVHdJREFRQUJvNElCUmpDQ0FVSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU9CZ05WSFE4QkFmOEVCQU1DQVFZdwpTd1lJS3dZQkJRVUhBUUVFUHpBOU1Ec0dDQ3NHQVFVRkJ6QUNoaTlvZEhSd09pOHZZWEJ3Y3k1cFpHVnVkSEoxCmMzUXVZMjl0TDNKdmIzUnpMMlJ6ZEhKdmIzUmpZWGd6TG5BM1l6QWZCZ05WSFNNRUdEQVdnQlRFcDdHa2V5eHgKK3R2aFM1QjEvOFFWWUlXSkVEQlVCZ05WSFNBRVRUQkxNQWdHQm1lQkRBRUNBVEEvQmdzckJnRUVBWUxmRXdFQgpBVEF3TUM0R0NDc0dBUVVGQndJQkZpSm9kSFJ3T2k4dlkzQnpMbkp2YjNRdGVERXViR1YwYzJWdVkzSjVjSFF1CmIzSm5NRHdHQTFVZEh3UTFNRE13TWFBdm9DMkdLMmgwZEhBNkx5OWpjbXd1YVdSbGJuUnlkWE4wTG1OdmJTOUUKVTFSU1QwOVVRMEZZTTBOU1RDNWpjbXd3SFFZRFZSME9CQllFRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dQpNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFLY3dCc2xtNy9EbExRcnQyTTUxb0dyUytvNDQrL3lRb0RGVkRDCjVXeEN1MitiOUxSUHdrU0lDSFhNNndlYkZHSnVlTjdzSjdvNVhQV2lvVzVXbEhBUVU3Rzc1Sy9Rb3NNckFkU1cKOU1VZ05UUDUyR0UyNEhHTnRMaTFxb0pGbGNEeXFTTW81OWFoeTJjSTJxQkRMS29ia3gvSjN2V3JhVjBUOVZ1RwpXQ0xLVFZYa2NHZHR3bGZGUmpsQno0cFlnMWh0bWY1WDZEWU84QTRqcXYySWw5RGpYQTZVU2JXMUZ6WFNMcjlPCmhlOFk0SVdTNndZN2JDa2pDV0RjUlFKTUVoZzc2ZnNPM3R4RStGaVlydXE5UlVXaGlGMW15djRRNlcrQ3lCRkMKRGZ2cDdPT0dBTjZkRU9NNCtxUjlzZGpvU1lLRUJwc3I2R3RQQVF3NGR5NzUzZWM1Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBdGN1THVXanVpWklwQlBCMHBReDU5YnB6aGhXMmZpUE12dzZyb2pZNWh1ZlpSL3RyCjNBWkxDSEVFQ2w3dGw2dFJrc093MUZGY2VZWXMwTy9TVzg5RkpjZlJvcGxyYy83QVMrLzR1ditheEZ3ZmtYNTUKQXlZTzNGZ0JobzRSdk1JVmY3UkN3dWhKOE9nUCtqVC9hR0k0U1IxdkN6Vm1VUlBjRmRkS0g0RTVtZk9lQ3RJVgpoQmVnVGhTZ0FEWXBKVjNnMXp5dkpTa1N3TGtITml4UllGQ05WaVR3dnhZVG1VM0x1cDlYREtJb3pvUXdDZWo5CjhTcFlndmc0b0R1SjQ0eEZNOHkxd1hYRklqcXdjRFFsa0U5cWlKUERFRmtCaTdIUDNSMFB5VTJOa0ZOM2lFL3MKN3ZndDB4SW1ITFkzaDhra0QwZUkwcm4wMW9MMmpwYURRTlRBQTREVkZaajBTK05WSEFDSlFLa1VnVzhUd1hUdgpSbWhLQnM0MUZ3cU5aMGppNEJzYWpTQ2ZqaThzcWxtci9iMFJVU1hxS3o2RHFZZ2FJblROazE4V242VlVuVXkyCjd5dlI3VXUwbSt0QzFTRW5aNFB4UUtibGdOR1NqVkZjd2F2elhaMEhDNFhSdVFVOEtoaGpJV3VhbFI4M1BEeEMKTktjdDd4SjdOOFg3Qm5ENDRLQTEwTzBXekZzT0JIeUtKUE9DdkN4Nlh4VGRuaHBlaUFJOW5LTHJyaExFMktlMApiR2VWUFY4Y2lGT3JqbFE5Y1AwMC9EOE1OMlU2M29DOWVKVngrQmlRU01EbVNOck1Rb1dFV0l6cGRpZnZwRHNBCmkyRmFyQ2NBbTJzZGtGYXZ0ajFGamFYVmlTL3lpTkFJMi9XVTlaNFBjMEpNSTAwOW4zUFg2NCtHUEFFQ0F3RUEKQVFLQ0FnQkhBYy83aFk3V1VTNlFiVk5DUEZOT3RacjEzbmsvWDhCVFIrbW1IRVB2KzVNVTJKRlNpV3E1UzF0bQpxWmxueWxTOFhJOHUvdkI5enZpbVMyWUEwajZSK1RCYXNFNFdLb1QxcEMrazZyMkt3T2picldpYTREeWh1QVl3CmhrRkxWd3VLcTkvL3ZUZFVUM0FlTEtFdUpsOFJ2OXRscDEvbGZ6cFJsWnV3SG90ZkpKYXdaMHBjSTlaTGFTYnQKcmpuNERHa0w2UG9JSzdqVmFlLzFLdTVHRG5DR0d6dWxoM3YwUHp5NkVnNndNbzU1eTR2djh2OXRPVHNGUE9yeApPeEFxdnRrdzJGNk54L0JONUZxU0dPd3JKN25XeXRCQURHUGNLb0drUGZ1eWh3WXFQMC9MQUZ6dElpYlQ4SnpPClRpWDJkWXdPSThTL2VqNjFvc1duQUFjWVJZRVJzNWJoUjAxK2ZibHNhdi83dmRZczQrOEdKYjNDMXJ4RVAyVDMKZnNqRlBDbnRzMlVWaGMwVUpIR2w2OGx3bEtHYW5KeGx2dVhONGc2eXZvTFRZWVVUT0ZnTW5Sdnc1THFWeHAreApkR1psRWNuaGE5Wit1N2ZyYU5keWZuZzB1cXpHRHZxOVJobFp0Y2Z0Z0dneW9aWmZuZWF1Sm84VnBYUWZ6SDNjClBhYnZaT0JGcnhiUVR6MGhJajBpVjZYOWRUY2lUSkhZTDVlbGdkcGx1d2hHMVk0Z3QrZDhoRW9PNGptQ0MwUGcKQThMUDQ0MmxtYnFGUGpWZmFnOUxJQS9GNjg5VEwxV0VRU1RTM0ZuL1B2M25pamtwdjBvZmplTVVVYnBxNjBXagpQeHRNS0Z3ak1nTTF2dU1pRGpJbS9IS3JjT0VXalRLVWpleEQxMXhGL3pRblFlc1VXUUtDQVFFQXdGR3BkWnFRCndtTGlxenkvOHBCSFRBUlhLMXUzRW5FbnJEajk5NjBVY0FNWEVqcUFzQy85TkFnVTlZQzRlUDVFRiszRFpKcTYKbngzZEVkWWZodTJZNGU3SCsraEVKRkdkVmhMSnJkazM5RDNCalRCU3lQR0d3SUpGME5rdTVqT1prYklYNlhFRwozQml4Q1ZDcDJpa3B4b3hCQkdKRzJqUTJWeDhodjYxVThzYmpjUktqdk13UlpRNGxYcU1mR2Zwdi8vS0FmNU96CjdWK0FRM1hqdU1KNi8weW5GTnAvMHZEMngzd0MwaS9PZVpKYThjQlVld0Z3NGFPNjc0QzhwMTd3N1dEejVyT0UKbWVFWE8xT1RUNHdaOFAyeTlGOFErZW9wMEFHWG44K0JrbmtpS3E3ZG9aUzJpUk9tVFF5c2pIQW02VWlReGtISgpPKytacFQ0OEdMZW1Hd0tDQVFFQThmM05wTlU1QVovbFp3UW1VK08vVG1lS2ovRmNoc0tLUDkvOG9rNElNU1pBCmpQOW00SjVadmRINU5HbGtTYUlNdTRKcG5rOUxIbUpBUVF4YThHQ3AwbUxpS2tJOHNhamo5WDlXZUNOK2FVU1YKVTAwOEFzOHo0akQ5RHBrYVg4NWNEd0VRQVRNSXhySEtpcm1NdTJCVGNSWTZxN3MrZGl2RjR3R1hkYWtSN0NDUAo0Y2xReFZsalFxbXQwenUzNlY0am5SNDcwT3BCbTR1NXRIQjA4M2pYendDS1EwZUFQOVRHMytTNzZlYzl4OFYvCkk2TG93M25UOE5UenNLYVZJWkRlTGN4T3ppV0dpWG5JeGJCTGpJWWFpNE5UVGE5YmJ2NGlQRVM4TGw0Qm05MzUKMXN6R01vY3R6a0JyclNiZW9RQzY5alh2bEowNXhORlJ3aGtNL1owNEV3S0NBUUJrM3ZBbzlPY1ViZFZCeDExTwpGb3F1dm1BU0o4cS82NFhKZVNNTDgwWVM4aXY1cmFHdHg1M2cycFJUcUM0Wm1CT1RFV3c0cWtkVUNjL1grUjBVCklpN2I0ZWdXb2w2TFJodGw5L2k4TElDQ3BKbU9PbGhSZVEwYWo3bWFyeTlBSXJSYmpMT3FCMVIzd0tPcXBScFIKaU9HV2VCM3A5TG9BM1AzYmVFSzFURzZQMysyUGN4MWFleFpza0p6ZEpHVzl0SE5tSllWc1pNWXNyTGlUcVpQRgpab3dvdDhXeTFGL1MvZndSNldONVp3Vy9FaHFOVGptQlF1STRGeTZIVEZpbTJNODVVbTdiQkRGNm5Hc1kvTjc1CkRCelhIOW5xL3FuaXl3VWZTcGFDaGM0S1MycTJSSDJPc0hlRk1qODVqbm82TnVEUjN2UEFhT1RwZ09Sdm5WTGMKREFjZEFvSUJBUUM5amhudjdEWGpWK1RTZFNXd3dNMnlGTmt0Tjl0S2xFakhFQ1ZNM2VMODNRSGpjSXlkbG15bApqRHl4R1gwOVVIcTR4c2NGQXdmTW5SbkgybTNCclhaWkhxd2FmaGdjOGpiZXJ3aUV3d2phWEthN3dkd29OelpsCkVBcXB6TFFrSi9sa3AyaHFDQmZ2eklUamRjVVBZYno2OEhhMDNzOW1zWk1vNXE1RnRGSWRyTVFJRVRINzVMRWsKSHRYU2lRemUrS2JkQkRuR3hEandKdHNveEk1WHlXa0M5V0ZZb2tHTHZwaXArUHBabHBHR1V1WHNmRWZvRng0MQpvQm5qWGhtaldWOHdjTUdxS1NyaHRVdlh6dWpmQW96NGk3NU5NL2RqVWg1dkowaGc2YkpJN2ZBdW1la0cyMnkrCkN5aE5VZzFDQU5oeTFIeis1TW5EcWxOb3YwYTF3dG1SQW9JQkFCSGRvQnJ3ZVVyTnI2VEo4T0hQVS92WWNJaHkKSlhCNGZvQy8wSWZOZ0hjWXFGT3o2YXd6bElaUUxyamtQMUtkaXRQMDNEVEV0bVJnYlNFUFQ2UkZvZ1NaQ09aWgpYV1dmNFRFQkdjRGl3dXpvcjFmYm1UWXhhRDRQS1FTTTRmYU5OOVNET3BTNFYzSDI4UXIzWjV6eXZ5T0UzQitNCnd6cDMzMkJIU3ZqSjczQlRPaFkzV0NRLzl4dTRwNmM3dFZTSFY2WXM4S2w0b1QrZTVXSXU3c0pWdGkwR2Rvei8KZHptRFJtWG8xdWNaaFlqNUdtTW9PbzA4enRUR2s5WVdxNHFBK3dCNVNzSU94dGd1UGEwdzhsSllURzdYRnFaKwp5bklRVnFMTEhick51cDViT0E3R1NJM1Q1TDA0M0tLWkF4QVBIWjEyazI1a282UFhFc2FNRlJKU1d4WT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", + "Store": "default" + }, + { + "domain": { + "main": "ad.dev.juetan.cn" + }, + "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUY3VENDQk5XZ0F3SUJBZ0lTQXphdjBYVDlUWVI0OWhsV0c2cVpOT2o1TUEwR0NTcUdTSWIzRFFFQkN3VUEKTURJeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rc3dDUVlEVlFRRApFd0pTTXpBZUZ3MHlNekV3TURrd01EUXdNRGhhRncweU5EQXhNRGN3TURRd01EZGFNQnN4R1RBWEJnTlZCQU1UCkVHRmtMbVJsZGk1cWRXVjBZVzR1WTI0d2dnSWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUNEd0F3Z2dJS0FvSUMKQVFDK0UxemZBM2F0ek13Z0JPVEtHbnlEVjRiUDlPOFVqM0xOWm4xeklTblZMeUkwQTJFemdvajBVSXlObVpzOQphNkpaV042QW1SSGpmbEJlOFQrUWx6MjU1SlZkcTk1ODBrOEdaSGlCSklmbFNTa3lDZWlLc2Myek1YYzNRTVhOCkp4dlRBSFlsUHVaaUJsOTBkbTZ0TURJa1Qzdkw4L05KUEd1a1YyeUt2NllxcUlMNTI3WC84Mmtla2YxNGxqN3cKKy9lVERhZ2lEMTZTTThWOGFJYVdZc3VTSGhjWFkxcVRJbysyM2I3OThxWTNuZWcrVGRaZlNNdDd5b3Q1R29vbApiaEtEajRCdWM1aUdrcXhLSXNMd1crSlY4MnBVSWljckMvTWVPK2JZK3RwTW1TR3hJd3lya3RSUldzYm9xdjdsCndDM2xwcnY5Zjh2dDNwNHYvQ2R5bmhwYkZRZnZUWWJaVEd5QlFUVVU0UGlrL1JRdkFJZjE1SWRnZGhvazBvMjYKbmZISWk2cjYrNGgwamgzeXFPemFsZEVTOTNLSHJ2VnhjUjMvbmg4K1RyUzVOY3FXb1g4QkN4MTlreXovN2hjTAo4RnlqaWlqQ29zU0VqWEdMLzVlNEFSL1plMXZyN2FmbXB6STRLT1hnRHk5cElTNGN5TzZUY2hZdTU5WThQOWxQCmkzdHBwTU9vYWc4U3FaRWZDbFFCRlF2WDI0clhMNnVNaENHOVBhdmZXUk5ub2ZINnlWOUdvOFA3Rld1M0lPcDAKVjRCVDlkb1ZmMlRwTGhBZDNuTndTMVFNZklORjB5bGdYNGRKZ2M3ZXR2NE50MjhJTldqUHc5VXRlM3BIVGc1bwppdUNsR1NVd2VyZTVjYi9TWHE1R1dqL0o2SkxsdHU0RDBXUWFtL0VHVEJIWWt3SURBUUFCbzRJQ0VqQ0NBZzR3CkRnWURWUjBQQVFIL0JBUURBZ1dnTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU0KQmdOVkhSTUJBZjhFQWpBQU1CMEdBMVVkRGdRV0JCUWFzRHFJQlZaNHd2UE9Ka0J1RHBQTk1RTjBQakFmQmdOVgpIU01FR0RBV2dCUVVMck1YdDFoV3k2NVFDVURtSDYrZGl4VEN4akJWQmdnckJnRUZCUWNCQVFSSk1FY3dJUVlJCkt3WUJCUVVITUFHR0ZXaDBkSEE2THk5eU15NXZMbXhsYm1OeUxtOXlaekFpQmdnckJnRUZCUWN3QW9ZV2FIUjAKY0RvdkwzSXpMbWt1YkdWdVkzSXViM0puTHpBYkJnTlZIUkVFRkRBU2doQmhaQzVrWlhZdWFuVmxkR0Z1TG1OdQpNQk1HQTFVZElBUU1NQW93Q0FZR1o0RU1BUUlCTUlJQkJBWUtLd1lCQkFIV2VRSUVBZ1NCOVFTQjhnRHdBSFVBCk8xTjNkVDR0dVlCT2l6QmJCdjVBTzJmWVQ4UDB4NzBBRFMxeWIrSDYxQmNBQUFHTEVoZDB2Z0FBQkFNQVJqQkUKQWlCSkNiNG13aXdhWFVEWUVpOEdhTVB3ZjJCWEZZeXNiL1YvT2xWbUlraUtKQUlnVXl4MTY2YXFwSGxDczh2OQpCa1FXdWQyMmxZQUFqblJ1M1ZBekZUZ1dWSVlBZHdCMi80Zy9DcmI3bFZIQ1ljejFoN28wdEtUTnV5bmNhRUlLCm4rWm5URm82ZEFBQUFZc1NGM1RnQUFBRUF3QklNRVlDSVFDU2pFeWh3SzNjWkt2Tzk3dmdwOTRqOVlMZXBMbFQKY0RFdXhoMlhSR2Iza3dJaEFKRVBmSVZ1RmQwRGZsMUpvdlEvUGhRRWJRRi82OFdJVmVlVDE2UEtYWExUTUEwRwpDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXVPVGcxZThLU1lnRlB0ZlJVQVhEb2kyaWQ5bzdNRFFjK3Vjc1RhTHFlCllSMVdjZmVITUtOSmpubVBNRTFvM2tOalU3RXE0MFczRVJqYTJ5NDQ0WlhQeXE1TUFocDQrTjA2akxKZHl3NVYKWjdvelZNOVdKV0c4N2VaZmZtQW1nTlZTdGg3MWVXaFhITHhRLzFkOFVGNU9RSFBxbzlBYXhGczEzM1lHQ3VWYwpEbEJ1bVZLSzh5dVVIcW5SSXppNXdPTFdQaUFIbFJFYnNjNXhZak1YbmRiSXVQVHFmZVNLQ3BUaittblVNZ1RDCnRoaVhlajJHUkFWempwL3dwOG9Cd2dtSlo3MFNPclRWUjBrODR5b1VzbDJSVHQ1TGVlYk5DYmdZc295MGlRYlUKdFYzTjJHbTVnRWNjdUJ3YXU3UDA0cC9rZExWNjNuU0xrWTlZZXVuSXpBZnUKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZGakNDQXY2Z0F3SUJBZ0lSQUpFckNFclBEQmluVS9iV0xpV25YMW93RFFZSktvWklodmNOQVFFTEJRQXcKVHpFTE1Ba0dBMVVFQmhNQ1ZWTXhLVEFuQmdOVkJBb1RJRWx1ZEdWeWJtVjBJRk5sWTNWeWFYUjVJRkpsYzJWaApjbU5vSUVkeWIzVndNUlV3RXdZRFZRUURFd3hKVTFKSElGSnZiM1FnV0RFd0hoY05NakF3T1RBME1EQXdNREF3CldoY05NalV3T1RFMU1UWXdNREF3V2pBeU1Rc3dDUVlEVlFRR0V3SlZVekVXTUJRR0ExVUVDaE1OVEdWMEozTWcKUlc1amNubHdkREVMTUFrR0ExVUVBeE1DVWpNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFDN0FoVW96UGFnbE5NUEV1eU5WWkxEK0lMeG1hWjZRb2luWFNhcXRTdTV4VXl4cjQ1citYWElvOWNQClI1UVVWVFZYako2b29qa1o5WUk4UXFsT2J2VTd3eTdiamNDd1hQTlpPT2Z0ejJud1dnc2J2c0NVSkNXSCtqZHgKc3hQbkhLemhtKy9iNUR0RlVrV1dxY0ZUempUSVV1NjFydTJQM21CdzRxVlVxN1p0RHBlbFFEUnJLOU84WnV0bQpOSHo2YTR1UFZ5bVorREFYWGJweWIvdUJ4YTNTaGxnOUY4Zm5DYnZ4Sy9lRzNNSGFjVjNVUnVQTXJTWEJpTHhnClozVm1zL0VZOTZKYzVsUC9Pb2kyUjZYL0V4anFtQWwzUDUxVCtjOEI1ZldtY0JjVXIyT2svNW16azUzY1U2Y0cKL2tpRkhhRnByaVYxdXhQTVVnUDE3VkdoaTlzVkFnTUJBQUdqZ2dFSU1JSUJCREFPQmdOVkhROEJBZjhFQkFNQwpBWVl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1CSUdBMVVkRXdFQi93UUlNQVlCCkFmOENBUUF3SFFZRFZSME9CQllFRkJRdXN4ZTNXRmJMcmxBSlFPWWZyNTJMRk1MR01COEdBMVVkSXdRWU1CYUEKRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dU1ESUdDQ3NHQVFVRkJ3RUJCQ1l3SkRBaUJnZ3JCZ0VGQlFjdwpBb1lXYUhSMGNEb3ZMM2d4TG1rdWJHVnVZM0l1YjNKbkx6QW5CZ05WSFI4RUlEQWVNQnlnR3FBWWhoWm9kSFJ3Ck9pOHZlREV1WXk1c1pXNWpjaTV2Y21jdk1DSUdBMVVkSUFRYk1Ca3dDQVlHWjRFTUFRSUJNQTBHQ3lzR0FRUUIKZ3Q4VEFRRUJNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNGeWs1SFBxUDNoVVNGdk5WbmVMS1lZNjExVFI2VwpQVE5sY2xRdGdhRHF3KzM0SUw5ZnpMZHdBTGR1Ty9aZWxON2tJSittNzR1eUErZWl0Ulk4a2M2MDdUa0M1M3dsCmlrZm1aVzQvUnZUWjhNNlVLKzVVemhLOGpDZEx1TUdZTDZLdnpYR1JTZ2kzeUxnamV3UXRDUGtJVno2RDJRUXoKQ2tjaGVBbUNKOE1xeUp1NXpsenlaTWpBdm5uQVQ0NXRSQXhla3JzdTk0c1E0ZWdkUkNuYldTRHRZN2toK0JJbQpsSk5Yb0IxbEJNRUtJcTRRRFVPWG9SZ2ZmdURnaGplMVdyRzlNTCtIYmlzcS95Rk9Hd1hEOVJpWDhGNnN3Nlc0CmF2QXV2RHN6dWU1TDNzejg1SytFQzRZL3dGVkROdlpvNFRZWGFvNlowZitsUUtjMHQ4RFFZemsxT1hWdThycDIKeUpNQzZhbExiQmZPREFMWnZZSDduN2RvMUFabHM0STlkMVA0am5rRHJRb3hCM1VxUTloVmwzTEVLUTczeEYxTwp5SzVHaEREWDhvVmZHS0Y1dStkZWNJc0g0WWFUdzdtUDNHRnhKU3F2MyswbFVGSm9pNUxjNWRhMTQ5cDkwSWRzCmhDRXhyb0wxKzdtcnlJa1hQZUZNNVRnTzlyMHJ2WmFCRk92VjJ6MGdwMzVaMCtMNFdQbGJ1RWpOL2x4UEZpbisKSGxVanI4Z1JzSTNxZkpPUUZ5LzlyS0lKUjBZLzhPbXd0LzhvVFdneTFtZGVIbW1qazdqMW5Zc3ZDOUpTUTZadgpNbGRsVFRLQjN6aFRoVjErWFdZcDZyamQ1SlcxemJWV0VrTE54RTdHSlRoRVVHM3N6Z0JWR1A3cFNXVFVUc3FYCm5MUmJ3SE9vcTdoSHdnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZZRENDQkVpZ0F3SUJBZ0lRUUFGM0lUZlU2VUs0N25hcVBHUUt0ekFOQmdrcWhraUc5dzBCQVFzRkFEQS8KTVNRd0lnWURWUVFLRXh0RWFXZHBkR0ZzSUZOcFoyNWhkSFZ5WlNCVWNuVnpkQ0JEYnk0eEZ6QVZCZ05WQkFNVApEa1JUVkNCU2IyOTBJRU5CSUZnek1CNFhEVEl4TURFeU1ERTVNVFF3TTFvWERUSTBNRGt6TURFNE1UUXdNMW93ClR6RUxNQWtHQTFVRUJoTUNWVk14S1RBbkJnTlZCQW9USUVsdWRHVnlibVYwSUZObFkzVnlhWFI1SUZKbGMyVmgKY21Ob0lFZHliM1Z3TVJVd0V3WURWUVFERXd4SlUxSkhJRkp2YjNRZ1dERXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQ3Q2Q1J6OUJRMzg1dWVLMWNvSEllKzNMZmZPSkNNYmp6bVY2QjQ5M1hDCm92NzFhbTcyQUU4bzI5NW9obXhFazdheFkvMFVFbXUvSDlMcU1ac2hmdEV6UExwSTlkMTUzN080L3hMeElacEwKd1lxR2NXbEtabVpzajM0OGNMK3RLU0lHOCtUQTVvQ3U0a3VQdDVsK2xBT2YwMGVYZkpsSUkxUG9PSzVQQ20rRApMdEZKVjR5QWRMYmFMOUE0alhzRGNDRWJkZkl3UFBxUHJ0M2FZNnZyRmsvQ2poRkxmczhMNlArMWR5NzBzbnRLCjRFd1NKUXh3alFNcG9PRlRKT3dUMmU0WnZ4Q3pTb3cvaWFOaFVkNnNod2VVOUdOeDdDN2liMXVZZ2VHSlhEUjUKYkhidk81QmllZWJicEpvdkpzWFFFT0VPM3RrUWpoYjd0L2VvOThmbEFnZVlqellJbGVmaU41WU5ObldlK3c1eQpzUjJidkFQNVNRWFlnZDBGdENyV1FlbXNBWGFWQ2cvWTM5VzlFaDgxTHlnWGJOS1l3YWdKWkhkdVJ6ZTZ6cXhaClhtaWRmM0xXaWNVR1FTaytXVDdkSnZVa3lSR25XcU5NUUI5R29abTFwenBSYm9ZN25uMXlweElGZUZudFBsRjQKRlFzRGo0M1FMd1d5UG50S0hFdHpCUkw4eHVyZ1VCTjhRNU4wczhwMDU0NGZBUWpRTU5SYmNUYTBCN3JCTURCYwpTTGVDTzVpbWZXQ0tvcU1wZ3N5NnZZTUVHNktEQTBHaDFnWHhHOEsyOEtoOGhqdEdxRWdxaU54Mm1uYS9IMnFsClBSbVA2emp6Wk43SUt3MEtLUC8zMitJVlF0UWkwQ2RkNFhuK0dPZHdpSzFPNXRtTE9zYmRKMUZ1Lzd4azlUTkQKVHdJREFRQUJvNElCUmpDQ0FVSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU9CZ05WSFE4QkFmOEVCQU1DQVFZdwpTd1lJS3dZQkJRVUhBUUVFUHpBOU1Ec0dDQ3NHQVFVRkJ6QUNoaTlvZEhSd09pOHZZWEJ3Y3k1cFpHVnVkSEoxCmMzUXVZMjl0TDNKdmIzUnpMMlJ6ZEhKdmIzUmpZWGd6TG5BM1l6QWZCZ05WSFNNRUdEQVdnQlRFcDdHa2V5eHgKK3R2aFM1QjEvOFFWWUlXSkVEQlVCZ05WSFNBRVRUQkxNQWdHQm1lQkRBRUNBVEEvQmdzckJnRUVBWUxmRXdFQgpBVEF3TUM0R0NDc0dBUVVGQndJQkZpSm9kSFJ3T2k4dlkzQnpMbkp2YjNRdGVERXViR1YwYzJWdVkzSjVjSFF1CmIzSm5NRHdHQTFVZEh3UTFNRE13TWFBdm9DMkdLMmgwZEhBNkx5OWpjbXd1YVdSbGJuUnlkWE4wTG1OdmJTOUUKVTFSU1QwOVVRMEZZTTBOU1RDNWpjbXd3SFFZRFZSME9CQllFRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dQpNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFLY3dCc2xtNy9EbExRcnQyTTUxb0dyUytvNDQrL3lRb0RGVkRDCjVXeEN1MitiOUxSUHdrU0lDSFhNNndlYkZHSnVlTjdzSjdvNVhQV2lvVzVXbEhBUVU3Rzc1Sy9Rb3NNckFkU1cKOU1VZ05UUDUyR0UyNEhHTnRMaTFxb0pGbGNEeXFTTW81OWFoeTJjSTJxQkRMS29ia3gvSjN2V3JhVjBUOVZ1RwpXQ0xLVFZYa2NHZHR3bGZGUmpsQno0cFlnMWh0bWY1WDZEWU84QTRqcXYySWw5RGpYQTZVU2JXMUZ6WFNMcjlPCmhlOFk0SVdTNndZN2JDa2pDV0RjUlFKTUVoZzc2ZnNPM3R4RStGaVlydXE5UlVXaGlGMW15djRRNlcrQ3lCRkMKRGZ2cDdPT0dBTjZkRU9NNCtxUjlzZGpvU1lLRUJwc3I2R3RQQVF3NGR5NzUzZWM1Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBdmhOYzN3TjJyY3pNSUFUa3locDhnMWVHei9UdkZJOXl6V1o5Y3lFcDFTOGlOQU5oCk00S0k5RkNNalptYlBXdWlXVmplZ0prUjQzNVFYdkUva0pjOXVlU1ZYYXZlZk5KUEJtUjRnU1NINVVrcE1nbm8KaXJITnN6RjNOMERGelNjYjB3QjJKVDdtWWdaZmRIWnVyVEF5SkU5N3kvUHpTVHhycEZkc2lyK21LcWlDK2R1MQovL05wSHBIOWVKWSs4UHYza3cyb0lnOWVralBGZkdpR2xtTExraDRYRjJOYWt5S1B0dDIrL2ZLbU41M29QazNXClgwakxlOHFMZVJxS0pXNFNnNCtBYm5PWWhwS3NTaUxDOEZ2aVZmTnFWQ0luS3d2ekhqdm0yUHJhVEpraHNTTU0KcTVMVVVWckc2S3IrNWNBdDVhYTcvWC9MN2Q2ZUwvd25jcDRhV3hVSDcwMkcyVXhzZ1VFMUZPRDRwUDBVTHdDSAo5ZVNIWUhZYUpOS051cDN4eUl1cSt2dUlkSTRkOHFqczJwWFJFdmR5aDY3MWNYRWQvNTRmUGs2MHVUWEtscUYvCkFRc2RmWk1zLys0WEMvQmNvNG9vd3FMRWhJMXhpLytYdUFFZjJYdGI2KzJuNXFjeU9Damw0QTh2YVNFdUhNanUKazNJV0x1ZldQRC9aVDR0N2FhVERxR29QRXFtUkh3cFVBUlVMMTl1SzF5K3JqSVFodlQycjMxa1RaNkh4K3NsZgpScVBEK3hWcnR5RHFkRmVBVS9YYUZYOWs2UzRRSGQ1emNFdFVESHlEUmRNcFlGK0hTWUhPM3JiK0RiZHZDRFZvCno4UFZMWHQ2UjA0T2FJcmdwUmtsTUhxM3VYRy8wbDZ1UmxvL3llaVM1YmJ1QTlGa0dwdnhCa3dSMkpNQ0F3RUEKQVFLQ0FnQXVTRnkyMlFzTzZ1MVJacCtuTHFmZSszTVNOQnY3TDZyT3BRUXJBb3BESk1UNVVWRmJ6NDgxbmw5NwpJMG9QdktPOWljdzBHQkdwQ1ZyY28zWE02V2JZV3ZhYjVudTRmU1ZNOHkzOGxENmE4Q09kMFpmVUhkTnVyTDdRCnIyNzZzMmt0Q2RHNjVBUUpIbkFqMWFyQmRSamdpcElrYVhSMkFzWmJNQVo0Q282Vm1JNjc5R251dHdDRHR4eTMKUGk1NVU0RkhSMjRIVFNMRUN1TXRsZTRmdEZMSmM1WS8xYXQ2WkZJR1B4eUFqWk0zdTdXUFpqaXEzdmpkWGNaMAphS2YyMFVTazBFNS9scG92T292RlNZMmFKV1dKZEVvUnpuY25IalBHeXVNOU5tZnRldVFmVTkrRDc2N1BXSUZTCnFrQ0RCVGFuMHQrM3JHU2x1UzFmbGRDdE1oNU1YK0Q2bGJYb1pRNHJIWkRLUGg4dFU4Myt4ajVVTXBKZ2x3Ky8KOWthVmJ0SGI4RDVpZXhJY1FUNno0SVJqQXZYbTQwOTVRUWVFTUN5R3JsV2J0aERoYWdlWE51bmQxbHdkYjlkcgpPVFhhSDA5aFJ2amUzOEg5WW5DcUpJVWRZMlAzRjViczNrc0lMZy9sVCtXN1JvV0FndlZaWU9VcUVKZjc2Z2l0CkpNcEQzNlZMMjVSS0dreHVmOG1kTmJOcG1RYXhrYXJaM29vWDJ0aEZ0MUh3ZWpLcm1uRFhMOVVUUGVTdlNuK28KczZmR2R0dzJQQzNLand5N0x3TjlwRHV1OVd5WUc2aVI4ZGdoaFE5VWRvajNhMGR5THhLak9EaUhvOG8yQlRrOQpoK1RYb2UvQWdiUFRUVmlKT205Qm13c2wveHQ3SE1jUkNKbFdQNjBCYThvaUQ2TXRJUUtDQVFFQTVhMzNILzJ5CjlwUTg4bUhqRHJ2YkZvNmw0U1c4TDVudXpJWnpMYUNZRE1kOFd0d3g3aTVEZnpZMGplZ21iRUIwVGJlT2psK3oKdzdGVXpwRVBaWGMrZUpaVEQvb3ByaHg3L1lkbHJWRDNBRUllRm9wKzBKWm5rNmZGSVEwcmluRUJtaHpEVmU5RQpBSC95bXhJczZOUFc4cytpZjZGNWhIVnFpNVpoUG14bjdEMGlONnBkVklaSmJwdFNGZ3NjUnQzM0NIcGx5Mm9BCjR0SnAzR0ZFcitKRlFENjhUKytFTEpGcXBDK3UzZHNJK0ZJZ0t0akN3dDBSVTVxNU0vYVQ4bmVYK2drQ0RpeHEKeFl5MVFES0VZUUk5aVBEYkpIVERYVHFTZldESDcwN2VPbm5nbFFaZzhKd2V3L0RxY05QWURzV0RFd3JES2d4aQp0Mk5LNTZoUTVxRjllUUtDQVFFQTA5dU0yRmdmbFFxckhDcGUybFQ5TC9rb2FydFpLcnRIR0h5VHJWc1BiQjZLCjZlVjlSeWlacWNLcTFkOWx1aGIxZHFWLzcrYWJFRU8yeStTbVJRWUwxMmFkdjhSYklTcnBWRiswdnBjLzRVbm0KZC9xenVIKzNsU3ZaVksvdG8zdWhEaG1sRDFVeTRsOHZBSXNiUWxLYVd1K3ZlbUdlcWg4OElXWENtUmpWWGhmeQpRcmFUUTZGNlpWZHk3OWpkN3EwRXVJNVJGN1FrMld4U0lxTHZiTnJ0WEZYQnNDTE43NnpKUHBjaDJCVnpCNXllClh0bE5aYUE1TTNNS1lxbDRnK3pqeGhGenNsaVI3Y1RvN2NCeXg3VlZNY2pNbTNjRXVqLzRkb1lHdjFEVFF0YjEKaEhmTDFMMEN2cHpTWlZLaVBDNk43YmhzdkFIVUNQcDVJTlVENlBiZmF3S0NBUUJvNXcwaE9uRzc5N2JpaWR6NApCTXNyUVZuNFBKRDRPTmw5NXNiQ2gwQUxUaTI1SGl0Yit4dHZCZVg1RHBoR0J5Wlh2TWZLdFdGWXR5emg4QlZWCkphS04xekwyOEM2TFRJMUJIYzlOMnRZRjh5ems1THJKTUhqOFVydFJ2ajh0eXpHTkh5Z0VudlN6T2Iwb0lLUU0KYjMwVWg4dFRlZ0FUaE1GMkllZ21aOE1MZmx5YmloOTRsS0VEZU1PRU4remhYVTRRUEQ4MEtpVmZjL1ZQNThsRQpnQmRiSVl4SEFrR2ZUWWVrbC9iSmM5cGorTGFpZTBCeFdpRW95MWxkcDNpcFhRQTMvbGRHKy9pRVpDRUF3bEgrCk1OVEVNQ1lYUDVGZmlub1A4OTA5cXdzTE1GRm9IM0sxVXNrbWUybkl3S2xGRGVjeEVsQlRhemJIUmYyWFV5UW8KUW9nWkFvSUJBUUNxSlplMllQL3NXVWNYTmNnOEhTbkNqNTZ3S1lyeFVMdEdwVGFOY2Fhdk5OQm9EUkZTUnY4eQpZYytHT1FhZ0w3UXY5N2NLV3ZDS1hYZS94UURzU25EVUsrdmhpYmVPcWNIL0syWWo4NkV3TklQT05DQ0d1cndjCko3MUIwSkZRVFFnS0pQcDFsLzFuNVA0QXQ3Zkt5a0NCYkNKSWJZSmFLdi9GNnM0ZzJ0cngyTldPVXNkdTk0OHYKT001c1pvWEhIRm5BUnp4Rmh6NVpDQy9tOVdqSXlnTDd0enY1VTlxRTlRWWpLSW5iMjA0by9OWU1Zd1ZQNnlCRgplODBKZEFZQUhnN0lrbGVURXFNUWpLWnQyN1BUUklVSm1MVUszc21ETThFK24yRm40V2ZxTkcyMlYrZnlFV0xVCjUybnFTalZWbENZVWw1dHNXeU9KbW5BUnVFS05wVWZGQW9JQkFBdHAxeU1HaE03UjZkdzR5dGNxclJVOC9acWgKRUZwS0toYUs0TkJRWVZjNWUyaEM3TmpCMjZrekpEZjhJUVVHZ2pQdmVmR3gvdk04Q3ZTdzBnTEJMd2ZyRGZRMQpLdDFDK1lKMEZaMjM3VHg4bHpRVnpTMllyb2VqT0puTms0T0FwWWV6YTZoeFZFbEFUNXZ0T1UyS0pVd2t0M21XCjZCK1pOZzlEYWxMaTJzL0laeVRrRzlhWFRIRkhuQzlWZUMzZ05DNkgwbjY1c3N2OUE1QVhxOHpUaUVKbEhCQmQKZWt1ZFBMU09jQWVuR2V1WmdVMG9XM3JmS1BiRUF5Z3BjZzVWb25TaEdvUXMxZXBiOUlXM3VFQkpSc3ZkTDFpOAplR2R2cWJnMkhMYy9aMFFZait5ZjdkVXRTVElhT3JFYVBVM1FaaGNMTm5VSFc5elNKQmxGZnhNTzdRUT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", + "Store": "default" + } + ] + } +} \ No newline at end of file diff --git a/content/upload/2023/10/1697458155519.txt b/content/upload/2023/10/1697458155519.txt new file mode 100644 index 0000000..8152eba --- /dev/null +++ b/content/upload/2023/10/1697458155519.txt @@ -0,0 +1,100 @@ +2023/10/11 14:07:40 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 33.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:40 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 7.9ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:40 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 9.6ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:41 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 47.1ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:41 ...ons/runner/runner.go:148:UpdateTask() [W] Failed to find the sent outputs of task 10: no such table: action_task_output +2023/10/11 14:07:41 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 38.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:41 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 10.4ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:41 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 10.8ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed GET /v2/ for 10.0.0.2:0, 401 Unauthorized in 0.1ms @ container/container.go:118(container.ReqContainerAccess) +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed GET /v2/token?account=juetan&client_id=docker&offline_token=true&service=container_registry for 10.0.0.2:0, 200 OK in 54.9ms @ container/container.go:142(container.Authenticate) +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed GET /v2/ for 10.0.0.2:0, 200 OK in 0.7ms @ container/container.go:134(container.DetermineSupport) +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 49.6ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:42 ...ons/runner/runner.go:148:UpdateTask() [W] Failed to find the sent outputs of task 10: no such table: action_task_output +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 45.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 8.6ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:42 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 10.8ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:43 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 60.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:43 ...ons/runner/runner.go:148:UpdateTask() [W] Failed to find the sent outputs of task 10: no such table: action_task_output +2023/10/11 14:07:43 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 47.1ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:43 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 55.8ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:43 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 23.3ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:44 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 10.6ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:44 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 85.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:44 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 67.5ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:44 ...ons/runner/runner.go:148:UpdateTask() [W] Failed to find the sent outputs of task 10: no such table: action_task_output +2023/10/11 14:07:44 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 37.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 162.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...ons/runner/runner.go:148:UpdateTask() [W] Failed to find the sent outputs of task 10: no such table: action_task_output +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 83.5ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 9.1ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 98.6ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 10.2ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateLog for 10.0.0.2:0, 200 OK in 21.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 25.4ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:07:46 ...ons/runner/runner.go:148:UpdateTask() [W] Failed to find the sent outputs of task 10: no such table: action_task_output +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/UpdateTask for 10.0.0.2:0, 200 OK in 48.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 27.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 44.7ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:07:48 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.7ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:50 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 24.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:52 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 30.5ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:54 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.7ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:56 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:07:58 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.1ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:00 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:01 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/artifacts for 10.0.0.2:0, 200 OK in 8.0ms @ actions/view.go:435(actions.ArtifactsView) +2023/10/11 14:08:01 ...eb/routing/logger.go:102:func1() [I] router: completed POST /juetan/adweb/actions/runs/5/jobs/0 for 10.0.0.2:0, 200 OK in 9.5ms @ actions/view.go:121(actions.ViewPost) +2023/10/11 14:08:02 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 23.5ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:04 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.1ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:06 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 33.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:08 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 27.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:10 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.7ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:12 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 28.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:14 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 25.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:16 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 23.7ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:18 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.7ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:20 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:22 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:24 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.1ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:26 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 36.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:28 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:30 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 24.6ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:32 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 23.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:34 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 23.7ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:36 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:38 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:40 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:42 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:44 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 24.5ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:48 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.6ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:50 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:52 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:54 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:56 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 29.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:08:58 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 24.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:00 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:02 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:04 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.1ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:06 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:08 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:10 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 29.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:12 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.6ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:14 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 19.8ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:16 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:18 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 23.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:20 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:22 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:24 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.2ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:26 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:28 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 22.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:30 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 42.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:32 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.0ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:34 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:36 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 29.5ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:38 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.9ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:40 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.5ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:42 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 20.4ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:44 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 23.3ms @ :1(http.Handler.ServeHTTP-fm) +2023/10/11 14:09:46 ...eb/routing/logger.go:102:func1() [I] router: completed POST /api/actions/runner.v1.RunnerService/FetchTask for 10.0.0.2:0, 200 OK in 21.2ms @ :1(http.Handler.ServeHTTP-fm) diff --git a/content/upload/2023/10/1697549196766.png b/content/upload/2023/10/1697549196766.png new file mode 100644 index 0000000000000000000000000000000000000000..02978855899c18c5472a49f59bd3571a7a061421 GIT binary patch literal 13727 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 literal 0 HcmV?d00001 diff --git a/src/content/category/category.controller.ts b/src/content/category/category.controller.ts index 398af38..b53e52a 100644 --- a/src/content/category/category.controller.ts +++ b/src/content/category/category.controller.ts @@ -1,12 +1,12 @@ import { BaseController } from '@/common/base'; import { Respond, RespondType } from '@/common/response'; -import { Body, Controller, Delete, Get, Param, Patch, Post, Query, ParseIntPipe } from '@nestjs/common'; -import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; +import { Body, Controller, Delete, Get, Patch, Post, Query } from '@nestjs/common'; +import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { CategoryService } from './category.service'; import { CreateCategoryDto } from './dto/create-category.dto'; import { FindCategoryDto } from './dto/find-category.dto'; import { UpdateCategoryDto } from './dto/update-category.dto'; import { Category } from './entities/category.entity'; -import { CategoryService } from './category.service'; @ApiTags('category') @Controller('categories') @@ -15,45 +15,35 @@ export class CategoryController extends BaseController { super(); } - /** - * 新增分类 - */ @Post() + @ApiOperation({ description: '添加分类', operationId: 'addCategory' }) addCategory(@Body() createCategoryDto: CreateCategoryDto) { return this.categoryService.create(createCategoryDto); } - /** - * 根据分页/过滤参数查询分类 - */ @Get() @Respond(RespondType.PAGINATION) @ApiOkResponse({ isArray: true, type: Category }) + @ApiOperation({ description: '分页获取分类', operationId: 'getCategories' }) getCategorys(@Query() query: FindCategoryDto) { return this.categoryService.findMany(query); } - /** - * 根据ID查询分类 - */ @Get(':id') - getCategory(@Param('id', ParseIntPipe) id: number): Promise { + @ApiOperation({ description: '添加分类', operationId: 'getCategory' }) + getCategory(id: number): Promise { return this.categoryService.findOne(id); } - /** - * 根据ID更新分类 - */ @Patch(':id') - updateCategory(@Param('id', ParseIntPipe) id: number, @Body() updateCategoryDto: UpdateCategoryDto) { + @ApiOperation({ description: '更新分类', operationId: 'setCategory' }) + updateCategory(id: number, @Body() updateCategoryDto: UpdateCategoryDto) { return this.categoryService.update(+id, updateCategoryDto); } - /** - * 根据ID删除分类 - */ @Delete(':id') - delCategory(@Param('id', ParseIntPipe) id: number) { + @ApiOperation({ description: '删除分类', operationId: 'delCategory' }) + delCategory(id: number) { return this.categoryService.remove(+id); } } diff --git a/src/content/category/dto/update-category.dto.ts b/src/content/category/dto/update-category.dto.ts index d713b9b..8672a9d 100644 --- a/src/content/category/dto/update-category.dto.ts +++ b/src/content/category/dto/update-category.dto.ts @@ -1,4 +1,8 @@ import { PartialType } from '@nestjs/swagger'; +import { IsNumber } from 'class-validator'; import { CreateCategoryDto } from './create-category.dto'; -export class UpdateCategoryDto extends PartialType(CreateCategoryDto) {} +export class UpdateCategoryDto extends PartialType(CreateCategoryDto) { + @IsNumber() + id: number; +} diff --git a/src/database/suscribers/entify.subscriber.ts b/src/database/suscribers/entify.subscriber.ts index eda82ff..3c0f8f3 100644 --- a/src/database/suscribers/entify.subscriber.ts +++ b/src/database/suscribers/entify.subscriber.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { Request } from 'express'; -import { EntitySubscriberInterface, InsertEvent, DataSource, UpdateEvent, SoftRemoveEvent } from 'typeorm'; +import { DataSource, EntitySubscriberInterface, InsertEvent, SoftRemoveEvent, UpdateEvent } from 'typeorm'; /** * 实体订阅器 @@ -19,15 +19,21 @@ export class EntitySubscripber implements EntitySubscriberInterface { } beforeInsert(event: InsertEvent): void | Promise { - event.entity.createdBy = this.getUser(); + if (event.entity) { + event.entity.createdBy = this.getUser(); + } } beforeUpdate(event: UpdateEvent): void | Promise { - event.entity.updatedBy = this.getUser(); + if (event.entity) { + event.entity.updatedBy = this.getUser(); + } } beforeSoftRemove(event: SoftRemoveEvent): void | Promise { - event.entity && (event.entity.deletedBy = this.getUser()); + if (event.entity) { + event.entity.deletedBy = this.getUser(); + } } getUser() { @@ -35,6 +41,6 @@ export class EntitySubscripber implements EntitySubscriberInterface { if (!user) { return; } - return `${user.nickname}(${user.id})`; + return user.nickname; } } diff --git a/src/modules/permission/dto/update-permission.dto.ts b/src/modules/permission/dto/update-permission.dto.ts index fbb7640..e483e4e 100644 --- a/src/modules/permission/dto/update-permission.dto.ts +++ b/src/modules/permission/dto/update-permission.dto.ts @@ -1,4 +1,8 @@ import { PartialType } from '@nestjs/swagger'; +import { IsNumber } from 'class-validator'; import { CreatePermissionDto } from './create-permission.dto'; -export class UpdatePermissionDto extends PartialType(CreatePermissionDto) {} +export class UpdatePermissionDto extends PartialType(CreatePermissionDto) { + @IsNumber() + id: number; +} diff --git a/src/modules/permission/entities/permission.entity.ts b/src/modules/permission/entities/permission.entity.ts index 788ee22..158247d 100644 --- a/src/modules/permission/entities/permission.entity.ts +++ b/src/modules/permission/entities/permission.entity.ts @@ -7,7 +7,7 @@ enum PermissionType { Api = 'api', } -@Entity() +@Entity({ orderBy: { id: 'DESC' } }) export class Permission extends BaseEntity { /** * 权限名称 diff --git a/src/modules/permission/permission.controller.ts b/src/modules/permission/permission.controller.ts index 745fb67..cd7c989 100644 --- a/src/modules/permission/permission.controller.ts +++ b/src/modules/permission/permission.controller.ts @@ -4,7 +4,6 @@ import { ApiOperation, ApiTags } from '@nestjs/swagger'; import { CreatePermissionDto } from './dto/create-permission.dto'; import { UpdatePermissionDto } from './dto/update-permission.dto'; import { PermissionService } from './permission.service'; -import { PermissionWith } from './permission.decorator'; @ApiTags('permission') @Controller('permissions') @@ -12,7 +11,6 @@ export class PermissionController { constructor(private readonly permissionService: PermissionService) {} @Post() - @PermissionWith('permission:add') @ApiOperation({ description: '创建权限', operationId: 'addPermission' }) create(@Body() createPermissionDto: CreatePermissionDto) { return this.permissionService.create(createPermissionDto); diff --git a/src/storage/upload/dto/find-upload.dto.ts b/src/storage/upload/dto/find-upload.dto.ts new file mode 100644 index 0000000..e69de29