Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.31.0 #1224

Merged
merged 37 commits into from
Feb 20, 2024
Merged

v4.31.0 #1224

merged 37 commits into from
Feb 20, 2024

Conversation

Cabecinha84
Copy link
Member

  • Backup/Restore Container Data -> It is now possible to backup your application container data and restore it. The new feature is now available under local apps management;
  • Improvements on Syncthing;
  • FluxOs UI colors/icons updates;
  • Other small improvements.

XK4MiLX and others added 23 commits February 14, 2024 11:08
* UI correction and build

* added custom-butto and build UI

* Build UI

* button correction

* button correction

* UI build

* UI build

* Build UI

* UI build test

* Fix applyFilter and UI build

* UI tweaks

* UI correction and build

* added backupRestoreService

* Initial

* Build UI

* added missing bootstrap-vue components

* added missing bootstrap components

* Build UI

* fix BootstrapVueIcons

* fix restore table and icons

* Build UI

* UI corrections

* Build UI

* UI correction and build

* UI correction and build

* UI correction and build

* added custom-butto and build UI

* Build UI

* button correction

* UI build

* added backupRestoreService

* Merge branch 'appbackuprestore' of https://github.com/RunOnFlux/flux into appbackuprestore

* Revert corrupted merges

* merge dev to appbackuprestore (#1200)

* fix apps having one less instance running than specified

* clean up code

* patch to not use new sign mechanism until tuesday release

* Rebuild HomeUI

* Bump Version

* make extendSubscription default to true

* fix UI build

* revert ui elements from development

* getAvailableSpaceOfApp UI implementation

* fix params check

* fix df

* added getRemoteFileSize and UI Integration

* added missing route

* add encodeURIComponent and logs

* checkRemoteFileSize correction

* add logs removed type check

* getRemoteFileSize correction

* added multiplier and decimal for getavailablespaceofapp

* added getComponentPath

* fix

* fix

* fix function

* fix precision

* function rename

* fix getcomponentstoragespace

* added getVolumeDataOfComponent

* add logs

* fix fields variable

* cleanup

* flx decimal

* added separate function dfInfo

* added comments , init getRemoteFile

* getRemoteFile test

* add logs

* added JSON.stringify

* getRemoteFile test

* added missing mount

* added getRemoteFile

* fix path

* added checkFileExists, removeFile

* test

* added getPathFileList

* added filterKeywords for getPathFileList

* fileInfo correction

* getBackupleList test

* test

* add logs

* add more logs

* more logs

* added more logs

* added more logs

* add more logs

* fix filter

* added removeBackupFile, improved formatDateTime

* added logs

* removed cache

* disabled removeAppLocally

* disabled removeAppLocally

* removed removeAppLocally

* added downloadLocalBackup

* fixed downloadBackupFile and other improvements

* split and improved function - IOService created

* added logs

* fix getRemoteFileSize

* fix typo

* lib rename

* [WIP] tarDirectory, appendBackupTask, added backupCheck in syncthingApps

* clean style

* clean

* [WIP] tarDirectory, update backend

* test

* fix tarDirectory

* fix test

* fix tar

* test

* fs fix

* [ADD]  untarFile, createTarGz, removeDirectory, getFileSize, appendBackupTask

* Changed operation order

* [ADD] getFolderSize

* [FIX] appendbackuptask route

* [FIX] appendBackupTask

* [ADD] logs

* [ADD] more logs

* more logs

* test

* more logs

* more  logs

* [FIX] appendBackupTask

* [FIX] existStatus

* add more logs

* [FIX] backapSize

* add logs

* [FIX] skip

* [FIX] backupSize on UI

* fix skip

* [FIX] createTarGz

* [ADD] stop, start docker via UI, backup progress

* [FIX] createBackup UI

* [ADD] comments for functions in IOUtils, improve getVolumeInfo and removeDirectory

* Build UI

* change some text descriptions and typos

* fix table column description

* [UPDATE] rework post call, update formidable, init fileUpload

* test

* test

* test

* revert

* revert formidable version

* add logs

* revert fluxShareUpload

* add logs

* more logs

* test

* test

* fluxShare improvement

* fix folder and rever update

* fix filepath

* fix filename functuin, cleanup

* [FIX] removeDirectory, add fluxshare ability to remove not empty directory

* Remove unused part of code

* [WIP] Finalizing Upload File UI for restore section, other minor edits

* [WIP] convertFileSize - added auto conversion, finalizing fileUpload

* convertFileSize global correction

* [ADD] bytes support for getVolumeInfo

* [ADD] option for convertFileSize to return number only

* [ADD] number arg for functions releted with convertFileSize

* fix getVolumeInfo

* [FIX] getVolumeInfo output

* [FIX] file.filepath in fileUpload

* getFolderSize and getFileSize return in bytes

* [WIP] appendRestoreTask

* appDockerStart correction

* [ADD] sendChunk, backupPathValidation, improved appendRestoreTask

* [FIX] restoreDirectory , finalizing appendRestoreTask

* Minor edits

* [FIX] untarFile, createTarGz

* removed tar lib , eslint correction

* appendBackupTask function rewrite, UI correction

* [ADD] Skip check in checkAndNotifyPeersOfRunningApps

* Minor edit

* Finalizing appendBackupTask, appendRestoreTask

* [ADD] more logs

* [FIX] appendRestoreTask

* Cleanup

* [ADD] pathValidation for backupRestoreService API

* [ADD] comments for backupRestoreService functions

* Code cleanup

* changed operation order in appendRestoreTask

* Better error handling

* pathValidation correction

* Dont delete receiveOnlySyncthingAppsCache on backup and restore process

* UI tweaks

* removed setTimeout after restore

* fix typo

* Fix typo

* Upload UI error handling

* moved pathValidation after auth

* UI Tweks

* fix typo

* fix typo

* processChunks optimization

* Cleanup, fix typo

* Minor edits

* Removed hover for Remote URL and Upload File

* Minor edits

* updateManagementTab correction

* [ADD] Interactive Terminal custom user, UI Tweaks

* [FIX] configReload

* [ADD] User info on Interactive Terminal UI

* move syncthing check for backend and adjust solution based on syncthing type.

* don't hard redeploy node after restore if it is using syncthing

* clean up

* fix catch on different situations

* only for apps version > 3

* only restart syncthing if needed

* rebuild homeUI

* fix log type

* log appDetails

* fix

* fix

* just sync appdata folder

* [ADD] Upload progress info

* [ADD] Prevent size text wrapping in table

* Fix syncthing and don't sync backup folder of fluxos

* fix Privilege

* changed privilage

* Remove backup archive after success unpack

* fix permission

* rebuild homeUI

* fix missing appname

* fix download progress

* changed delay

* removed logs

* Minor edit

* Build UI

* [ADD] Better error handle for createTarGz

* [ADD] cmdGetWithMaxBuffer

* [ADD] remote directory cleanup, UI tweaks

* rebuild UI

* [ADD] runCommand with stdout, stderr

* [ADD] Better error handle for tar operation, fix upload filename

* clean up

* Build UI

* Catch only main error

* Build UI

* [ADD] keep-alive header

* [ADD] fetch Connection header, removed setHeader

* Build UI

* after redeploy start docker even for g syncthing, other nodes will start with delay

* dont execute masterSlaveApps for apps executing backup/restore

* Moved b-alert inside tab area

* Build UI

* revert removeAppLocally

* removed nodecmd from IOUtils.js

---------

Co-authored-by: Cabecinha84 <valter.cabecinha@gmail.com>
Co-authored-by: Cabecinha84 <42519726+Cabecinha84@users.noreply.github.com>
Copy link

gitguardian bot commented Feb 17, 2024

⚠️ GitGuardian has uncovered 18 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
9015359 Triggered PGP Private Key 6fd3af5 HomeUI/dist/js/index.js View secret
9015359 Triggered PGP Private Key ff0b300 HomeUI/dist/js/index.js View secret
9015359 Triggered PGP Private Key 5155e2b HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key ff0b300 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 6fd3af5 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 5155e2b HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 7241b34 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 8429288 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 8429288 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key e97672d HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key e97672d HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 2659e31 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 7241b34 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 2659e31 HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key ce6327e HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key ce6327e HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 8fbfecd HomeUI/dist/js/index.js View secret
8398280 Triggered PGP Private Key 8fbfecd HomeUI/dist/js/index.js View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Our GitHub checks need improvements? Share your feedbacks!

Copy link

codecov bot commented Feb 17, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (d9ffa8f) 50.12% compared to head (8fbfecd) 48.49%.
Report is 5 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1224      +/-   ##
==========================================
- Coverage   50.12%   48.49%   -1.63%     
==========================================
  Files          43       45       +2     
  Lines       14241    14796     +555     
==========================================
+ Hits         7138     7176      +38     
- Misses       7103     7620     +517     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@TheTrunk TheTrunk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 tests are now failing
Missing entire test suite for IOutils
Missing tests for new functions, adjusted functions.
Version bump is missing

@@ -546,8 +547,8 @@ async function fluxShareRemoveFolder(req, res) {

const dirpath = path.join(__dirname, '../../../');
const filepath = `${dirpath}ZelApps/ZelShare/${folder}`;
await fs.promises.rmdir(filepath);

// await fs.promises.rmdir(filepath);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we not using fs for it? instead of it it executes sudo rm -rf.

Copy link
Member

@XK4MiLX XK4MiLX Feb 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fs.promises.rmdir will not remove not empty dir i want give ability to remove directory with files and others directory

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can actually achieve that using FS module as its described in the docs
https://nodejs.org/api/fs.html#fspromisesrmdirpath-options

Copy link
Member

@XK4MiLX XK4MiLX Feb 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but it will not solve situation when i want remove all files and folders but i want keep main directory ( or i miss something)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From docs:

To get a behavior similar to the rm -rf Unix command, use fsPromises.rm() with options { recursive: true, force: true }.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rmdir recursive is depreciated

* @param {boolean} directory - Flag indicating whether to remove only the directory contents (true) or the entire directory (false).
* @returns {boolean} - True if the directory or its contents are removed successfully, false on failure.
*/
async function removeDirectory(rpath, directory = false) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not using fs module?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fs.promises.rmdir will not remove not empty dir i want give ability to remove directory with files and others directory

package.json Outdated Show resolved Hide resolved
ZelBack/src/lib/socket.js Show resolved Hide resolved
ZelBack/src/lib/server.js Show resolved Hide resolved
ZelBack/src/lib/server.js Outdated Show resolved Hide resolved
@TheTrunk TheTrunk merged commit c95299e into master Feb 20, 2024
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants