diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index d1e5af2dfb..208e60e1fc 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "6.58.6", + "version": "6.58.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "6.58.6", + "version": "6.58.7", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index b4493de8f6..b19c55b9cd 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "6.58.6", + "version": "6.58.7", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index eea89a45eb..c0df6235dd 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,11 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version 6.58.7 +*Released*: 29 August 2025 +- Update default audit level + - Add `Assay Result Events` audit event type + ### version 6.58.6 *Released*: 26 August 2025 - Merge from release25.7-SNAPSHOT to develop diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index fb68a7a75e..79fca6f872 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -566,6 +566,7 @@ import { ItemsLegend } from './internal/components/chart/ItemsLegend'; import { AuditDetailsModel, TimelineEventModel } from './internal/components/auditlog/models'; import { ASSAY_AUDIT_QUERY, + ASSAY_RESULT_AUDIT_QUERY, AUDIT_EVENT_TYPE_PARAM, CONTAINER_AUDIT_QUERY, DATACLASS_DATA_UPDATE_AUDIT_QUERY, @@ -1153,6 +1154,7 @@ export { areUnitsCompatible, arrayEquals, ASSAY_AUDIT_QUERY, + ASSAY_RESULT_AUDIT_QUERY, ASSAY_DESIGNER_ROLE, AssayContext, AssayContextConsumer, diff --git a/packages/components/src/internal/components/auditlog/constants.ts b/packages/components/src/internal/components/auditlog/constants.ts index 118a7c50c6..1d80c3ff7d 100644 --- a/packages/components/src/internal/components/auditlog/constants.ts +++ b/packages/components/src/internal/components/auditlog/constants.ts @@ -65,6 +65,12 @@ export const ASSAY_AUDIT_QUERY: AuditQuery = { value: 'assayauditevent', label: 'Assay Events', }; +export const ASSAY_RESULT_AUDIT_QUERY: AuditQuery = { + hasDetail: true, + hasTransactionId: true, + label: 'Assay Result Events', + value: 'assayresultauditevent', +}; export const WORKFLOW_AUDIT_QUERY: AuditQuery = { hasDetail: true, label: 'Sample Workflow Events', diff --git a/packages/components/src/internal/components/auditlog/utils.test.ts b/packages/components/src/internal/components/auditlog/utils.test.ts index 10421afab5..c5ca63ecb1 100644 --- a/packages/components/src/internal/components/auditlog/utils.test.ts +++ b/packages/components/src/internal/components/auditlog/utils.test.ts @@ -16,6 +16,7 @@ import { import { getAuditQueries, getEventDataValueDisplay, getTimelineEntityUrl } from './utils'; import { ASSAY_AUDIT_QUERY, + ASSAY_RESULT_AUDIT_QUERY, DATACLASS_DATA_UPDATE_AUDIT_QUERY, INVENTORY_AUDIT_QUERY, NOTEBOOK_AUDIT_QUERY, @@ -28,9 +29,10 @@ import { describe('getAuditQueries', () => { test('LKS starter', () => { const auditQueries = getAuditQueries(TEST_LKS_STARTER_MODULE_CONTEXT); - expect(auditQueries.length).toBe(13); + expect(auditQueries.length).toBe(14); expect(auditQueries.findIndex(entry => entry === ASSAY_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); - expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(11); + expect(auditQueries.findIndex(entry => entry === ASSAY_RESULT_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); + expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(12); expect(auditQueries.findIndex(entry => entry === WORKFLOW_AUDIT_QUERY)).toBe(-1); expect(auditQueries.findIndex(entry => entry === SOURCE_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); }); @@ -40,14 +42,15 @@ describe('getAuditQueries', () => { expect(auditQueries.length).toBe(12); expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(10); expect(auditQueries.findIndex(entry => entry === ASSAY_AUDIT_QUERY)).toBe(-1); + expect(auditQueries.findIndex(entry => entry === ASSAY_RESULT_AUDIT_QUERY)).toBe(-1); expect(auditQueries.findIndex(entry => entry === WORKFLOW_AUDIT_QUERY)).toBe(-1); expect(auditQueries.findIndex(entry => entry === SOURCE_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); }); test('LKSM professional', () => { const auditQueries = getAuditQueries(TEST_LKSM_PROFESSIONAL_MODULE_CONTEXT); - expect(auditQueries.length).toBe(16); - expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(14); + expect(auditQueries.length).toBe(17); + expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(15); expect(auditQueries.findIndex(entry => entry === ASSAY_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === WORKFLOW_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === SOURCE_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); @@ -69,9 +72,10 @@ describe('getAuditQueries', () => { }, }; const auditQueries = getAuditQueries(moduleContext); - expect(auditQueries.length).toBe(17); - expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(15); + expect(auditQueries.length).toBe(18); + expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(16); expect(auditQueries.findIndex(entry => entry === ASSAY_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); + expect(auditQueries.findIndex(entry => entry === ASSAY_RESULT_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === WORKFLOW_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === NOTEBOOK_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === NOTEBOOK_REVIEW_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); diff --git a/packages/components/src/internal/components/auditlog/utils.ts b/packages/components/src/internal/components/auditlog/utils.ts index 1a99de4cf0..3e17826437 100644 --- a/packages/components/src/internal/components/auditlog/utils.ts +++ b/packages/components/src/internal/components/auditlog/utils.ts @@ -32,13 +32,17 @@ import { SOURCE_AUDIT_QUERY, WORKFLOW_AUDIT_QUERY, REPORT_AUDIT_QUERY, + ASSAY_RESULT_AUDIT_QUERY, } from './constants'; export function getAuditQueries(ctx: ModuleContext): AuditQuery[] { const queries = [...COMMON_AUDIT_QUERIES]; if (isProductFoldersEnabled(ctx)) queries.push(CONTAINER_AUDIT_QUERY); if (isWorkflowEnabled(ctx)) queries.push(WORKFLOW_AUDIT_QUERY); - if (isAssayEnabled(ctx)) queries.push(ASSAY_AUDIT_QUERY); + if (isAssayEnabled(ctx)) { + queries.push(ASSAY_AUDIT_QUERY); + queries.push(ASSAY_RESULT_AUDIT_QUERY); + } if (isSampleManagerEnabled(ctx) && !isRegistryEnabled(ctx)) queries.push(SOURCE_AUDIT_QUERY); if (isRegistryEnabled(ctx)) { queries.push(DATACLASS_DATA_UPDATE_AUDIT_QUERY);