Change the behavior of the Contents to avoid filtering when it's not needed. And change the way it's anonymized by delegating it to the component to avoid losing the structure of the information.
Should be filtered
- NodesContent: include labels and filesystem path
- AgentsConfigFile (secrets encrypted but maybe other sensitive info)
- BuildQueue: name of the job
- ConfigFileComponent (secrets encrypted but maybe other sensitive info)
- JVMProcessSystemMetricsContent (environment variables)
- NetworInterfaces (ips)
- NodeMonitors (computer name)
- SystemConfiguration Agents and Master (user running)
- UpdateCenter (proxy information: urls)
Shouldn’t be filtered
Out of scope, it needs some refactor of classes. To tackle on another ticketDone because i needed the infra for other components.
Avoid anonymizing the labels, the structure of the files under the control of the plugin (.md files, and information files). Analyze what values should be anonymized.
The contents generated on the fly are going to extend the PrefilteredContent by creating a new PrefilteredPrintedContent and they are going to filter the information by themselves.
The ones that are being filtered and shouldn't to will override the shouldBeFiltered method to avoid that.
- The support-core plugin is changed by creating a new PrefilteredPrintedContent that extends PrefilteredContent
- The contents that don't need to be filtered don't do that by overriding shouldBeFiltered (false)
- The contents that need to be filtered extends from a PrefilteredContent, most likely PrefilteredPrintedContent and do the filtering by themselves implementing the new writeTo method. Look at: https://github.com/jenkinsci/support-core-plugin/blob/e2d79249818d41111ea96979a710ac3404018f78/src/main/java/com/cloudbees/jenkins/support/api/StringContent.java#L58 avoiding to filter the structure of the markdown or whatever is going to affect the comprehension of the content.
- Some tests are implemented for:
- A content that was filtered and now it's not
- A content that was filtered affecting the structure (markdown) and now it's not affected
- The PR in support-core is merged