dsql-admin/dsql-app/.local_dist/server/pages/api/admin/databases/upload-database-file.js
Benjamin Toby e95f4d1087 Updates
2025-02-16 17:12:40 +01:00

1 line
5.1 KiB
JavaScript

"use strict";(()=>{var e={};e.id=9368,e.ids=[9368],e.modules={76102:e=>{e.exports=require("@moduletrace/datasquirel/dist/client")},39383:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/actions/users/user-auth")},65967:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/utils/ejson")},93726:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/utils/numberfy")},30889:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/utils/slugify")},27825:e=>{e.exports=require("lodash")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},72583:e=>{e.exports=require("sanitize-html")},9973:e=>{e.exports=require("serverless-mysql")},79428:e=>{e.exports=require("buffer")},79646:e=>{e.exports=require("child_process")},55511:e=>{e.exports=require("crypto")},29021:e=>{e.exports=require("fs")},21820:e=>{e.exports=require("os")},33873:e=>{e.exports=require("path")},79456:(e,r,s)=>{s.r(r),s.d(r,{config:()=>N,default:()=>L,routeModule:()=>R});var a={};s.r(a),s.d(a,{config:()=>v,default:()=>$});var t=s(89947),i=s(2706),n=s(96762),o=s(69842),l=s(29021),u=s.n(l),d=s(67619),c=s(6346),p=s(55153),S=s(33873),f=s.n(S),m=s(79646),_=s(21820),y=s.n(_),A=s(64292);async function E({dbFullName:e,targetFilePath:r,mariadbHost:s,mariadbPass:a,mariadbUser:t}){let i=y().platform().match(/win/i)?"'C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql.exe'":"mysql",n=t||process.env.DSQL_DB_USERNAME,o=s||process.env.DSQL_DB_HOST,l=a||process.env.DSQL_DB_PASSWORD;await (0,A.A)(global.DSQL_DB_CONN,`CREATE DATABASE IF NOT EXISTS ${e}`);let u=`${i} -u ${n} -h ${o} -p${l} ${e} < ${r}`;return(0,m.execSync)(u,{encoding:"utf-8"})}var D=s(21724),g=s(27825),h=s.n(g),x=s(10776),b=s(66866);async function q({user:e,file:r}){let{userPrivateExportsDir:s,userSchemaMainJSONFilePath:a,userPrivateTempSQLExportsDir:t,userPrivateTempJSONSchemaFilePath:i,userPrivateDbExportZipFileName:n,userPrivateSQLExportsDir:o,userPrivateDbImportZipFilePath:l,userPrivateDbImportZipFileName:S}=(0,c.A)({userId:e.id}),_=r.fileBase64;if(!_)throw Error("Base64 String not found in File");try{if(!s||!a||!t||!i||!n||!o||!l||!S)throw Error("Couldn't pull dir names for user db export");if(!u().existsSync(a))throw Error("User JSON schema file doesn't exist");u().mkdirSync(t,{recursive:!0});let r=p.On.parse(u().readFileSync(a,"utf-8")),d=Buffer.from(_,"base64");u().writeFileSync(l,d),(0,m.execSync)(`unzip -o ${l} -d ${o}/`);let c=u().readdirSync(t).filter(e=>!!e.match(/\.sql$/)),y=u().readFileSync(i,"utf-8"),A=p.On.parse(y),g=p.On.parse(function({str:e,userId:r}){let s=process.env.DSQL_USER_DB_PREFIX,a=RegExp(`${s}\\d+_`,"g"),t=`${s}${r}_`;return e.replace(a,t)}({str:y,userId:e.id}));for(let e=0;e<g.length;e++){let r=g[e],s=A.find(e=>e.dbSlug==r.dbSlug);if(!s)continue;let a=c.find(e=>e.includes(s.dbFullName));if(!a)continue;let i=f().join(t,a);if(!u().existsSync(i))throw Error("Sql File Doesn't exist");await E({dbFullName:r.dbFullName,targetFilePath:i});try{await (0,b.A)(`GRANT ALL PRIVILEGES ON ${r.dbFullName}.* TO '${process.env.DSQL_DB_FULL_ACCESS_USERNAME}'@'${process.env.DSQL_DB_TARGET_IP_ADDRESS||"%"}' WITH GRANT OPTION`),await (0,b.A)(`GRANT SELECT ON ${r.dbFullName}.* TO '${process.env.DSQL_DB_READ_ONLY_USERNAME}'@'${process.env.DSQL_DB_TARGET_IP_ADDRESS||"%"}'`),await (0,b.A)("FLUSH PRIVILEGES")}catch(e){}}let q=[...r,...g],v=h().uniqBy(q,"dbFullName");(0,D.A)({schemaData:v,userId:e.id}),await (0,x.A)({dbSchemaData:v,userId:e.id});try{(0,m.execSync)(`rm -rf ${t}`),(0,m.execSync)(`rm -rf ${l}`)}catch(e){}}catch(r){console.log(`Error Exporting Database: ${r.message}`),(0,d.A)({component:"/functions/backend/users/export-database",message:r.message,user:e})}}let v={api:{bodyParser:{sizeLimit:"200mb"}}};async function $(e,r){let s=await (0,o.A)(e,r);if(!s)return r.json({success:!1,msg:"Unauthorized"});let a=e.body;try{if("POST"===e.method)return await q({user:s,file:a.file}),r.json({success:!0});return r.json({success:!1})}catch(e){console.log(e.message),r.json({success:!1})}}let L=(0,n.M)(a,"default"),N=(0,n.M)(a,"config"),R=new t.PagesAPIRouteModule({definition:{kind:i.A.PAGES_API,page:"/api/admin/databases/upload-database-file",pathname:"/api/admin/databases/upload-database-file",bundlePath:"",filename:""},userland:a})},55153:(e,r,s)=>{s.d(r,{On:()=>t.a,_n:()=>n}),s(76102);var a=s(65967),t=s.n(a);s(30889);var i=s(93726);let n=s.n(i)()},69842:(e,r,s)=>{s.d(r,{A:()=>n});var a=s(39383),t=s.n(a),i=s(55153);async function n(e,r,s,a){let n=t()({req:e,level:s?"deep":void 0});return a&&n.payload?.id&&(0,i._n)(process.env.DSQL_SU_USER_ID)!==n.payload.id?null:n.payload}},21724:(e,r,s)=>{s.d(r,{A:()=>l});var a=s(67619),t=s(29021),i=s.n(t),n=s(33873),o=s.n(n);function l({userId:e,schemaData:r}){try{let s=o().resolve(process.cwd(),`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${e}/main.json`);return i().writeFileSync(s,JSON.stringify(r),"utf8"),!0}catch(e){return(0,a.A)({component:"/functions/backend/setUserSchemaData",message:e.message}),!1}}}};var r=require("../../../../webpack-api-runtime.js");r.C(e);var s=e=>r(r.s=e),a=r.X(0,[6060,776],()=>s(79456));module.exports=a})();