Skip to content

Audit logging plugin for Jenkins based on Apache Log4j Audit

License

Notifications You must be signed in to change notification settings

davidolorundare/audit-log-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Audit Logging Plugin

Project Status

Build Status License: MIT

Project Overview

In Jenkins, there are several categories of user-initiated actions, such as:

  • Starting and/or stopping a Jenkins build.
  • Creating, Modifying and/or Deleting a Jenkins Job.
  • Performing a change to the Jenkins configuration settings.
  • TODO: Add some other user-actions

During the operation of Jenkins other events and actions occur which are not initiated by the user, for example:

  • Jenkins system agent joins or leaves a Jenkins cluster.
  • Authentication and Authorization of a new user succeeds or fails.
  • Generation of system events due to a build succeeding or failing.
  • Build-specific Jenkins events occur
  • TODO: Add some others non-user or system actions

The goal of this project is to utilize Apache Log4j Audit, which is an audit logging framework, to implement the logging of audit events within the Jenkins server. This requires the following tasks, among other project objectives:

  • Identification and definition of the audit events of importance.
  • Performing updates to the Jenkins Core system to support any additional event-listeners needed, for example, for acquiring audit information.
  • Creation of new audit events, with the provision of customizable interfaces for user-defined configurations. For example;
    • Enable users to configure how audit logs are stored and used.
    • Provide admin settings to configure and add a relational database or local directory to write log files into.
    • Enable users to configure and add an external syslog server.
    • TODO: Add some other use cases
  • TODO: Add more use cases and applications of the plugin

Getting Started: Prerequisites

  • Make sure you have a JIRA account.
  • Make sure you have a GitHub account.
  • If you're planning to implement a new feature, it makes sense to discuss your changes on Gitter first. This way you can make sure you're not wasting your time on something that isn't considered to be in the audit-logging project's scope.
  • Submit a ticket for your issue, assuming one does not already exist.
    • Clearly describe the issue, including steps to reproduce when it is a bug.
    • Make sure you fill in the earliest version that you know has the issue.
  • Fork the repository on GitHub, take a look at the project's JIRA page and Wiki.

Getting Started: Setup

TODO: - how to setup/start the plugin with Jenkins, etc

Usage

TODO: - demo, screenshot, gifs of running audit logging, etc

Contributing to the Audit Log Project

We accept Pull Requests via GitHub. The gitter is the main channel of communication for contributors.

Before you dig right into the code, there are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things and it makes applying PRs easier for us:

  • Create a topic branch from where you want to base your work (this is usually the master branch). Push your changes to a topic branch in your fork of the repository.
  • Make commits of logical units.
  • Respect the original code style: by using the same codestyle, patches should only highlight the actual difference, not being disturbed by any formatting issues:
    • Only use spaces for indentation.
    • Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted, create a separate PR for this change.
    • Check for unnecessary whitespace with git diff --check before committing.
  • Make sure your commit messages are in the proper format. Your commit message should contain the key of the JIRA issue.
[JENKINS-XXX] - Subject of the JIRA Ticket

 Optional supplemental description.
  • Make sure you have added the necessary tests (JUnit/IT) for your changes.
  • Run all the tests with mvn -Prun-its verify to assure nothing else was accidentally broken.
  • Submit a pull request to the repository in the Jenkins project.
  • Update your JIRA ticket and include a link to the pull request in the ticket.
  • For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. In this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number.

Additional Resources

  • TODO: - Add more resources relevant to the plugin and its development.

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.3%
  • HTML 0.7%