Commit graph

139 commits

Author SHA1 Message Date
Suheb
a005b687a7
Release 0.15.10 (#1665)
* Update version 0.15.10

* Update project dependencies to resolve Dependabot security alerts

Applies the fixes from the open Dependabot PRs (#1648, #1649, #1650) in a
single pass on the release branch, regenerating the lockfile from scratch.

axios 1.16.0 -> 1.18.1 was the only production exposure (10 advisories).
Transitive deps moved to their fixed in-range versions (fast-uri 3.1.4,
form-data, qs, tough-cookie, tar, del, globby); dev toolchain took safe
bumps (nodemon 3.1.14, eslint 9.39.5, @typescript-eslint 8.65.0).

Drops the unused protractor devDependency: no e2e directory, no config and
no e2e target in angular.json, but 100 packages and the deprecated request
stack behind it. That clears both critical advisories.

npm audit: 50 (2 critical) -> 29 (0 critical); production deps 1 -> 0.
Remaining findings are dev-only tooling needing an Angular 21 migration
rather than a version bump.

Verified: lint, 204 frontend specs, backend + frontend production builds,
and 19 API checks against the docker regtest fixture covering LND, Core
Lightning and Eclair (getinfo, channels, peers, invoices, payments and
forwarding history).

* Fill in PR number in release note (#1653)

* Harden login request validation (#1654)

Tightens server-side validation of authentication requests, guards the password-reset route behind an authenticated session, and wires the backend regression suite (test/backend/) into npm run test. Users with two-factor authentication enabled are encouraged to update promptly.

Verified: backend specs 12/12, lint green, frontend specs 204/204, and the full authentication matrix end-to-end on the docker regtest fixture.

* Reduce exposure of authentication secrets in logs and config responses (#1659)

* Reduce exposure of authentication secrets in logs and config responses

* Fill in PR number in release note (#1659)

* Harden redaction helpers and secret restore paths

* Pin deployment auth switches server-side and harden settings persistence

* Contain backup file reads and harden config persistence

* Pin backup containment root and preserve config file mode on save

* Update Angular framework packages to 20.3.27 (#1661)

* Update Angular framework packages to 20.3.27

Batches the three Dependabot PRs open against master for the Angular framework
(@angular/core #1658, @angular/compiler #1657, @angular/common #1655) into one
update on the release branch. The framework packages are pinned to exact
versions and their peer ranges require them to move together, so all nine
20.3.26 packages go to 20.3.27: animations, common, compiler, compiler-cli,
core, forms, platform-browser, platform-browser-dynamic and router.

Patch-level upstream fixes only, no advisories. The update stays inside Angular
20 - @angular/build and @angular/cli (20.3.32) and @angular/cdk/@angular/material
(20.2.14) are already at the top of their v20 lines - so it does not pull in the
Angular 21 migration tracked by #1650.

Rebuilt frontend/ for the new framework code. backend/ is unchanged, as no
server/ source moved.

* Fill in PR number in release note (#1661)

* Bound remaining unbounded alias-resolution fan-outs in LND graph.ts and channels.ts   Fixes #1630 (#1651)

* Bound remaining unbounded alias-resolution fan-outs in LND graph.ts and channels.ts

Fixes #1630

* Address review feedback: fix options race, error handling, release notes

* Improve release notes entry to cover full PR scope

* Address review feedback: per-task options copy, exclude qs from alias requests

* Stop logging the eclair auth header at DEBUG level (#1664)

* Stop logging the eclair auth header at DEBUG level

getChannels in the eclair channels controller logged its whole request
options object. Eclair authenticates with HTTP basic auth, so those
options carry the configured lnApiPassword in an authorization header -
raising an eclair node's logLevel to DEBUG wrote
"authorization":"Basic <base64>" into the node log file, which is a
recoverable form of the credential and is routinely shared when
debugging.

The log now carries only the request url and form, matching every other
DEBUG log in the controllers. This was the only site in server/ passing a
whole options object to the logger; the rest log options.form, .url,
.body or .qs, none of which hold credentials.

Present since 0.12.0 and only reachable by opting in to DEBUG (the
default log level is ERROR), but it contradicted the logging guarantee
stated for #1659.

Found by scanning node logs at DEBUG while verifying the 0.15.10 branch
against the regtest fixture. Regression test added in
test/backend/eclair-channels.test.mjs; it fails on the previous code with
"auth header key must not reach the node log".

* Fill in PR number in release note (#1664)

---------

Co-authored-by: Osuji <weezdomosuji@gmail.com>
2026-08-03 22:49:14 -07:00
saubyk
48b71d49e3 Address review: soften parity comment, guard async verify double-click
Two non-blocking review points on #1644:

- createHmacKey's comment claimed "exact parity" with otplib, but
  otplib's totpPadSecret under-repeats to 18 bytes for 1- and 9-byte
  secrets where this service pads to 20. Unreachable in RTL (secrets are
  always 10 bytes from generateSecret, field is read-only), and
  replicating the otplib bug has negative value - so the comment is
  corrected to state parity holds for the 10-byte secrets used here
  rather than universally.

- onVerifyToken's token check is now async, so two fast clicks on Verify
  could dispatch updateApplicationSettings twice (was synchronous
  before). Payload is idempotent so it was harmless, but guarded with an
  in-flight flag to restore the single-dispatch behavior.

Frontend/backend artifacts rebuilt; TOTP spec and lint pass.
2026-07-19 22:01:23 -07:00
saubyk
c5dc49711c Drop crypto-browserify polyfills by moving 2FA TOTP to WebCrypto
The frontend build pulled in crypto-browserify, stream-browserify and
vm-browserify (via tsconfig paths) only because otplib's
@otplib/plugin-crypto requires Node's crypto. That chain carried the
last production npm audit findings - the elliptic advisory
(GHSA-848j-6mx2-7j84, no fixed release) plus browserify-sign/create-ecdh
(issue #1634, item 3).

The two-factor-auth settings dialog is the only browser consumer of
otplib. It now uses a small WebCrypto TOTP service
(src/app/shared/services/totp.service.ts, RFC 6238: HMAC-SHA1, 6 digits,
30s step) instead, so otplib is no longer bundled and the three
polyfills plus their tsconfig path mappings are removed.

The backend still verifies login tokens with otplib, so the new service
must match it exactly - verified byte-for-byte against otplib and the
RFC 6238 test vectors (generateSecret/keyuri/generate/check parity).
Existing authenticator enrollments keep working. token check() is now
async (WebCrypto's digest is promise-based); the dialog's verify handler
was updated to match, and the value was never used for control flow.

Production npm audit now reports zero vulnerabilities (from 13, incl. 2
critical, at the start of this cleanup series). Verified on the docker
fixture: enrolled a 2FA secret from the new service, confirmed the
backend otplib accepts a token it produces at login, rejected
wrong/absent tokens. Unit spec covers RFC 6238 vectors, keyuri parity
and base32 round-trip; both API suites and the full frontend suite (204
specs) pass.
2026-07-19 22:01:23 -07:00
saubyk
030592ac23 Address review: fix logout -> re-login under session-bound CSRF tokens
Session-bound tokens broke re-login after logout: logoutUser destroys
the session, but the SPA navigated to the login page without a
document reload, so the surviving _csrf/XSRF-TOKEN cookies stayed
bound to the destroyed session id and the next login POST failed with
403 until a manual refresh. Hit both manual logout and the idle-timer
auto-logout.

Two coordinated fixes:

1. Frontend: the logout effect now performs a full document navigation
   to the login page (after the server logout completes, so the
   request is not aborted by the reload), which re-runs the handshake
   and mints a token bound to the fresh session. The logout reason
   previously travelled on the NgRx action stream, which cannot
   survive a reload - it is now handed over via sessionStorage (set
   after clearAll) and picked up and cleared by the login component.
   The SSO branch is unchanged (it already left the document).

2. Backend: the EBADCSRFTOKEN error path now re-mints the token for
   the current session before responding 403, so any client holding a
   stale token (e.g. after a server restart rotates the boot secret)
   self-heals on retry instead of looping on 403.

Verified on the fixture: reviewer's repro now shows login 200 ->
logout 200 -> stale-token login 403 (binding intact) with re-minted
cookies on the 403 -> retry 200; and the reload path (fresh GET /
after logout, what the full navigation does) logs in on the first
attempt. Both API suites, the CSRF battery, rtl.effects specs and the
full frontend suite pass; frontend and backend artifacts rebuilt.
2026-07-19 22:01:23 -07:00
saubyk
6e48241d85 Migrate sat_per_byte to sat_per_vbyte for LND requests
Per LND v0.21.0 release notes, the sat_per_byte option will be removed
in v0.22 across CloseChannel, OpenChannel, SendCoins, SendMany, and
walletrpc.BumpFee. LND already treats sat_per_byte as sat/vbyte
internally, so this is a pure rename with no value conversion. Updates
both the wire-format strings sent to LND and the matching TypeScript
identifiers across the close-channel, open-channel, send-coins, and
bump-fee paths.
2026-07-19 22:01:23 -07:00
saubyk
bb2a228662 Realign the Reports Scroll Range select with the date picker
The a11y fix in #1609 wrapped the bare Scroll Range mat-select in a
mat-form-field for its label, but the wrapper reserved subscript space
(78.8px vs the date field 56px) and anchored to the row top, leaving
the date picker ~11px lower on every implementation reports screen.
Use subscriptSizing="dynamic" (no hints are used) and center on the
cross axis, restoring the aligned 56px row from v0.15.8 while keeping
the label. Verified headlessly against the regtest fixture: both
fields now render at identical top/height.

Fixes #1635
2026-07-19 22:01:23 -07:00
saubyk
b47e32c88c Bump pdfmake to 0.3.11 to fix its SSRF advisory
The fix is within the pinned 0.3.x line but the exact pin kept npm
update from reaching it. Clears the last high-severity production
vulnerability; frontend build and full spec suite verified.
2026-07-19 22:01:23 -07:00
ShahanaFarooqui
0057bee53d Add Disable Authentication option in the frontend 2026-07-19 22:01:23 -07:00
ShahanaFarooqui
7d32bd68e9 Fix error on page load if channels alias is undefined 2026-07-19 22:01:23 -07:00
ShahanaFarooqui
e8d5685948 Decode Payment with get/post method not fetch
Fixes #1550
2026-02-09 18:13:13 -08:00
ShahanaFarooqui
bdf9c832dd Side Navigation collapse bug fix 2026-02-01 09:06:07 -08:00
ShahanaFarooqui
4e08fd7cba Update project code according to dependencies update 2026-02-01 09:06:07 -08:00
ShahanaFarooqui
7340cb390a
Release 0.15.6 (#1506)
Fix for Resource temporarily unavailable error for CLN channel alias list
Security fix for npm vulnerabilities
2025-09-09 02:18:23 -07:00
ShahanaFarooqui
8a0304c162
Release 0.15.5 (#1492)
* Version Updated to 0.15.5-beta

* Fix to show correct experimental-dual-fund configuration from listconfig (#1479)

* feat: boltz swap in refund address (#1490)

require a refund address when creating a swap in and paying it
externally to make sure the swap can be refunded automatically if it
fails.

---------

Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>
2025-07-07 11:36:23 -07:00
ShahanaFarooqui
d51301adde
Release 0.15.4 (#1472)
* Fix for sso access key reading (#1469)
2024-11-18 20:27:51 -08:00
ShahanaFarooqui
a594606d27
Release 0.15.3 (#1467)
* Fix `Unknown command` error when disabling offers on CLN. ([#1443]) (#1451)
* Add missing SSO options to config (#1455)
* Fix for cln logic screen navigation (#1457)
* Transactions destination address display fix (#1458)
* cln delexpiredinvoices deprecation fix (#1459)
* Read LN_IMPLEMENTATION from environment (#1460)
* Add Fee Rate Information on Send Funds Modal (#1461)
* Artifact script fix (#1464)
* Add AMP toggle for LND Send Payments (#1466)

---------

Co-authored-by: Se7enZ <118189041+s373nZ@users.noreply.github.com>
2024-11-10 20:23:52 -08:00
ShahanaFarooqui
125a3b61ae
Release 0.15.2 (#1418)
* Check for authentication obj before delete operation #1415 (#1416)

* Updating version number
2024-06-21 20:09:52 -07:00
ShahanaFarooqui
22ab6d1154
Release 0.15.1 (#1406)
* rm .DS_Store

* Add watchfrontenddev command for npm

* Fix toggle issues in sidenav (pinning and on page refresh)

* Add copy-to-clipboard fallback if navigator.clipboard is not available (#1336)

* add copy-to-clipboard fallback if navigator.clipboard is not available

* amend copy fallback

* clipboard copy lint fixes and frontend build

* fix: add missing boltz state `transaction.lockupFailed` (#1349)

* fix: boltzd docs link (#1354)

* exit gracefully (#1356)

* allow for eclair updated relayed audit format (#1363)

* feat: add boltz service to cln (#1352)

* lint fix

* Request Params Cleanup

* cln: Boltz auto-send (#1366)

* Bug-fix (CLN Boltz): Hide claim tx id and routing fee for non-zero conf reverse swap

* cln: Boltz auto-send

- Added auto send option for Swap In
- Checking compatiblity with v2.0.0 and above

* Test import fixes

* Update help.component.ts (#1379)

Fixed broken link under "Help" -> "Node Settings"

* Backend config fix (#1382)

* Updating Common Application Configuration

* Fixed get RTL Conf

* Update Application Settings

* application and settings case change

* Unified config models

* Default node update

* 2FA and Password reset

* Final application settings update

* Config Settings and Authentication case fixed

* Node Setting Fix

* Fiat currency Symbol fix

* CLN: Fiat symbol fix

* All: Fiat symbol fix

* Update node settings

* Services UI fix

* CLN: Removed child node settings

* All: Removed child node settings

* Test fixes

* mempool links for onchain information (#1383)

* Tests fix

Tests fix

* UI for Block Explorer Configuration (#1385)

* Bump fee with mempool information (#1386)

* Mempool openchannel minfee (#1388)

Open channel model block if min fee is higher

* Show error on login screen if rune is incorrect and getinfo throws error (#1391)

* cln: Removed channel lookup call for update policy (#1392)

* ECL: On-chain Transactions, Invoice and Payments pagination (#1393)

Done most of the UI changes to accommodate pagination on transactions, payments and invoices tables but true pagination cannot be implemented till total number of records are missing from the API response.

Once the issue https://github.com/ACINQ/eclair/issues/2855 is fixed, I will uncomment pagination changes in the frontend.

* lnd: Onchain CPFP (#1394)

- UTXO label bug fix
- Warning on utxo label for "sweep" in text.

* Bug fixes after testing

* Testing bug fixes (#1401)

* Bug fix 2: lnd: Link channel point to explorer and show fee on close channel too

* lnd: explorer link on pending channels

* Node lookup link on view channel peer pubkey

* Testing bug fixes (#1402)

* Bug fix 2: lnd: Link channel point to explorer and show fee on close channel too

* lnd: explorer link on pending channels

* Node lookup link on view channel peer pubkey

* test fixes

* ng update to v18.0.x

* Updating install with  --legacy-peer-deps

---------

Co-authored-by: Grzegorz Kućmierz <gkucmierz@gmail.com>
Co-authored-by: lacksfish <lacksfish@gmail.com>
Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>
Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com>
Co-authored-by: Taylor King <taylorbradleyking@gmail.com>
Co-authored-by: Fishcake <128653975+fishcakeday@users.noreply.github.com>
Co-authored-by: Ant <72945059+2140data@users.noreply.github.com>
2024-06-10 12:40:37 -07:00
ShahanaFarooqui
475b47b7ea
Release 0.15.0 (#1334)
c-lightning-REST to clnrest migration.
2023-12-05 20:32:05 -08:00
ShahanaFarooqui
82d87b32c1 Codebase Linting 2023-10-06 14:29:22 -07:00
ShahanaFarooqui
e4a2ef9a21 Updated to Angular 16 and removed vulnerabilities 2023-10-06 12:46:33 -07:00
ShahanaFarooqui
14fd866d1a Bug fix: Manage button link filter #1294 and Page Settings Error 2023-10-05 19:04:37 -07:00
ShahanaFarooqui
74af120c8f Changed from channel_type to commitment_type 2023-10-05 11:04:14 -07:00
ShahanaFarooqui
d478356076 LND Taproot Channel 2023-10-04 20:44:35 -07:00
ShahanaFarooqui
b603045a26 Add RTL donations link 2023-10-04 18:15:32 -07:00
ShahanaFarooqui
95c0b7feeb Changed date format 2023-10-04 13:50:48 -07:00
ShahanaFarooqui
52ad99941e Bug fix: ECL routing fee msat to sat conversion #1251 2023-10-03 21:46:51 -07:00
ShahanaFarooqui
f8393d570e Bug fix: LND Payment sort 2023-10-03 17:40:01 -07:00
ShahanaFarooqui
36e1d39170 Updated channels response columns and migrated pagesettings 2023-09-28 20:18:14 -07:00
ShahanaFarooqui
281e51eb7a Bug Fix: CLN version check error with prefix basedon
Bug Fix: CLN version check error with prefix `basedon`
2023-09-27 15:21:11 -07:00
Shahana Farooqui
d875779ba6 Go To Routing Message
Go To Routing Message
2023-06-18 18:53:49 -07:00
Shahana Farooqui
895b1de27d ECL Channel Rebalance bug fix 2023-05-29 18:31:14 -07:00
Shahana Farooqui
fb891b9390 Version 0.14.0 build 2023-05-29 15:55:12 -07:00
Shahana Farooqui
cea4c9dec4 Functional Route Guard
Functional Route Guard
2023-05-29 15:14:12 -07:00
Shahana Farooqui
e650f45b9f Bug fix for cln utxo selection for open channel 2023-05-28 16:56:46 -07:00
Shahana Farooqui
e08f2ebc28 Bug fixes: broken open channel links & backward compatible listChannels
Bug fixes: broken open channel links & backward compatible listChannels
2023-05-28 16:25:53 -07:00
Shahana Farooqui
40173091e9 cln reports msat migration
cln reports msat migration
2023-05-24 13:01:08 -07:00
Shahana Farooqui
acd9325451 cln routing msat migration
cln routing msat migration
2023-05-23 23:39:15 -07:00
Shahana Farooqui
bd86fe79bb cln lookup & feerate msat migration 2023-05-23 18:36:28 -07:00
Shahana Farooqui
8bce41276b cln channels & transactions msat migration 2023-05-16 19:41:50 -07:00
Shahana Farooqui
98cf3ae648 Bug fix: Active channel filtered as inactive #1240 2023-05-16 09:15:46 -07:00
Shahana Farooqui
804ba91d7b Add pending htlcs to all channels tabs #1086
Add pending htlcs to all channels tabs #1086
2023-05-02 17:04:43 -07:00
Shahana
3863653a5e Circular Rebalance #842
Circular Rebalance #842
2023-04-28 22:27:31 -07:00
Shahana
efdaa13244 Bug fix: LND Lease UTXO not working #1227
Bug fix: LND Lease UTXO not working #1227
2023-04-24 17:25:25 -07:00
Shahana
a2d1833a36 Bug fix: Circular rebalance infographics #1216
Bug fix: Circular rebalance infographics #1216
2023-04-20 12:41:11 -07:00
Shahana Farooqui
859d882018 Bug fix: Filtering is not working after redirect from dashboard #1216
Bug fix: Filtering is not working after redirect from dashboard #1216
2023-04-18 17:42:00 -07:00
Shahana Farooqui
57a931c161 Link to graph lookup from channel & peer modals LND & ECL #1103
Link to graph lookup from channel & peer modals LND & ECL #1103
2023-04-18 16:49:34 -07:00
Shahana Farooqui
ee9ec62253 Link to graph lookup from channel & peer modals CLN #1103
Link to graph lookup from channel & peer modals CLN #1103
2023-04-18 15:27:43 -07:00
ShahanaFarooqui
17137a1a55
Merge branch 'Release-0.13.7' into connect-node-on-lookup 2023-04-18 12:39:42 -07:00
Shahana Farooqui
1bd901feab Fix: Dark theme, lnd payment message, node lookup connect, Issues 1211, 1210, 1134
Fix: Dark theme, lnd payment message, node lookup connect, Issues 1211, 1210, 1134
2023-04-18 12:37:23 -07:00