[PR #2282] [MERGED] refactor(fingerprint): start fingerprint snapshots, merge with posture checks #4863

Closed
opened 2026-04-20 09:09:11 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/fosrl/pangolin/pull/2282
Author: @water-sucks
Created: 1/20/2026
Status: Merged
Merged: 1/20/2026
Merged by: @oschwartz10612

Base: devHead: refactor-fingerprints-postures-into-single-table


📝 Commits (4)

  • d173a71 refactor(fingerprint): start taking fingerprint snapshots in new table
  • a0baed9 feat(fingerprint): consolidate posture checks into fingerprint table
  • 7054f2f fix(fingerprint): set fingerprintId reference to null
  • aeee3e9 feat(fingerprint): clean up stale snapshots older than 1 year

📊 Changes

12 files changed (+532 additions, -290 deletions)

View changed files

📝 server/db/pg/schema/schema.ts (+89 -33)
📝 server/db/sqlite/schema/schema.ts (+102 -34)
📝 server/lib/cleanupLogs.ts (+3 -0)
📝 server/private/routers/approvals/listApprovals.ts (+33 -25)
📝 server/routers/client/getClient.ts (+23 -16)
📝 server/routers/client/listClients.ts (+10 -10)
server/routers/olm/fingerprintingUtils.ts (+224 -0)
📝 server/routers/olm/getUserOlm.ts (+11 -12)
📝 server/routers/olm/handleOlmPingMessage.ts (+17 -72)
📝 server/routers/olm/handleOlmRegisterMessage.ts (+3 -80)
📝 server/routers/olm/listUserOlms.ts (+6 -3)
📝 server/routers/olm/recoverOlmWithFingerprint.ts (+11 -5)

📄 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

This PR does a number of changes to the fingerprints and posture checking server-side:

  • It moves the posture checks into the fingerprint tables.
  • It periodically takes snapshots of both fingerprints and posture checks, as well as exposing a current fingerprint table for easy storage of the current detected value, alongside its last collected and first/last seen timestamps.
  • Fingerprint snapshots are now only added to the table as their values change over time, rather than at every ping. This is done using a hash stored in the database.

How to test?

Fingerprint collection from clients should not change on the client side, just their handling on the server side.


🔄 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/2282 **Author:** [@water-sucks](https://github.com/water-sucks) **Created:** 1/20/2026 **Status:** ✅ Merged **Merged:** 1/20/2026 **Merged by:** [@oschwartz10612](https://github.com/oschwartz10612) **Base:** `dev` ← **Head:** `refactor-fingerprints-postures-into-single-table` --- ### 📝 Commits (4) - [`d173a71`](https://github.com/fosrl/pangolin/commit/d173a71d19bd082da378af06bccacbeda63c8e66) refactor(fingerprint): start taking fingerprint snapshots in new table - [`a0baed9`](https://github.com/fosrl/pangolin/commit/a0baed96cc65391e30bda06ff259f2fe6ef046ad) feat(fingerprint): consolidate posture checks into fingerprint table - [`7054f2f`](https://github.com/fosrl/pangolin/commit/7054f2f14b3a370cfbc12871931d5407102edccc) fix(fingerprint): set fingerprintId reference to null - [`aeee3e9`](https://github.com/fosrl/pangolin/commit/aeee3e924c0f7b456632f2fff32f169184bfd867) feat(fingerprint): clean up stale snapshots older than 1 year ### 📊 Changes **12 files changed** (+532 additions, -290 deletions) <details> <summary>View changed files</summary> 📝 `server/db/pg/schema/schema.ts` (+89 -33) 📝 `server/db/sqlite/schema/schema.ts` (+102 -34) 📝 `server/lib/cleanupLogs.ts` (+3 -0) 📝 `server/private/routers/approvals/listApprovals.ts` (+33 -25) 📝 `server/routers/client/getClient.ts` (+23 -16) 📝 `server/routers/client/listClients.ts` (+10 -10) ➕ `server/routers/olm/fingerprintingUtils.ts` (+224 -0) 📝 `server/routers/olm/getUserOlm.ts` (+11 -12) 📝 `server/routers/olm/handleOlmPingMessage.ts` (+17 -72) 📝 `server/routers/olm/handleOlmRegisterMessage.ts` (+3 -80) 📝 `server/routers/olm/listUserOlms.ts` (+6 -3) 📝 `server/routers/olm/recoverOlmWithFingerprint.ts` (+11 -5) </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 This PR does a number of changes to the fingerprints and posture checking server-side: - It moves the posture checks into the fingerprint tables. - It periodically takes snapshots of both fingerprints and posture checks, as well as exposing a current fingerprint table for easy storage of the current detected value, alongside its last collected and first/last seen timestamps. - Fingerprint snapshots are now only added to the table as their values change over time, rather than at every ping. This is done using a hash stored in the database. ## How to test? Fingerprint collection from clients should not change on the client side, just their handling on the server side. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-20 09:09:11 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/pangolin#4863