Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
a74e49d
Support rrule for task scheduling
ersin-erdal Apr 9, 2025
6163f7e
remove redundant return
ersin-erdal Apr 9, 2025
20ecece
add functional tests
ersin-erdal Apr 11, 2025
c29a08e
[CI] Auto-commit changed files from 'node scripts/styled_components_m…
kibanamachine Apr 11, 2025
de20db1
[CI] Auto-commit changed files from 'node scripts/eslint --no-cache -…
kibanamachine Apr 11, 2025
65f0960
fix linting
ersin-erdal Apr 11, 2025
2dde5f6
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal Apr 11, 2025
717cadb
fix linter
ersin-erdal Apr 11, 2025
72b108e
[CI] Auto-commit changed files from 'node scripts/check_mappings_upda…
kibanamachine Apr 11, 2025
38e69ef
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal Apr 11, 2025
c9e71ba
[CI] Auto-commit changed files from 'node scripts/jest_integration -u…
kibanamachine Apr 11, 2025
5f6fad9
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal Apr 11, 2025
4a04b90
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal Apr 14, 2025
249f14c
set second to [0]
ersin-erdal Apr 15, 2025
4c60d8e
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal Apr 15, 2025
4a14142
testing schedule is more resilient
ersin-erdal Apr 15, 2025
4ec1bca
remove "only"
ersin-erdal Apr 15, 2025
1275f1e
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal Apr 16, 2025
8aff2c9
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal Apr 16, 2025
850ec64
throw when interval is not provided for the next run calculation
ersin-erdal Apr 28, 2025
10c40e5
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal Apr 28, 2025
af75dfb
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal Apr 28, 2025
95cf333
[CI] Auto-commit changed files from 'node scripts/jest_integration -u…
kibanamachine Apr 28, 2025
d5227aa
update read me
ersin-erdal Apr 28, 2025
2a1482e
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal Apr 28, 2025
62fe072
update read me
ersin-erdal Apr 28, 2025
0f0685e
export Frequency and Weekday from TM
ersin-erdal Apr 28, 2025
f039e51
add rrule examples
ersin-erdal Apr 29, 2025
e75e796
fix rrule example
ersin-erdal Apr 29, 2025
626cf01
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal May 2, 2025
fbb3f85
remove mappings
ersin-erdal May 2, 2025
f361058
remove mappings
ersin-erdal May 2, 2025
7099229
[CI] Auto-commit changed files from 'node scripts/check_mappings_upda…
kibanamachine May 2, 2025
5398116
remove schema from v4
ersin-erdal May 2, 2025
5a800d5
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal May 2, 2025
8faaf40
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal May 3, 2025
5c55c02
Merge branch 'main' into 216308-support-rrule-for-task-scheduling
ersin-erdal May 5, 2025
0253ced
add explicit error log when the next run at cannot be calculated
ersin-erdal May 5, 2025
590e659
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal May 5, 2025
3834eaf
[CI] Auto-commit changed files from 'node scripts/styled_components_m…
kibanamachine May 5, 2025
c7e26f0
add missing logger
ersin-erdal May 5, 2025
8455d3c
Merge branch '216308-support-rrule-for-task-scheduling' of github.com…
ersin-erdal May 5, 2025
bbea405
fix unit test
ersin-erdal May 5, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ export const getNextRun = ({
interval,
}: {
startDate?: Date | null;
interval: string;
interval?: string;
}) => {
if (!interval) {
throw new Error('Interval is required to calculate next run');
}
return moment(startDate || new Date())
.add(parseDuration(interval), 'ms')
.toISOString();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,33 @@ describe('Task Runner', () => {
).toHaveBeenCalled();
});

test('throws error when schedule.interval is not provided', async () => {
mockGetAlertFromRaw.mockReturnValue({ ...mockedRuleTypeSavedObject, schedule: {} } as Rule);
encryptedSavedObjectsClient.getDecryptedAsInternalUser.mockResolvedValue({
...mockedRawRuleSO,
attributes: { ...mockedRawRuleSO.attributes, schedule: {} },
});
const taskRunner = new TaskRunner({
ruleType,
taskInstance: {
...mockedTaskInstance,
state: {
...mockedTaskInstance.state,
previousStartedAt: new Date(Date.now() - 5 * 60 * 1000).toISOString(),
},
// @ts-ignore
schedule: {},
},
context: taskRunnerFactoryInitializerParams,
inMemoryMetrics,
internalSavedObjectsRepository,
});

await expect(taskRunner.run()).rejects.toThrowErrorMatchingInlineSnapshot(
'"Interval is required to calculate next run"'
);
});

test('actionsPlugin.execute is called per alert alert that is scheduled', async () => {
taskRunnerFactoryInitializerParams.actionsPlugin.isActionTypeEnabled.mockReturnValue(true);
taskRunnerFactoryInitializerParams.actionsPlugin.isActionExecutable.mockReturnValue(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,7 @@ export class TaskRunner<
if (isOk(schedule)) {
nextRun = getNextRun({ startDate: startedAt, interval: schedule.value.interval });
} else if (taskSchedule) {
// rules cannot use rrule for scheduling yet
Copy link
Contributor

Choose a reason for hiding this comment

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

I guess we should open an issue to allow rrule for alerting rules?

nextRun = getNextRun({ startDate: startedAt, interval: taskSchedule.interval });
}

Expand Down Expand Up @@ -828,6 +829,7 @@ export class TaskRunner<

let nextRun: string | null = null;
if (taskSchedule) {
// rules cannot use rrule for scheduling yet
nextRun = getNextRun({ startDate: startedAt, interval: taskSchedule.interval });
}

Expand Down
Loading