cleanup #2687

Merged
mfreeman451 merged 3 commits from refs/pull/2687/head into staging 2026-01-18 03:22:19 +00:00
mfreeman451 commented 2026-01-18 03:01:29 +00:00 (Migrated from github.com)
Owner

Imported from GitHub pull request.

Original GitHub pull request: #2328
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/pull/2328
Original created: 2026-01-18T03:01:29Z
Original updated: 2026-01-18T03:22:20Z
Original head: carverauto/serviceradar:chore/golang_cleanup_and_removal
Original base: staging
Original merged: 2026-01-18T03:22:19Z by @mfreeman451

User description

IMPORTANT: Please sign the Developer Certificate of Origin

Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:

Signed-off-by: J. Doe <j.doe@domain.com>

Describe your changes

Code checklist before requesting a review

  • I have signed the DCO?
  • The build completes without errors?
  • All tests are passing when running make test?

PR Type

Enhancement, Other


Description

  • Remove standalone SNMP checker service and deployment artifacts

  • Eliminate unused Go packages (registry, identitymap, http, sync, db)

  • Refactor RegistryPublisher to use database service directly

  • Update build, Docker, Helm, and documentation references


Diagram Walkthrough

flowchart LR
  A["Standalone SNMP Checker Service"] -->|Remove| B["Embedded SNMP in Agent"]
  C["Registry Package"] -->|Remove| D["Direct DB Service"]
  E["Unused Go Packages"] -->|Delete| F["Cleaner Codebase"]
  G["Build/Deploy Configs"] -->|Update| H["Agent-only References"]
  B --> I["Simplified Architecture"]
  D --> I
  F --> I
  H --> I

File Walkthrough

Relevant files
Enhancement
1 files
publisher.go
Remove registry dependency, use database service                 
+13/-23 
Tests
1 files
publisher_test.go
Update tests to remove registry mocks                                       
+14/-30 
Configuration changes
8 files
entrypoint-certs.sh
Remove SNMP checker certificate generation                             
+1/-2     
build-images.sh
Remove SNMP checker from build groups                                       
+3/-5     
validate.sh
Remove SNMP checker from deployment validation                     
+1/-1     
reset-cnpg.sh
Remove SNMP checker from service restart list                       
+1/-2     
serviceradar-config.yaml
Disable SNMP checker config, remove service account           
+2/-54   
configmap.yaml
Simplify SNMP config, remove checker configuration             
+2/-53   
agent.yaml
Remove SNMP checker config file copy command                         
+1/-1     
snmp.json
Disable SNMP checker, remove service configuration             
+1/-19   
Documentation
8 files
README.md
Update documentation for embedded SNMP collector                 
+4/-5     
CNCF_security_self_assessment.md
Update SNMP component description to embedded agent           
+1/-1     
index.md
Add deprecation note for legacy SNMP checker                         
+3/-1     
snmp.md
Add migration guidance for standalone SNMP checker             
+3/-1     
design.md
Add design document for cleanup initiative                             
+27/-0   
proposal.md
Add proposal for legacy package removal                                   
+15/-0   
tasks.md
Add implementation tasks checklist                                             
+9/-0     
spec.md
Add requirements for embedded SNMP only                                   
+13/-0   
Additional files
101 files
INSTALL.md +0/-2     
Makefile +0/-12   
BUILD.bazel +0/-34   
BUILD.bazel +0/-25   
main.go +0/-162 
Dockerfile.snmp-checker +0/-87   
datasvc.docker.json +0/-2     
datasvc.mtls.json +0/-1     
entrypoint-snmp-checker.sh +0/-93   
generate-certs.sh +0/-1     
pg_ident.conf +0/-1     
snmp-checker.docker.json +0/-91   
bootstrap-compose-spire.sh +0/-1     
BUILD.bazel +0/-43   
push_targets.bzl +0/-1     
generate-certs.sh +0/-1     
snmp-checker.yaml +0/-96   
spire-clusterspiffeid-legacy-cleanup.yaml +0/-1     
spire-clusterspiffeids.yaml +0/-1     
values.yaml +0/-2     
README.md +0/-1     
cert-scripts-configmap.yaml +0/-1     
kustomization.yaml +0/-1     
serviceradar-agent.yaml +0/-1     
serviceradar-snmp-checker.yaml +0/-116 
kustomization.yaml +0/-1     
spire-clusterspiffeid-snmp-checker.yaml +0/-12   
kustomization.yaml +0/-1     
kustomization.yaml +0/-1     
components.json +0/-47   
packages.bzl +0/-20   
BUILD.bazel +0/-9     
snmp.json +0/-23   
package.sh +0/-121 
postinstall.sh +0/-57   
preremove.sh +0/-31   
serviceradar-snmp-checker.service +0/-26   
serviceradar-snmp-checker.spec +0/-65   
BUILD.bazel +0/-1     
push_loop.go +0/-89   
tls.go +0/-3     
BUILD.bazel +0/-22   
middleware.go +0/-154 
middleware_test.go +0/-85   
BUILD.bazel +0/-31   
identitymap.go +0/-470 
identitymap_test.go +0/-192 
metadata_hash.go +0/-30   
metrics.go +0/-103 
BUILD.bazel +0/-2     
errors.go +0/-1     
BUILD.bazel +0/-45   
README.md +0/-13   
age_graph_metrics.go +0/-295 
age_graph_writer.go +0/-1300
age_graph_writer_test.go +0/-118 
batch_optimization_test.go +0/-194 
canon_simulation_test.go +0/-345 
capabilities.go +0/-206 
capabilities_test.go +0/-71   
device.go +0/-25   
device_store.go +0/-280 
device_store_test.go +0/-209 
device_store_update.go +0/-221 
device_store_update_test.go +0/-110 
device_transform.go +0/-238 
device_transform_test.go +0/-236 
diagnostics.go +0/-60   
hydrate.go +0/-328 
hydrate_test.go +0/-130 
identity_engine.go +0/-917 
identity_engine_partition_test.go +0/-51   
identity_metrics.go +0/-295 
identity_reconciliation_test.go +0/-41   
interfaces.go +0/-77   
matrix.go +0/-202 
matrix_test.go +0/-119 
mock_registry.go +0/-326 
ocsf_type_inference.go +0/-365 
promotion_status.go +0/-166 
promotion_status_test.go +0/-123 
registry.go +0/-2067
registry_cnpg_test.go +0/-167 
registry_sync.go +0/-184 
registry_sync_metrics.go +0/-207 
registry_test.go +0/-1840
registry_timestamp_test.go +0/-54   
retraction_processing_test.go +0/-264 
service_device_test.go +0/-529 
trigram_index.go +0/-210 
trigram_index_test.go +0/-36   
BUILD.bazel +0/-16   
metrics.go +0/-156 
planner.go +0/-435 
planner_test.go +0/-116 
srql_client.go +0/-176 
BUILD.bazel +0/-61   
armis_netbox_test.go +0/-192 
blacklist.go +0/-152 
blacklist_test.go +0/-181 
Additional files not shown

Imported from GitHub pull request. Original GitHub pull request: #2328 Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/pull/2328 Original created: 2026-01-18T03:01:29Z Original updated: 2026-01-18T03:22:20Z Original head: carverauto/serviceradar:chore/golang_cleanup_and_removal Original base: staging Original merged: 2026-01-18T03:22:19Z by @mfreeman451 --- ### **User description** ## IMPORTANT: Please sign the Developer Certificate of Origin Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include a [DCO sign-off statement]( https://developercertificate.org/) indicating the DCO acceptance in one commit message. Here is an example DCO Signed-off-by line in a commit message: ``` Signed-off-by: J. Doe <j.doe@domain.com> ``` ## Describe your changes ## Issue ticket number and link ## Code checklist before requesting a review - [ ] I have signed the DCO? - [ ] The build completes without errors? - [ ] All tests are passing when running make test? ___ ### **PR Type** Enhancement, Other ___ ### **Description** - Remove standalone SNMP checker service and deployment artifacts - Eliminate unused Go packages (registry, identitymap, http, sync, db) - Refactor RegistryPublisher to use database service directly - Update build, Docker, Helm, and documentation references ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Standalone SNMP Checker Service"] -->|Remove| B["Embedded SNMP in Agent"] C["Registry Package"] -->|Remove| D["Direct DB Service"] E["Unused Go Packages"] -->|Delete| F["Cleaner Codebase"] G["Build/Deploy Configs"] -->|Update| H["Agent-only References"] B --> I["Simplified Architecture"] D --> I F --> I H --> I ``` <details><summary><h3>File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>publisher.go</strong><dd><code>Remove registry dependency, use database service</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-e27214bea0ae4e8b6aa863949ef883c936437a5021cedbf6c3ee5bdfda3a24dc">+13/-23</a>&nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>publisher_test.go</strong><dd><code>Update tests to remove registry mocks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d517c045db1ac81166cd07733bf1d4bebe1b33b4ac9648a109dbe1280650cc4f">+14/-30</a>&nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>entrypoint-certs.sh</strong><dd><code>Remove SNMP checker certificate generation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-83d6800b184a5233c66c69766286b0a60fece1bc64addb112d9f8dc019437f05">+1/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>build-images.sh</strong><dd><code>Remove SNMP checker from build groups</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-9fc5e79c3985707d0a5af43380cb69de6721565a1fd35740b83bec5d6a5c642a">+3/-5</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>validate.sh</strong><dd><code>Remove SNMP checker from deployment validation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-4bd5e618354334c264e72e9b183b49f9f8dca3bad7c406c49c1ed8d4510e6e66">+1/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>reset-cnpg.sh</strong><dd><code>Remove SNMP checker from service restart list</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-b150c895e524739f2e3d478e2384097fc7a7cf5abbcff278c14d82aa0a62b572">+1/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>serviceradar-config.yaml</strong><dd><code>Disable SNMP checker config, remove service account</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-b8c8d2484103b11c396bc60d290c81df63c30a0f81103eceb5852a17e1d2b5e3">+2/-54</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>configmap.yaml</strong><dd><code>Simplify SNMP config, remove checker configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-f4548beaa0a3a01a46971c82c5647a0f3f49eb38d66dd939d06d19018173fcd6">+2/-53</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>agent.yaml</strong><dd><code>Remove SNMP checker config file copy command</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-7442a08dbf73cd750874e97ac18538aa54da15ce7e47c27d0d65fe2cc8f356ad">+1/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>snmp.json</strong><dd><code>Disable SNMP checker, remove service configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-cc91167633eb85378116d9b83f86856939623028f0898bacbd157fc078740952">+1/-19</a>&nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>README.md</strong><dd><code>Update documentation for embedded SNMP collector</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-96ed3cf69b1538edad3490d23c29a4e0fdbee3b37300f92f6ffc1878382d565a">+4/-5</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>CNCF_security_self_assessment.md</strong><dd><code>Update SNMP component description to embedded agent</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d64ffa4a0d2f25cc11d0731c714caa8b406a11b20bf63396fdb3144471e58105">+1/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>index.md</strong><dd><code>Add deprecation note for legacy SNMP checker</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-404286f86c0e59b167886150e53406a570b9ed92d8307217f207008386e2837f">+3/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>snmp.md</strong><dd><code>Add migration guidance for standalone SNMP checker</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-5d2a72888517a4c731287280253a29cedbcbe595f1ce57c2fa14aef37c62595a">+3/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>design.md</strong><dd><code>Add design document for cleanup initiative</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-8b3ae6f642128aa69f40c91d83fd4b1d8848987f0b9464c93f57c676976b6b2c">+27/-0</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>proposal.md</strong><dd><code>Add proposal for legacy package removal</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-da5f382844c0946ba74428acceb6c6c507ae46e76f0a8f92c61514b43ff26eb1">+15/-0</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>tasks.md</strong><dd><code>Add implementation tasks checklist</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-11eef4c00b879cf0a2be73b6779f591432af3b2b28e4d04ebbc2cb477c7536f4">+9/-0</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>spec.md</strong><dd><code>Add requirements for embedded SNMP only</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-562edcacda63611cb8c7840fc380a7627bcf553e9dd5a9d29839a7086b9a852d">+13/-0</a>&nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>101 files</summary><table> <tr> <td><strong>INSTALL.md</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-09b140a43ebfdd8dbec31ce72cafffd15164d2860fd390692a030bcb932b54a0">+0/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>Makefile</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52">+0/-12</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-884fa9353a5226345e44fbabea3300efc7a87dfbcde0b6a42521ca51823f1b68">+0/-34</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a4677c1b820d80470df120cbb56dd6d8a185de34399ac6f3431bf116845bbb29">+0/-25</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>main.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-f25402eade63525184cb5e7437accff93c7b9338eebe81add6dc5f2a9eb12550">+0/-162</a>&nbsp; </td> </tr> <tr> <td><strong>Dockerfile.snmp-checker</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d123d7c4512f9e2940a746cfdb10c174907db42509822d786e2ae5588aecdb70">+0/-87</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>datasvc.docker.json</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3f2719d3dbfe042e8383739e3c78e74e5f851a44e5e46bea8e79c4b79fdcc34f">+0/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>datasvc.mtls.json</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3a45619e57f1e6e9a31486ec7fffb33ef246e271f82bac272ee0a946b88da70a">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>entrypoint-snmp-checker.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-34bba017e490ca49d462a668c86fed9b534156662a17e93bde576f49d50e6712">+0/-93</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>generate-certs.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-8298241543b4744a6ac7780c760ac5b5a0a87ba62de19c8612ebe1aba0996ebd">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>pg_ident.conf</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-e7b8ce062e32c61fdc3bcc9e525c1f1df1c8008fbc02b11409e58c67baa17cc5">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>snmp-checker.docker.json</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-930ff298f88d314fc8c1664111284d653caf5466ff107876c188e01df0168138">+0/-91</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>bootstrap-compose-spire.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-ca219a124d4c95ee7995764d7e0c322b4bfe59e357b7bcb42bc5d7c8b9b0af0d">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-0e4db31c224a8f72ae8e870a849e38a59d74a2c7f7b04347b0b3eb07e20c5a80">+0/-43</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>push_targets.bzl</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-4af33fe62caba04b6d479589c16cfb85babc39bae5c92595d4d4e31660738513">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>generate-certs.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-224edb1896351749211a2a609692daa31f4f45cf175658124613b9dc08496d96">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>snmp-checker.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-6f3d1202e9be1444128bdd8e4bc78121935ec7f0820f954211c39210166e6a3d">+0/-96</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>spire-clusterspiffeid-legacy-cleanup.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-fb9c4497ecd2bfa9d9f799fbc6502599cafd8f846032c0e96ba525308bab279b">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>spire-clusterspiffeids.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-1b904f1e0a25142a5c87b9c3ef3970a1ea341b1abe52d74c5b13957da389c554">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>values.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d4449c7cb70362554b274f81eae5a4b81a8e81df494282e383d1b7ea3871c452">+0/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>README.md</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-de06932c4108090378d4fb67c46fbeda85c5540f131cdafe7acee0a71466f4dc">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>cert-scripts-configmap.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-6cfdb89093e1dc013b04ac606d8bfd64e3079419d3b6c94c3eed6b12531bafbb">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>kustomization.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-c4260176971b950ef1b967a2631b446225071906172f56287c465ad2e29788d9">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>serviceradar-agent.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-750aaa803a43f0993450026e4174b8a7d20fe016b9ff726f154a77a4f0fb4e19">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>serviceradar-snmp-checker.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-384bd9ba241a5f786e439012255b11a15477ac5cde08fcd5c9565f84e4410b22">+0/-116</a>&nbsp; </td> </tr> <tr> <td><strong>kustomization.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-da7153de0d369673a73265d55929b82c3fa51a1c6f6482ad28c1c0e65ffe23db">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>spire-clusterspiffeid-snmp-checker.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-5b31327145f7d255907e5ac483581775830f684c0b213566c54f36b728f9658f">+0/-12</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>kustomization.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-0527e7f19d087f3576d5755a79554797ffbab78b1a7efaa38984b4f3241f6fc9">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>kustomization.yaml</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-ae7d8d4134a595a9d278924988f58e1843ad4d5d24b4df3b2c976dd3610a1b64">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>components.json</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3ae5949d89b0252d10fce9bf950231c8151a73b2154dccfe4e7261acc116582c">+0/-47</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>packages.bzl</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-9bfe2a5141a9e402bb5a5a8fca53b9eea64396ec18108c535392e1054c90b913">+0/-20</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3b9c66bce83ca84468b2bfc976ce6046dd04864bcaef206fd94e9fa769437c5c">+0/-9</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>snmp.json</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-8bc0492d7a06f6e1bb053046ccb6d3b3025f7d3e6a626bf6724df364febfeb05">+0/-23</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>package.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a8bef33e99301dc2c809cc349fbace990de0c79037d1465e7eaaeeac81033e8d">+0/-121</a>&nbsp; </td> </tr> <tr> <td><strong>postinstall.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-ee8f9354c30ed9265d1448ad74541f0b36faa4247eda31271f45a7ea5967a239">+0/-57</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>preremove.sh</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-e9d5244e456d902cb9146fc607b3cb7c9a914a906e548157365377f75be9bec4">+0/-31</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>serviceradar-snmp-checker.service</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-8f3d412951d81da6c87c1dd5ec62cf2dab23440eca43274d013ae33c3aaccaef">+0/-26</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>serviceradar-snmp-checker.spec</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-b29e95ee68a3151965ee19d69ed21f519ddf530dde9dfd1ad8d90e88b48717c7">+0/-65</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-9763df8132fa8d8919489fdfaf2434921b436714eb2aa276dca0ea4f92c02ec5">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>push_loop.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-5f0d59be34ef26b449d7f5fd2b198a29b277936b9708a699f7487415ed6c2785">+0/-89</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>tls.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-534c10f465835ba604a2ed428ec8924f5be332786a3bdb67cc351c800af65cdc">+0/-3</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-9a5d14c1279b52536e0c19fafcbf31ed928b69f8b5986cc86246162ddbc7e334">+0/-22</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>middleware.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d0d6421fff0b200f968959e5313f58a4ce52b7d90e3abe370d26133805b7b2b6">+0/-154</a>&nbsp; </td> </tr> <tr> <td><strong>middleware_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a091ee91cc040185d2fd5fece04600de26efd688440e493ec1fc497b48a6f521">+0/-85</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-5a4e34c46af9419179220fd758c32cc4f9f24d5d58d89b9a7f55b7081f970202">+0/-31</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>identitymap.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a65f0769de3a5f025da1654d9545c7d3c43da843b3c608d96958893766f8ab8e">+0/-470</a>&nbsp; </td> </tr> <tr> <td><strong>identitymap_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-7838a8a0f701320d27842704cc844b4e28592220a5622f7a2880e1d535a3b916">+0/-192</a>&nbsp; </td> </tr> <tr> <td><strong>metadata_hash.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3e0778fc9838e7b7eddadc900530e3dff5e1d2379f4194bbe8cae8a417163935">+0/-30</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>metrics.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-4a3545ba4b8f1d4c1a5d9a1a3b81aa04dcbbf356ef82d264a5bbddcbaabe28c0">+0/-103</a>&nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-4209c87649cefe5bd750d4837626d0cdd9d8586df8581be3402277eb5b273e06">+0/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>errors.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-176f803e97e51c3fd184f09122756cb45cf875caf0be4dc2347876451900d09a">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3e838afce9a84935e04b7ff8fd3e48d5452c21538a3ea1d36e3fd00aa3c30cd0">+0/-45</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>README.md</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-c65d839d23fdf368e8a76d512d76d3df63daf22030623c48ea3a7dee981e4c9b">+0/-13</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>age_graph_metrics.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-2d400ecd96ff77c1379e4a8681763f9ba2dc22790e31a445b7e3ce716e8fbb15">+0/-295</a>&nbsp; </td> </tr> <tr> <td><strong>age_graph_writer.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-2e6c0a5c048582201ffb983889ab9fab6fb1f8d64b91ee3fb65479b2fb2c6195">+0/-1300</a></td> </tr> <tr> <td><strong>age_graph_writer_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-583d7b3d194efad05641ae58185bccf093ffb0e83d3fa2bc9a6352c503874abd">+0/-118</a>&nbsp; </td> </tr> <tr> <td><strong>batch_optimization_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-cac8ebc53144bf9cd9a61b9ed7c11907afc9e3b57574885e6c440276295a8314">+0/-194</a>&nbsp; </td> </tr> <tr> <td><strong>canon_simulation_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-73b73409b3941af4ac860561c87772763feca734fd8ab597f36e5e4047c6bf3c">+0/-345</a>&nbsp; </td> </tr> <tr> <td><strong>capabilities.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-6ecec5065cbadea2f6285ad9ab39ed4906dd94d5b8dc586bf3a544d2121cc7b4">+0/-206</a>&nbsp; </td> </tr> <tr> <td><strong>capabilities_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d964d06970947f12ecef0023b30d65997cfc446d04c274299425c1c12971c921">+0/-71</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>device.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a71b8e62531ef2608845e1f2581bb30c62fe3b77b8a98094723d5cfa0e7571a2">+0/-25</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>device_store.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-40d722882cf0d1b27b15d87cd15166e070641f4e77f720da2db89201c7ccfba9">+0/-280</a>&nbsp; </td> </tr> <tr> <td><strong>device_store_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-8768ba941333f15376041e9abc2080bc00a813c32cb2cef78dac197e346644e3">+0/-209</a>&nbsp; </td> </tr> <tr> <td><strong>device_store_update.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-bebfdd26ec81773366665f5496e6f7af538de7a826443c9b5942a66c7df6c407">+0/-221</a>&nbsp; </td> </tr> <tr> <td><strong>device_store_update_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-faeaf1af263e0a4ac29579fd17652337bc20008e2bbf525f8801b381261a9017">+0/-110</a>&nbsp; </td> </tr> <tr> <td><strong>device_transform.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-ece077c963daf0f46cb4cfe0e938ff22569f0d29da9376f3f78bd5bb8e586836">+0/-238</a>&nbsp; </td> </tr> <tr> <td><strong>device_transform_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a58d6e3f70cb01404143759590961e48032011956bb29fa8a830c741ea15fbb5">+0/-236</a>&nbsp; </td> </tr> <tr> <td><strong>diagnostics.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-8953c27bc3e4d123608f6309ef64305f8ed3044f73b2c922aef4b4fbb2daca74">+0/-60</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>hydrate.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-e27e237716b5830731f55caab246c132a8ba98f3b37fe5e39de3867038941e4d">+0/-328</a>&nbsp; </td> </tr> <tr> <td><strong>hydrate_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-806ca574aab8dd9d007c842838d807534833a38e0d30569f943bb3a6df76d0fe">+0/-130</a>&nbsp; </td> </tr> <tr> <td><strong>identity_engine.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-496f24b3784656e1d6bb97cafe5c528bbecea5a0b74b4be578d3b83e858038c7">+0/-917</a>&nbsp; </td> </tr> <tr> <td><strong>identity_engine_partition_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-77aee244beb622dec723a0a62d2d11785b5b76a9fe5df912ba559227d3f4ba70">+0/-51</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>identity_metrics.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-fcd2f8364d180b314ea4b2676718fd233a91d0c5ef39daac2681cd9dadf885e1">+0/-295</a>&nbsp; </td> </tr> <tr> <td><strong>identity_reconciliation_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-88336acaf0fbf8dde7fff7b003101ff0b61dd2884e8294a960cc5aea22dd5f3b">+0/-41</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>interfaces.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-21496eb3d34ec02e874f36c98cdd2ca7f39130369caf774c672dcf4be1619503">+0/-77</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>matrix.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d96d07bee717be4cb6bd70bbac7c7dd0c2925c710b4025f9e91f8f09fa8162a4">+0/-202</a>&nbsp; </td> </tr> <tr> <td><strong>matrix_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-f4efb37e9df40b006b7b49f57200d604d8fe541349acb6ec8fde947ccb0430c8">+0/-119</a>&nbsp; </td> </tr> <tr> <td><strong>mock_registry.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-1c3085186c5d9b0c552ee50f98a3ff2251904cf3c9adedfd693f16488539f0bb">+0/-326</a>&nbsp; </td> </tr> <tr> <td><strong>ocsf_type_inference.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-316cbf18c65e5cd7e13171c373a97c3c5d6c7ebdd3c275f15993afd47d5d1da2">+0/-365</a>&nbsp; </td> </tr> <tr> <td><strong>promotion_status.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-288cd08accaea9b202bb41b08520fb68b4842a213c7e68b38645395c540d3d82">+0/-166</a>&nbsp; </td> </tr> <tr> <td><strong>promotion_status_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-c2e0d7d349c12f8c129223330b5cba02d420c9d95c94b400c31b977488b873b9">+0/-123</a>&nbsp; </td> </tr> <tr> <td><strong>registry.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-cb61d8f79451b9541de4a8cc0811523a68d15452b2f5971c7618ea5b423cf4ec">+0/-2067</a></td> </tr> <tr> <td><strong>registry_cnpg_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-175c7dc3d844415bcdce3b7654e947aec09346eee22ac4e67487b0b491d46e21">+0/-167</a>&nbsp; </td> </tr> <tr> <td><strong>registry_sync.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-9ac34688947ae8844ad89dc5033b7a3c362a295c2aa8890a51d3666511ed35f0">+0/-184</a>&nbsp; </td> </tr> <tr> <td><strong>registry_sync_metrics.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-2a649f6221a250073cd10d9e226df944fc6d3545f7f0416dce72fd432d168806">+0/-207</a>&nbsp; </td> </tr> <tr> <td><strong>registry_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-f010972d104404be52d2a8e6e784cb56e31194f90795a69571a12696bcbdc075">+0/-1840</a></td> </tr> <tr> <td><strong>registry_timestamp_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-e65872702d3f170b6c76366a22f59b6e9abae81a59456acd7a7733f1b980c398">+0/-54</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>retraction_processing_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-ada575691eeb382afc69b92133daac730cedca73481463ba41f81676bf745b22">+0/-264</a>&nbsp; </td> </tr> <tr> <td><strong>service_device_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-2996ff7907c1495651fb6a345130a6ebdca6d8d03558e0d9e33542b3acebf2be">+0/-529</a>&nbsp; </td> </tr> <tr> <td><strong>trigram_index.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-d15089251c1f11295acd5dbb6ca83aecaa384f91e49522b87e08f33ec7fd5138">+0/-210</a>&nbsp; </td> </tr> <tr> <td><strong>trigram_index_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-5c9a46ee3386c76a6fc7498e31ce304a41a5716bbc725ec36c62874983e8db5b">+0/-36</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-21c0fe512f70c4e838fd614612e1d59da6a8c235798a645fb69f578cf703994e">+0/-16</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>metrics.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-fbf5f57250a6d2b1cd9c033e96d7414ca7a90369ffbc07a8117e249d7f9d1db1">+0/-156</a>&nbsp; </td> </tr> <tr> <td><strong>planner.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-e10a578c6efce8ae42e5d451f1b3bb978fd6c1e1dec254a21cdfab89685d2970">+0/-435</a>&nbsp; </td> </tr> <tr> <td><strong>planner_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-5e568fe0ba96be717ebc8337367ce66741d0d8f144f06f07b1a5ec002928d324">+0/-116</a>&nbsp; </td> </tr> <tr> <td><strong>srql_client.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-4c905fc21b455f1c5c252fbe6e88336a34b2464350f58c933e3c5007d2cad30e">+0/-176</a>&nbsp; </td> </tr> <tr> <td><strong>BUILD.bazel</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-47b30fe972944b35a3c457ff5691fba8d89aa7d65755209a9d8136bdcdcf1489">+0/-61</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>armis_netbox_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-6c09f2ea7dc15ea7debda80b6c359075fc0ae2cf5d12eac07d053301c5d5af51">+0/-192</a>&nbsp; </td> </tr> <tr> <td><strong>blacklist.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-3de1ca374e643ddd0ec51913cbb994891d30bd5b04236915349640244ed4da75">+0/-152</a>&nbsp; </td> </tr> <tr> <td><strong>blacklist_test.go</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-a15e4509d91517ab04f859345a717f2f7a74c4144f471fc2d61fa2615463231b">+0/-181</a>&nbsp; </td> </tr> <tr> <td><strong>Additional files not shown</strong></td> <td><a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td> </tr> </table></details></td></tr></tbody></table> </details> ___
qodo-code-review[bot] commented 2026-01-18 03:02:10 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/2328#issuecomment-3764823958
Original created: 2026-01-18T03:02:10Z

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
Nil config handling: NewRegistryPublisher accepts config *StreamConfig without validating non-nil, which may
allow a nil dereference later if downstream code assumes p.config is always set.

Referred Code
// NewRegistryPublisher creates a new publisher backed by the db service.
func NewRegistryPublisher(dbService db.Service, config *StreamConfig) (Publisher, error) {
	if dbService == nil {
		return nil, ErrDatabaseServiceRequired
	}

	return &RegistryPublisher{
		dbService: dbService,
		config:    config,
	}, nil

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
- Requires Further Human Verification
🏷️ - Compliance label
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/2328#issuecomment-3764823958 Original created: 2026-01-18T03:02:10Z --- ## PR Compliance Guide 🔍 <!-- https://github.com/carverauto/serviceradar/commit/029098bb92dab9fda79ba1eb1fe06c2acce20879 --> Below is a summary of compliance checks for this PR:<br> <table><tbody><tr><td colspan='2'><strong>Security Compliance</strong></td></tr> <tr><td>🟢</td><td><details><summary><strong>No security concerns identified</strong></summary> No security vulnerabilities detected by AI analysis. Human verification advised for critical code. </details></td></tr> <tr><td colspan='2'><strong>Ticket Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary>🎫 <strong>No ticket provided </strong></summary> - [ ] Create ticket/issue <!-- /create_ticket --create_ticket=true --> </details></td></tr> <tr><td colspan='2'><strong>Codebase Duplication Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary><strong>Codebase context is not defined </strong></summary> Follow the <a href='https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/'>guide</a> to enable codebase context checks. </details></td></tr> <tr><td colspan='2'><strong>Custom Compliance</strong></td></tr> <tr><td rowspan=5>🟢</td><td> <details><summary><strong>Generic: Comprehensive Audit Trails</strong></summary><br> **Objective:** To create a detailed and reliable record of critical system actions for security analysis <br>and compliance.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Meaningful Naming and Self-Documenting Code</strong></summary><br> **Objective:** Ensure all identifiers clearly express their purpose and intent, making code <br>self-documenting<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Error Handling</strong></summary><br> **Objective:** To prevent the leakage of sensitive system information through error messages while <br>providing sufficient detail for internal debugging.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Logging Practices</strong></summary><br> **Objective:** To ensure logs are useful for debugging and auditing without exposing sensitive <br>information like PII, PHI, or cardholder data.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Security-First Input Validation and Data Handling</strong></summary><br> **Objective:** Ensure all data inputs are validated, sanitized, and handled securely to prevent <br>vulnerabilities<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td rowspan=1>⚪</td> <td><details> <summary><strong>Generic: Robust Error Handling and Edge Case Management</strong></summary><br> **Objective:** Ensure comprehensive error handling that provides meaningful context and graceful <br>degradation<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/2328/files#diff-e27214bea0ae4e8b6aa863949ef883c936437a5021cedbf6c3ee5bdfda3a24dcR35-R44'><strong>Nil config handling</strong></a>: <code>NewRegistryPublisher</code> accepts <code>config *StreamConfig</code> without validating non-nil, which may <br>allow a nil dereference later if downstream code assumes <code>p.config</code> is always set.<br> <details open><summary>Referred Code</summary> ```go // NewRegistryPublisher creates a new publisher backed by the db service. func NewRegistryPublisher(dbService db.Service, config *StreamConfig) (Publisher, error) { if dbService == nil { return nil, ErrDatabaseServiceRequired } return &RegistryPublisher{ dbService: dbService, config: config, }, nil ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td align="center" colspan="2"> - [ ] Update <!-- /compliance --update_compliance=true --> </td></tr></tbody></table> <details><summary>Compliance status legend</summary> 🟢 - Fully Compliant<br> 🟡 - Partial Compliant<br> 🔴 - Not Compliant<br> ⚪ - Requires Further Human Verification<br> 🏷️ - Compliance label<br> </details>
qodo-code-review[bot] commented 2026-01-18 03:03:08 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/2328#issuecomment-3764826785
Original created: 2026-01-18T03:03:08Z

PR Code Suggestions

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Clarify the shift to disabled-by-default SNMP

The PR introduces a breaking change by disabling SNMP collection by default
across all deployment configurations. This should be explicitly mentioned in the
PR description to prevent unexpected loss of monitoring for users.

Examples:

helm/serviceradar/files/serviceradar-config.yaml [628-633]
  snmp.json: |
      {
        "enabled": false,
        "timeout": "30s",
        "targets": []
      }
k8s/demo/base/configmap.yaml [569-574]
    snmp.json: |
      {
        "enabled": false,
        "timeout": "30s",
        "targets": []
      }

Solution Walkthrough:

Before:

# in helm/serviceradar/files/serviceradar-config.yaml
snmp.json: |
    {
      "node_address": "localhost:50051",
      "listen_addr": ":50054",
      "partition": "k8s",
      "security": { ... },
      "timeout": "30s",
      "targets": [
        {
          "name": "test-router",
          "host": "192.168.1.1",
          ...
        }
      ]
    }

After:

# in helm/serviceradar/files/serviceradar-config.yaml
snmp.json: |
    {
      "enabled": false,
      "timeout": "30s",
      "targets": []
    }

Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies a significant, undocumented breaking change where SNMP is now disabled by default, which could cause users to silently lose monitoring upon upgrade.

High
Possible issue
Fix wrong test variable usage

In TestPublishBatchDevices, replace the undefined variable registryPublisher
with the correctly initialized publisher variable to fix a compilation error.

pkg/mapper/publisher_test.go [361]

-err = registryPublisher.PublishBatchDevices(ctx, devices)
+err = publisher.PublishBatchDevices(ctx, devices)

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 9

__

Why: The suggestion fixes a clear bug where an undefined variable registryPublisher is used instead of publisher, which would cause a compilation error in the test.

High
General
Check for nil config

In NewRegistryPublisher, add a nil check for the config parameter and return an
error if it is nil to prevent potential panics.

pkg/mapper/publisher.go [36-45]

 func NewRegistryPublisher(dbService db.Service, config *StreamConfig) (Publisher, error) {
     if dbService == nil {
         return nil, ErrDatabaseServiceRequired
+    }
+    if config == nil {
+        return nil, ErrStreamConfigRequired
     }
 
     return &RegistryPublisher{
         dbService: dbService,
         config:    config,
     }, nil
 }

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 6

__

Why: The suggestion adds a nil check for the config parameter, which improves robustness by preventing potential nil pointer dereferences later.

Low
  • Update
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/2328#issuecomment-3764826785 Original created: 2026-01-18T03:03:08Z --- ## PR Code Suggestions ✨ <!-- 029098b --> Explore these optional code suggestions: <table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=1>High-level</td> <td> <details><summary>Clarify the shift to disabled-by-default SNMP</summary> ___ **The PR introduces a breaking change by disabling SNMP collection by default <br>across all deployment configurations. This should be explicitly mentioned in the <br>PR description to prevent unexpected loss of monitoring for users.** ### Examples: <details> <summary> <a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-b8c8d2484103b11c396bc60d290c81df63c30a0f81103eceb5852a17e1d2b5e3R628-R633">helm/serviceradar/files/serviceradar-config.yaml [628-633]</a> </summary> ```yaml snmp.json: | { "enabled": false, "timeout": "30s", "targets": [] } ``` </details> <details> <summary> <a href="https://github.com/carverauto/serviceradar/pull/2328/files#diff-f4548beaa0a3a01a46971c82c5647a0f3f49eb38d66dd939d06d19018173fcd6R569-R574">k8s/demo/base/configmap.yaml [569-574]</a> </summary> ```yaml snmp.json: | { "enabled": false, "timeout": "30s", "targets": [] } ``` </details> ### Solution Walkthrough: #### Before: ```yaml # in helm/serviceradar/files/serviceradar-config.yaml snmp.json: | { "node_address": "localhost:50051", "listen_addr": ":50054", "partition": "k8s", "security": { ... }, "timeout": "30s", "targets": [ { "name": "test-router", "host": "192.168.1.1", ... } ] } ``` #### After: ```yaml # in helm/serviceradar/files/serviceradar-config.yaml snmp.json: | { "enabled": false, "timeout": "30s", "targets": [] } ``` <details><summary>Suggestion importance[1-10]: 9</summary> __ Why: The suggestion correctly identifies a significant, undocumented breaking change where SNMP is now disabled by default, which could cause users to silently lose monitoring upon upgrade. </details></details></td><td align=center>High </td></tr><tr><td rowspan=1>Possible issue</td> <td> <details><summary>Fix wrong test variable usage</summary> ___ **In <code>TestPublishBatchDevices</code>, replace the undefined variable <code>registryPublisher</code> <br>with the correctly initialized <code>publisher</code> variable to fix a compilation error.** [pkg/mapper/publisher_test.go [361]](https://github.com/carverauto/serviceradar/pull/2328/files#diff-d517c045db1ac81166cd07733bf1d4bebe1b33b4ac9648a109dbe1280650cc4fR361-R361) ```diff -err = registryPublisher.PublishBatchDevices(ctx, devices) +err = publisher.PublishBatchDevices(ctx, devices) ``` `[To ensure code accuracy, apply this suggestion manually]` <details><summary>Suggestion importance[1-10]: 9</summary> __ Why: The suggestion fixes a clear bug where an undefined variable `registryPublisher` is used instead of `publisher`, which would cause a compilation error in the test. </details></details></td><td align=center>High </td></tr><tr><td rowspan=1>General</td> <td> <details><summary>Check for nil config</summary> ___ **In <code>NewRegistryPublisher</code>, add a <code>nil</code> check for the <code>config</code> parameter and return an <br>error if it is <code>nil</code> to prevent potential panics.** [pkg/mapper/publisher.go [36-45]](https://github.com/carverauto/serviceradar/pull/2328/files#diff-e27214bea0ae4e8b6aa863949ef883c936437a5021cedbf6c3ee5bdfda3a24dcR36-R45) ```diff func NewRegistryPublisher(dbService db.Service, config *StreamConfig) (Publisher, error) { if dbService == nil { return nil, ErrDatabaseServiceRequired + } + if config == nil { + return nil, ErrStreamConfigRequired } return &RegistryPublisher{ dbService: dbService, config: config, }, nil } ``` `[To ensure code accuracy, apply this suggestion manually]` <details><summary>Suggestion importance[1-10]: 6</summary> __ Why: The suggestion adds a `nil` check for the `config` parameter, which improves robustness by preventing potential nil pointer dereferences later. </details></details></td><td align=center>Low </td></tr> <tr><td align="center" colspan="2"> - [ ] Update <!-- /improve_multi --more_suggestions=true --> </td><td></td></tr></tbody></table>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar!2687
No description provided.