By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Option to regenerate Newt/olm/remote-nodes keys (in case they're lost or need to be rotated)
How to test?
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/fosrl/pangolin/pull/1743
**Author:** [@Pallavikumarimdb](https://github.com/Pallavikumarimdb)
**Created:** 10/24/2025
**Status:** ✅ Merged
**Merged:** 11/9/2025
**Merged by:** [@oschwartz10612](https://github.com/oschwartz10612)
**Base:** `dev` ← **Head:** `feat/option-to-regenerate-keys`
---
### 📝 Commits (10+)
- [`9f9aa07`](https://github.com/fosrl/pangolin/commit/9f9aa07c2d8a2bc37edfadef2f7ba38d43bff4c2) Option to regenerate remote-nodes keys
- [`3f38080`](https://github.com/fosrl/pangolin/commit/3f38080b46bdf56cb326936b1d9c215f45148dd2) fix lint
- [`c2f607b`](https://github.com/fosrl/pangolin/commit/c2f607bb9ad41adc62c5d7917c800478697fd543) Option to regenerate olm keys inside client
- [`42091e8`](https://github.com/fosrl/pangolin/commit/42091e88cb19c31ce4d541500cc84433221a71e1) rename exit node tab to credentials
- [`d32505a`](https://github.com/fosrl/pangolin/commit/d32505a833253dc937781bde5d2bc67f9750fff9) Option to regenerate Newt keys
- [`58a13de`](https://github.com/fosrl/pangolin/commit/58a13de0ff2e7a29100f0578ba7ca014c0a39885) fix lint
- [`3756aae`](https://github.com/fosrl/pangolin/commit/3756aaecdab99b19aa930ac107180704c0d2a619) change file naming structure to reGenerate exit node keys
- [`563a5b3`](https://github.com/fosrl/pangolin/commit/563a5b3e7e594d2cbeee69d3e5ae0c61e2609b76) disable credential regenerate button for local and wireguard
- [`18cdf07`](https://github.com/fosrl/pangolin/commit/18cdf070c72e5bbdcfb3a5ae2bbe7912f7de0b20) add view setting options
- [`f7e7993`](https://github.com/fosrl/pangolin/commit/f7e7993fd4dacd8a3e27a0aee88409670839059a) regenerate secret for wireguard
### 📊 Changes
**25 files changed** (+1267 additions, -29 deletions)
<details>
<summary>View changed files</summary>
📝 `messages/en-US.json` (+19 -1)
📝 `server/auth/actions.ts` (+1 -0)
📝 `server/private/routers/external.ts` (+28 -1)
➕ `server/private/routers/re-key/index.ts` (+3 -0)
➕ `server/private/routers/re-key/reGenerateClientSecret.ts` (+130 -0)
➕ `server/private/routers/re-key/reGenerateExitNodeSecret.ts` (+129 -0)
➕ `server/private/routers/re-key/reGenerateSiteSecret.ts` (+155 -0)
📝 `server/routers/client/updateClient.ts` (+4 -2)
📝 `server/routers/external.ts` (+2 -0)
📝 `server/routers/remoteExitNode/types.ts` (+5 -0)
📝 `server/routers/site/index.ts` (+1 -1)
📝 `src/app/[orgId]/settings/(private)/remote-exit-nodes/ExitNodesTable.tsx` (+17 -0)
➕ `src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/credentials/page.tsx` (+133 -0)
➖ `src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/general/page.tsx` (+0 -3)
📝 `src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/layout.tsx` (+13 -1)
📝 `src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/page.tsx` (+1 -1)
➕ `src/app/[orgId]/settings/clients/[clientId]/credentials/page.tsx` (+124 -0)
📝 `src/app/[orgId]/settings/clients/[clientId]/layout.tsx` (+13 -2)
➕ `src/app/[orgId]/settings/sites/[niceId]/credentials/page.tsx` (+193 -0)
📝 `src/app/[orgId]/settings/sites/[niceId]/layout.tsx` (+13 -3)
_...and 5 more files_
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Description
Option to regenerate Newt/olm/remote-nodes keys (in case they're lost or need to be rotated)
## How to test?
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/pangolin/pull/1743
Author: @Pallavikumarimdb
Created: 10/24/2025
Status: ✅ Merged
Merged: 11/9/2025
Merged by: @oschwartz10612
Base:
dev← Head:feat/option-to-regenerate-keys📝 Commits (10+)
9f9aa07Option to regenerate remote-nodes keys3f38080fix lintc2f607bOption to regenerate olm keys inside client42091e8rename exit node tab to credentialsd32505aOption to regenerate Newt keys58a13defix lint3756aaechange file naming structure to reGenerate exit node keys563a5b3disable credential regenerate button for local and wireguard18cdf07add view setting optionsf7e7993regenerate secret for wireguard📊 Changes
25 files changed (+1267 additions, -29 deletions)
View changed files
📝
messages/en-US.json(+19 -1)📝
server/auth/actions.ts(+1 -0)📝
server/private/routers/external.ts(+28 -1)➕
server/private/routers/re-key/index.ts(+3 -0)➕
server/private/routers/re-key/reGenerateClientSecret.ts(+130 -0)➕
server/private/routers/re-key/reGenerateExitNodeSecret.ts(+129 -0)➕
server/private/routers/re-key/reGenerateSiteSecret.ts(+155 -0)📝
server/routers/client/updateClient.ts(+4 -2)📝
server/routers/external.ts(+2 -0)📝
server/routers/remoteExitNode/types.ts(+5 -0)📝
server/routers/site/index.ts(+1 -1)📝
src/app/[orgId]/settings/(private)/remote-exit-nodes/ExitNodesTable.tsx(+17 -0)➕
src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/credentials/page.tsx(+133 -0)➖
src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/general/page.tsx(+0 -3)📝
src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/layout.tsx(+13 -1)📝
src/app/[orgId]/settings/(private)/remote-exit-nodes/[remoteExitNodeId]/page.tsx(+1 -1)➕
src/app/[orgId]/settings/clients/[clientId]/credentials/page.tsx(+124 -0)📝
src/app/[orgId]/settings/clients/[clientId]/layout.tsx(+13 -2)➕
src/app/[orgId]/settings/sites/[niceId]/credentials/page.tsx(+193 -0)📝
src/app/[orgId]/settings/sites/[niceId]/layout.tsx(+13 -3)...and 5 more files
📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Option to regenerate Newt/olm/remote-nodes keys (in case they're lost or need to be rotated)
How to test?
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.