Skip to content

Conversation

@labkey-nicka
Copy link
Contributor

@labkey-nicka labkey-nicka commented Sep 22, 2025

Rationale

Add auditing of plate sets, plates, and plate assay import events.

Related Pull Requests

Changes

  • Add audit event handlers for Plate and PlateSet
  • Audit plate set creation, archive, and restore events
  • Audit plate creation and assay import
  • Audit plate data changes for wells
  • Introduce ValidateRunImportedPlateTrigger to reduce burden of validation checks to a single call

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive auditing functionality for plate sets, plates, and plate assay import events. The changes introduce audit event handlers to track creation, archival, restoration, and import events for plates and plate sets, while also consolidating validation logic for plates used in assay runs.

  • Add audit event providers and events for tracking plate and plate set lifecycle changes
  • Implement comprehensive auditing for plate/plate set operations including creation, deletion, archival, and assay imports
  • Introduce ValidateRunImportedPlateTrigger to consolidate plate validation checks into a single trigger

Reviewed Changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
WellTable.java Updates column naming from SampleID to SampleId and adds audit configuration
PlateTable.java Adds plate trigger factory and audit transaction management for deletions
PlateBean.java Adds entity properties support with includeEntityProperties parameter
WellTriggerFactory.java Adds new validation trigger and updates column references to use SampleId
WellData.java Updates column reference to use SampleId naming
PlateTriggerFactory.java New trigger factory for handling plate deletion auditing
PlateMapExcelWriter.java Updates excluded fields to use SampleId naming
PlateSetAuditProvider.java New audit provider for plate set events
PlateSetAuditEvent.java New audit event class for plate set operations
PlateAuditProvider.java New audit provider for plate events
PlateAuditEvent.java New audit event class for plate operations
PlateSetImpl.java Adds parent plate set ID property for auditing
PlateManagerTest.java Updates method calls and column references for consistency
PlateManager.java Major updates adding audit event handling and transaction management
PlateImpl.java Adds source plate ID property and user accessor methods
AssayPlateMetadataServiceImpl.java Adds plate import audit events and minor improvements
PlateSetDataGenerator.java Updates column reference to use SampleId naming
PlateController.java Minor variable name improvement
AssayModule.java Registers new audit type providers
Trigger.java Removes outdated documentation comments
AuditTypeEvent.java Minor code formatting improvements
AbstractAuditTypeProvider.java Code cleanup and formatting improvements
AbstractAssayTsvDataHandler.java Minor import cleanup and null check improvement
Comments suppressed due to low confidence (1)

assay/src/org/labkey/assay/plate/audit/PlateSetAuditEvent.java:1

  • [nitpick] The audit record maps are hardcoded to only track the 'Archived' field. Consider creating a more comprehensive audit record that captures other relevant plate set properties that may have changed during the archive/restore operation.
package org.labkey.assay.plate.audit;

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@labkey-nicka labkey-nicka merged commit cf8ca9b into develop Sep 29, 2025
7 of 18 checks passed
@labkey-nicka labkey-nicka deleted the fb_plate_audit branch September 29, 2025 18:36
XingY pushed a commit that referenced this pull request Sep 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants