From this one example it is hard for me to see where you are going in
terms of user-visible features. Can you flesh out the kinds of use
cases you would expect to enable with such an infrastructure? Would
they be roughly comparable to the features of the old Audit Trail
plugin, or going beyond that? Is there any relationship to
JEP-304/308?
Many corporations are bound to regulatory requirements where certain actions must be restricted to certain people and must be proveable in some fashion to regulators. One way to help close any gaps in security issues or poor role definitions technically is to maintain an immutable audit log of actions performed in a system including information such as who did it, when did it occur, what systems were affected, and any relevant data used in the change. Then an audit can be done by simply checking the audit log to see if anyone is performing unauthorized activity. Automatic security monitoring software can be used with these audit logs to detect security problems as they occur rather than finding out much later. There exist a couple plugins that add some audit information to Jenkins: Job Config History, Audit Trail, and Audit to Database. One key issue with these plugins (of those that are maintained) do not provide a way to centralize these audit logs. Another issue is that by utilizing the underlying java.util.logging framework, these frequent audit events can hit known performance issues with JUL.
Using Apache Log4j Audit, this project will define several base audit events along with configurability to where these audit events will be logged (e.g., syslog, log file, database, etc.). Log4j Audit provides an easy to use API for logging audit events along with an event catalog editor that itself keeps an audit trail in Git. Dynamic audit events can themselves be audited when configured with a Postgres database (or potentially any SQL-compatible RDBMS). As a side effect of making this a core feature of Jenkins, this also opens up the opportunity to standardize on using Log4j 2.x as the standard diagnostic logging API instead of using JUL.
There are several event domains that should be covered by this project. These domains include builds/runs, jobs, tasks in those jobs, projects, the build queue, Saveable config files, computers, nodes/agents (static, dynamic, and ephemeral), cloud provisioning, users, and workspaces. The types of audit events for these domains generally revolve around CRUD operations, start/stop information, and other high level events. In each audit event, the user responsible should be included as well as a unique correlation/request ID added to each HTTP request.
This project is only being scoped around Jenkins. Thus, things like keeping audit logs of Git or SCMs themselves is out of scope. This project does not intend to bundle a database for use with storing logs.
Regars8ng the Audit, I believe that integrarion of SecurityListener into Audit Trail could be a good first change. Then we may get an engine for Jenkins events.
Integrating fresh new tools is a valiant goal, but maybe we need to discuss it a bit more before implementing
--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr3H%3Dd%3D%3DU81jobX9Fe5tJg2_X-j2hf3qLxUhB%2B9BNL-aBQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Doesn't that just mean the listeners need to improved?
Do you have specific examples?
--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4ox4soNv29ARgfRrzDZeWq%2Bx7BXA5hk5p39tFX%2BNzrNsBg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAA0qCNy7WKOi4oJfh_kV5kMeiRFP2y_hAsg%2Bg-TX4uYrd98WJA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
If you have to wonder, the answer is yes. :-)