-
Notifications
You must be signed in to change notification settings - Fork 158
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
Release 0.15.4 #1472
Release 0.15.4 #1472
Changes from all commits
006b013
faf2788
f02f0c0
8368929
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
This file was deleted.
Large diffs are not rendered by default.
This file was deleted.
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -8,7 +8,7 @@ import { Database, DatabaseService } from '../../utils/database.js'; | |||||||||||||||||||||||||||||||||||||||||||||||||||||
import { Logger, LoggerService } from '../../utils/logger.js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { Common, CommonService } from '../../utils/common.js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { WSServer } from '../../utils/webSocketServer.js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { Authentication, SSO } from '../../models/config.model.js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { Authentication } from '../../models/config.model.js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
const options = { url: '' }; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const logger: LoggerService = Logger; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -99,40 +99,33 @@ export const getFile = (req, res, next) => { | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
export const getApplicationSettings = (req, res, next) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting RTL Configuration..' }); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const confFile = common.appConfig.rtlConfFilePath + sep + 'RTL-Config.json'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.readFile(confFile, 'utf8', (errRes, data) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (errRes) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const errMsg = 'Get Node Config Error'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
return res.status(err.statusCode).json({ message: err.error, error: err.error }); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} else { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const appConfData = common.removeSecureData(JSON.parse(data)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.allowPasswordUpdate = common.appConfig.allowPasswordUpdate; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.enable2FA = common.appConfig.enable2FA; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.selectedNodeIndex = (req.session.selectedNode && req.session.selectedNode.index ? req.session.selectedNode.index : common.selectedNode.index); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
common.appConfig.selectedNodeIndex = appConfData.selectedNodeIndex; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const token = req.headers.authorization ? req.headers.authorization.split(' ')[1] : ''; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
jwt.verify(token, common.secret_key, (err, user) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (err) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Delete unnecessary data for initial response (without security token) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const selNodeIdx = appConfData.nodes.findIndex((node) => node.index === appConfData.selectedNodeIndex) || 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.SSO = new SSO(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.secret2FA = ''; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.dbDirectoryPath = ''; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.nodes[selNodeIdx].authentication = new Authentication(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.bitcoindConfigPath; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.lnServerUrl; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.swapServerUrl; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.boltzServerUrl; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.enableOffers; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.enablePeerswap; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.channelBackupPath; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.nodes = [appConfData.nodes[selNodeIdx]]; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received', data: appConfData }); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
res.status(200).json(appConfData); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const appConfData = common.removeSecureData(JSON.parse(JSON.stringify(common.appConfig))); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.allowPasswordUpdate = common.appConfig.allowPasswordUpdate; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.enable2FA = common.appConfig.enable2FA; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.selectedNodeIndex = (req.session.selectedNode && req.session.selectedNode.index ? req.session.selectedNode.index : common.selectedNode.index); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
common.appConfig.selectedNodeIndex = appConfData.selectedNodeIndex; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const token = req.headers.authorization ? req.headers.authorization.split(' ')[1] : ''; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
jwt.verify(token, common.secret_key, (err, user) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if (err) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Delete unnecessary data for initial response (without security token) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
const selNodeIdx = appConfData.nodes.findIndex((node) => node.index === appConfData.selectedNodeIndex) || 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix potential null reference with optional chaining The findIndex operation could return -1, making the Apply this fix: - const selNodeIdx = appConfData.nodes.findIndex((node) => node.index === appConfData.selectedNodeIndex) || 0;
+ const selNodeIdx = appConfData.nodes.findIndex((node) => node?.index === appConfData.selectedNodeIndex) ?? 0; 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.SSO.rtlCookiePath; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.SSO.cookieValue; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.SSO.logoutRedirectLink; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.secret2FA = ''; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.dbDirectoryPath = ''; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.nodes[selNodeIdx].authentication = new Authentication(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.bitcoindConfigPath; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.lnServerUrl; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.swapServerUrl; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.boltzServerUrl; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.enableOffers; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.enablePeerswap; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
delete appConfData.nodes[selNodeIdx].settings.channelBackupPath; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+112
to
+124
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Improve performance by avoiding delete operators Multiple delete operators can impact performance. Consider using undefined assignments instead. Apply this refactoring: - delete appConfData.SSO.rtlCookiePath;
- delete appConfData.SSO.cookieValue;
- delete appConfData.SSO.logoutRedirectLink;
+ appConfData.SSO.rtlCookiePath = undefined;
+ appConfData.SSO.cookieValue = undefined;
+ appConfData.SSO.logoutRedirectLink = undefined;
- delete appConfData.nodes[selNodeIdx].settings.bitcoindConfigPath;
- delete appConfData.nodes[selNodeIdx].settings.lnServerUrl;
- delete appConfData.nodes[selNodeIdx].settings.swapServerUrl;
- delete appConfData.nodes[selNodeIdx].settings.boltzServerUrl;
- delete appConfData.nodes[selNodeIdx].settings.enableOffers;
- delete appConfData.nodes[selNodeIdx].settings.enablePeerswap;
- delete appConfData.nodes[selNodeIdx].settings.channelBackupPath;
+ appConfData.nodes[selNodeIdx].settings.bitcoindConfigPath = undefined;
+ appConfData.nodes[selNodeIdx].settings.lnServerUrl = undefined;
+ appConfData.nodes[selNodeIdx].settings.swapServerUrl = undefined;
+ appConfData.nodes[selNodeIdx].settings.boltzServerUrl = undefined;
+ appConfData.nodes[selNodeIdx].settings.enableOffers = undefined;
+ appConfData.nodes[selNodeIdx].settings.enablePeerswap = undefined;
+ appConfData.nodes[selNodeIdx].settings.channelBackupPath = undefined; 📝 Committable suggestion
Suggested change
🧰 Tools🪛 Biome[error] 112-112: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 113-113: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 114-114: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 118-118: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 119-119: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 120-120: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 121-121: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 122-122: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 123-123: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) [error] 124-124: Avoid the delete operator which can impact performance. Unsafe fix: Use an undefined assignment instead. (lint/performance/noDelete) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
appConfData.nodes = [appConfData.nodes[selNodeIdx]]; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received', data: appConfData }); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
res.status(200).json(appConfData); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix self-assignment and improve optional chaining.
There are two issues in this code segment:
config.SSO.rtlSSO = config.SSO.rtlSSO
is redundant and can be removed.Apply this diff to fix the issues:
📝 Committable suggestion
🧰 Tools
🪛 Biome
[error] 323-323: Change to an optional chain.
Unsafe fix: Change to an optional chain.
(lint/complexity/useOptionalChain)
[error] 324-324: rtlSSO is assigned to itself.
This is where is assigned.
(lint/correctness/noSelfAssign)