[SLO] Update user in audit trail for enable/disable slo (#218739)

## Summary

Update user when an SLO is enabled or disabled.
This commit is contained in:
Bailey Cash 2025-04-22 17:41:25 -04:00 committed by GitHub
parent 25ffb0d1d9
commit 6e67bf46a4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 18 additions and 7 deletions

View file

@ -19,15 +19,16 @@ export const disableSLORoute = createSloServerRoute({
},
},
params: manageSLOParamsSchema,
handler: async ({ response, request, params, logger, plugins, getScopedClients }) => {
handler: async ({ context, response, request, params, logger, plugins, getScopedClients }) => {
await assertPlatinumLicense(plugins);
const { repository, transformManager, summaryTransformManager } = await getScopedClients({
request,
logger,
});
const manageSLO = new ManageSLO(repository, transformManager, summaryTransformManager);
const core = await context.core;
const userId = core.security.authc.getCurrentUser()?.username!;
const manageSLO = new ManageSLO(repository, transformManager, summaryTransformManager, userId);
await manageSLO.disable(params.path.id);
return response.noContent();

View file

@ -19,7 +19,7 @@ export const enableSLORoute = createSloServerRoute({
},
},
params: manageSLOParamsSchema,
handler: async ({ response, request, params, logger, plugins, getScopedClients }) => {
handler: async ({ context, response, request, params, logger, plugins, getScopedClients }) => {
await assertPlatinumLicense(plugins);
const { repository, transformManager, summaryTransformManager } = await getScopedClients({
@ -27,7 +27,9 @@ export const enableSLORoute = createSloServerRoute({
logger,
});
const manageSLO = new ManageSLO(repository, transformManager, summaryTransformManager);
const core = await context.core;
const userId = core.security.authc.getCurrentUser()?.username!;
const manageSLO = new ManageSLO(repository, transformManager, summaryTransformManager, userId);
await manageSLO.enable(params.path.id);

View file

@ -26,7 +26,12 @@ describe('ManageSLO', () => {
mockTransformManager = createTransformManagerMock();
mockSummaryTransformManager = createSummaryTransformManagerMock();
manageSLO = new ManageSLO(mockRepository, mockTransformManager, mockSummaryTransformManager);
manageSLO = new ManageSLO(
mockRepository,
mockTransformManager,
mockSummaryTransformManager,
'some-user-id'
);
});
describe('Enable', () => {

View file

@ -13,7 +13,8 @@ export class ManageSLO {
constructor(
private repository: SLORepository,
private transformManager: TransformManager,
private summaryTransformManager: TransformManager
private summaryTransformManager: TransformManager,
private userId: string
) {}
async enable(sloId: string) {
@ -25,6 +26,7 @@ export class ManageSLO {
await this.summaryTransformManager.start(getSLOSummaryTransformId(slo.id, slo.revision));
await this.transformManager.start(getSLOTransformId(slo.id, slo.revision));
slo.enabled = true;
slo.updatedBy = this.userId;
slo.updatedAt = new Date();
await this.repository.update(slo);
}
@ -38,6 +40,7 @@ export class ManageSLO {
await this.summaryTransformManager.stop(getSLOSummaryTransformId(slo.id, slo.revision));
await this.transformManager.stop(getSLOTransformId(slo.id, slo.revision));
slo.enabled = false;
slo.updatedBy = this.userId;
slo.updatedAt = new Date();
await this.repository.update(slo);
}