@ampsec/platform-client 87.5.2 → 87.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/dto/enums/category.d.ts +2 -1
- package/build/src/dto/enums/category.js +1 -0
- package/build/src/dto/enums/category.js.map +1 -1
- package/build/src/dto/enums/findingBuckets.d.ts +4 -0
- package/build/src/dto/enums/findingBuckets.js +4 -0
- package/build/src/dto/enums/findingBuckets.js.map +1 -1
- package/build/src/dto/enums/findingKind.d.ts +2 -1
- package/build/src/dto/enums/findingKind.js +22 -0
- package/build/src/dto/enums/findingKind.js.map +1 -1
- package/build/src/dto/enums/saasComponentKind.d.ts +2 -1
- package/build/src/dto/enums/saasComponentKind.js +3 -0
- package/build/src/dto/enums/saasComponentKind.js.map +1 -1
- package/build/src/dto/flows.dto.d.ts +461 -1
- package/build/src/dto/flows.dto.js +19 -1
- package/build/src/dto/flows.dto.js.map +1 -1
- package/build/src/dto/platform/platform.flows.dto.d.ts +443 -1
- package/package.json +1 -1
- package/src/dto/enums/category.ts +1 -0
- package/src/dto/enums/findingBuckets.ts +4 -0
- package/src/dto/enums/findingKind.ts +23 -0
- package/src/dto/enums/saasComponentKind.ts +4 -0
- package/src/dto/flows.dto.ts +18 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { FlowSpecStatusKind } from '../flows.dto';
|
|
3
|
-
export declare const _PlatformFlowSpecUpsertDto: z.ZodObject<z.objectUtil.extendShape<Omit<z.objectUtil.extendShape<{
|
|
3
|
+
export declare const _PlatformFlowSpecUpsertDto: z.ZodEffects<z.ZodObject<z.objectUtil.extendShape<Omit<z.objectUtil.extendShape<{
|
|
4
4
|
id: z.ZodString;
|
|
5
5
|
createdAt: z.ZodString;
|
|
6
6
|
updatedAt: z.ZodString;
|
|
@@ -121,6 +121,16 @@ export declare const _PlatformFlowSpecUpsertDto: z.ZodObject<z.objectUtil.extend
|
|
|
121
121
|
value?: number | undefined;
|
|
122
122
|
units?: string | undefined;
|
|
123
123
|
}>>;
|
|
124
|
+
skipWaitingPeriod: z.ZodOptional<z.ZodObject<{
|
|
125
|
+
enabled: z.ZodBoolean;
|
|
126
|
+
ignoreBusinessHours: z.ZodDefault<z.ZodBoolean>;
|
|
127
|
+
}, "strip", z.ZodTypeAny, {
|
|
128
|
+
enabled: boolean;
|
|
129
|
+
ignoreBusinessHours: boolean;
|
|
130
|
+
}, {
|
|
131
|
+
enabled: boolean;
|
|
132
|
+
ignoreBusinessHours?: boolean | undefined;
|
|
133
|
+
}>>;
|
|
124
134
|
training: z.ZodOptional<z.ZodObject<{
|
|
125
135
|
subject: z.ZodOptional<z.ZodString>;
|
|
126
136
|
context: z.ZodOptional<z.ZodString>;
|
|
@@ -862,6 +872,416 @@ export declare const _PlatformFlowSpecUpsertDto: z.ZodObject<z.objectUtil.extend
|
|
|
862
872
|
value?: number | undefined;
|
|
863
873
|
units?: string | undefined;
|
|
864
874
|
} | undefined;
|
|
875
|
+
skipWaitingPeriod?: {
|
|
876
|
+
enabled: boolean;
|
|
877
|
+
ignoreBusinessHours: boolean;
|
|
878
|
+
} | undefined;
|
|
879
|
+
training?: {
|
|
880
|
+
context?: string | undefined;
|
|
881
|
+
subject?: string | undefined;
|
|
882
|
+
} | undefined;
|
|
883
|
+
triage?: {
|
|
884
|
+
message: string;
|
|
885
|
+
yesAction: {
|
|
886
|
+
actionId: string | null;
|
|
887
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
888
|
+
responseMessage?: string | undefined;
|
|
889
|
+
actionDescriptionContext?: string | undefined;
|
|
890
|
+
};
|
|
891
|
+
noAction: {
|
|
892
|
+
actionId: string | null;
|
|
893
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
894
|
+
responseMessage?: string | undefined;
|
|
895
|
+
actionDescriptionContext?: string | undefined;
|
|
896
|
+
};
|
|
897
|
+
} | undefined;
|
|
898
|
+
reminderInterval?: {
|
|
899
|
+
minutes: number;
|
|
900
|
+
value?: number | undefined;
|
|
901
|
+
units?: string | undefined;
|
|
902
|
+
} | undefined;
|
|
903
|
+
escalation?: {
|
|
904
|
+
interval: {
|
|
905
|
+
minutes: number;
|
|
906
|
+
value?: number | undefined;
|
|
907
|
+
units?: string | undefined;
|
|
908
|
+
};
|
|
909
|
+
engagementChannelConnectorIds: string[];
|
|
910
|
+
redirection?: {
|
|
911
|
+
kind: import("../flows.dto").EngagementRedirectionKind.SLACK_CHANNEL;
|
|
912
|
+
channelId: string;
|
|
913
|
+
includeUser: boolean;
|
|
914
|
+
} | {
|
|
915
|
+
kind: import("../flows.dto").EngagementRedirectionKind.TEAMS_CHANNEL;
|
|
916
|
+
channelId: string;
|
|
917
|
+
includeUser: boolean;
|
|
918
|
+
} | {
|
|
919
|
+
kind: import("../flows.dto").EngagementRedirectionKind.EMAIL_CHANNEL;
|
|
920
|
+
channelId: string;
|
|
921
|
+
includeUser: boolean;
|
|
922
|
+
} | undefined;
|
|
923
|
+
} | undefined;
|
|
924
|
+
escalationToManager?: {
|
|
925
|
+
interval: {
|
|
926
|
+
minutes: number;
|
|
927
|
+
value?: number | undefined;
|
|
928
|
+
units?: string | undefined;
|
|
929
|
+
};
|
|
930
|
+
engagementChannelConnectorIds: string[];
|
|
931
|
+
redirection?: {
|
|
932
|
+
kind: import("../flows.dto").EngagementRedirectionKind.SLACK_CHANNEL;
|
|
933
|
+
channelId: string;
|
|
934
|
+
includeUser: boolean;
|
|
935
|
+
} | {
|
|
936
|
+
kind: import("../flows.dto").EngagementRedirectionKind.TEAMS_CHANNEL;
|
|
937
|
+
channelId: string;
|
|
938
|
+
includeUser: boolean;
|
|
939
|
+
} | {
|
|
940
|
+
kind: import("../flows.dto").EngagementRedirectionKind.EMAIL_CHANNEL;
|
|
941
|
+
channelId: string;
|
|
942
|
+
includeUser: boolean;
|
|
943
|
+
} | undefined;
|
|
944
|
+
} | undefined;
|
|
945
|
+
rewards?: {
|
|
946
|
+
minutes: number;
|
|
947
|
+
isUpperBound: boolean;
|
|
948
|
+
points: number;
|
|
949
|
+
value?: number | undefined;
|
|
950
|
+
units?: string | undefined;
|
|
951
|
+
}[] | undefined;
|
|
952
|
+
customMessage?: {
|
|
953
|
+
template?: string | undefined;
|
|
954
|
+
append?: boolean | undefined;
|
|
955
|
+
} | undefined;
|
|
956
|
+
prependCustomMessage?: {
|
|
957
|
+
template?: string | undefined;
|
|
958
|
+
} | undefined;
|
|
959
|
+
messageTitle?: string | undefined;
|
|
960
|
+
additionalContext?: {
|
|
961
|
+
data?: string | undefined;
|
|
962
|
+
} | undefined;
|
|
963
|
+
securityTip?: {
|
|
964
|
+
subject?: import("../flows.dto").SecurityTipSubject | undefined;
|
|
965
|
+
isConfigured?: boolean | undefined;
|
|
966
|
+
} | undefined;
|
|
967
|
+
scheduleConfig?: {
|
|
968
|
+
required: boolean;
|
|
969
|
+
} | undefined;
|
|
970
|
+
}, {
|
|
971
|
+
filter: {
|
|
972
|
+
cohorts: ({
|
|
973
|
+
inclusive: boolean;
|
|
974
|
+
value: string;
|
|
975
|
+
id: string;
|
|
976
|
+
displayValue: string;
|
|
977
|
+
kind: import("../flows.dto").CohortKind;
|
|
978
|
+
} | undefined)[];
|
|
979
|
+
custom?: Record<string, unknown> | undefined;
|
|
980
|
+
};
|
|
981
|
+
name: string;
|
|
982
|
+
status: FlowSpecStatusKind;
|
|
983
|
+
description: string;
|
|
984
|
+
tid: string;
|
|
985
|
+
triggerFilter: {
|
|
986
|
+
trigger: {
|
|
987
|
+
id: string;
|
|
988
|
+
displayValue: string;
|
|
989
|
+
eventType: string;
|
|
990
|
+
cid?: string | undefined;
|
|
991
|
+
}[];
|
|
992
|
+
custom?: Record<string, unknown> | undefined;
|
|
993
|
+
};
|
|
994
|
+
engagementChannelCids: string[];
|
|
995
|
+
id?: string | undefined;
|
|
996
|
+
createdAt?: string | undefined;
|
|
997
|
+
updatedAt?: string | undefined;
|
|
998
|
+
deletedAt?: string | null | undefined;
|
|
999
|
+
actions?: {
|
|
1000
|
+
includeInstructions?: boolean | undefined;
|
|
1001
|
+
getInstructionsAction?: {
|
|
1002
|
+
includeCustomInstructions?: boolean | undefined;
|
|
1003
|
+
customInstructions?: string | undefined;
|
|
1004
|
+
includeOnlyCustomInstructions?: boolean | undefined;
|
|
1005
|
+
} | undefined;
|
|
1006
|
+
includeMarkComplete?: boolean | undefined;
|
|
1007
|
+
expirationActionId?: string | undefined;
|
|
1008
|
+
expirationAction?: {
|
|
1009
|
+
actionId: string | null;
|
|
1010
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1011
|
+
responseMessage?: string | undefined;
|
|
1012
|
+
actionDescriptionContext?: string | undefined;
|
|
1013
|
+
} | undefined;
|
|
1014
|
+
simpleTriageYesActId?: string | undefined;
|
|
1015
|
+
simpleTriageNoActId?: string | undefined;
|
|
1016
|
+
resolveNowActionId?: string | undefined;
|
|
1017
|
+
resolveNowAction?: {
|
|
1018
|
+
actionId: string | null;
|
|
1019
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1020
|
+
responseMessage?: string | undefined;
|
|
1021
|
+
actionDescriptionContext?: string | undefined;
|
|
1022
|
+
} | undefined;
|
|
1023
|
+
scheduleResolutionAction?: {
|
|
1024
|
+
actionId: string | null;
|
|
1025
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1026
|
+
responseMessage?: string | undefined;
|
|
1027
|
+
actionDescriptionContext?: string | undefined;
|
|
1028
|
+
} | undefined;
|
|
1029
|
+
launchAction?: {
|
|
1030
|
+
actionId: string | null;
|
|
1031
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1032
|
+
responseMessage?: string | undefined;
|
|
1033
|
+
actionDescriptionContext?: string | undefined;
|
|
1034
|
+
} | undefined;
|
|
1035
|
+
launchActionsV2?: {
|
|
1036
|
+
id: string;
|
|
1037
|
+
actions: {
|
|
1038
|
+
actionId: string | null;
|
|
1039
|
+
}[];
|
|
1040
|
+
findingStatus: import("..").FindingStatus | null;
|
|
1041
|
+
} | undefined;
|
|
1042
|
+
actionButtons?: {
|
|
1043
|
+
id: string;
|
|
1044
|
+
actions: {
|
|
1045
|
+
actionId: string | null;
|
|
1046
|
+
}[];
|
|
1047
|
+
findingStatus: import("..").FindingStatus | null;
|
|
1048
|
+
actionLabel: string;
|
|
1049
|
+
}[] | undefined;
|
|
1050
|
+
} | undefined;
|
|
1051
|
+
redirection?: {
|
|
1052
|
+
kind: import("../flows.dto").EngagementRedirectionKind.SLACK_CHANNEL;
|
|
1053
|
+
channelId: string;
|
|
1054
|
+
includeUser?: boolean | undefined;
|
|
1055
|
+
} | {
|
|
1056
|
+
kind: import("../flows.dto").EngagementRedirectionKind.TEAMS_CHANNEL;
|
|
1057
|
+
channelId: string;
|
|
1058
|
+
includeUser?: boolean | undefined;
|
|
1059
|
+
} | {
|
|
1060
|
+
kind: import("../flows.dto").EngagementRedirectionKind.EMAIL_CHANNEL;
|
|
1061
|
+
channelId: string;
|
|
1062
|
+
includeUser?: boolean | undefined;
|
|
1063
|
+
} | undefined;
|
|
1064
|
+
fslStrategy?: "STANDARD" | undefined;
|
|
1065
|
+
tone?: {
|
|
1066
|
+
kind?: string | undefined;
|
|
1067
|
+
} | undefined;
|
|
1068
|
+
targetResolution?: {
|
|
1069
|
+
minutes: number;
|
|
1070
|
+
value?: number | undefined;
|
|
1071
|
+
units?: string | undefined;
|
|
1072
|
+
} | undefined;
|
|
1073
|
+
delayEngagement?: {
|
|
1074
|
+
minutes: number;
|
|
1075
|
+
value?: number | undefined;
|
|
1076
|
+
units?: string | undefined;
|
|
1077
|
+
} | undefined;
|
|
1078
|
+
skipWaitingPeriod?: {
|
|
1079
|
+
enabled: boolean;
|
|
1080
|
+
ignoreBusinessHours?: boolean | undefined;
|
|
1081
|
+
} | undefined;
|
|
1082
|
+
training?: {
|
|
1083
|
+
context?: string | undefined;
|
|
1084
|
+
subject?: string | undefined;
|
|
1085
|
+
} | undefined;
|
|
1086
|
+
triage?: {
|
|
1087
|
+
message: string;
|
|
1088
|
+
yesAction: {
|
|
1089
|
+
actionId: string | null;
|
|
1090
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1091
|
+
responseMessage?: string | undefined;
|
|
1092
|
+
actionDescriptionContext?: string | undefined;
|
|
1093
|
+
};
|
|
1094
|
+
noAction: {
|
|
1095
|
+
actionId: string | null;
|
|
1096
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1097
|
+
responseMessage?: string | undefined;
|
|
1098
|
+
actionDescriptionContext?: string | undefined;
|
|
1099
|
+
};
|
|
1100
|
+
} | undefined;
|
|
1101
|
+
reminderInterval?: {
|
|
1102
|
+
minutes: number;
|
|
1103
|
+
value?: number | undefined;
|
|
1104
|
+
units?: string | undefined;
|
|
1105
|
+
} | undefined;
|
|
1106
|
+
escalation?: {
|
|
1107
|
+
interval: {
|
|
1108
|
+
minutes: number;
|
|
1109
|
+
value?: number | undefined;
|
|
1110
|
+
units?: string | undefined;
|
|
1111
|
+
};
|
|
1112
|
+
engagementChannelConnectorIds: string[];
|
|
1113
|
+
redirection?: {
|
|
1114
|
+
kind: import("../flows.dto").EngagementRedirectionKind.SLACK_CHANNEL;
|
|
1115
|
+
channelId: string;
|
|
1116
|
+
includeUser?: boolean | undefined;
|
|
1117
|
+
} | {
|
|
1118
|
+
kind: import("../flows.dto").EngagementRedirectionKind.TEAMS_CHANNEL;
|
|
1119
|
+
channelId: string;
|
|
1120
|
+
includeUser?: boolean | undefined;
|
|
1121
|
+
} | {
|
|
1122
|
+
kind: import("../flows.dto").EngagementRedirectionKind.EMAIL_CHANNEL;
|
|
1123
|
+
channelId: string;
|
|
1124
|
+
includeUser?: boolean | undefined;
|
|
1125
|
+
} | undefined;
|
|
1126
|
+
} | undefined;
|
|
1127
|
+
escalationToManager?: {
|
|
1128
|
+
interval: {
|
|
1129
|
+
minutes: number;
|
|
1130
|
+
value?: number | undefined;
|
|
1131
|
+
units?: string | undefined;
|
|
1132
|
+
};
|
|
1133
|
+
engagementChannelConnectorIds: string[];
|
|
1134
|
+
redirection?: {
|
|
1135
|
+
kind: import("../flows.dto").EngagementRedirectionKind.SLACK_CHANNEL;
|
|
1136
|
+
channelId: string;
|
|
1137
|
+
includeUser?: boolean | undefined;
|
|
1138
|
+
} | {
|
|
1139
|
+
kind: import("../flows.dto").EngagementRedirectionKind.TEAMS_CHANNEL;
|
|
1140
|
+
channelId: string;
|
|
1141
|
+
includeUser?: boolean | undefined;
|
|
1142
|
+
} | {
|
|
1143
|
+
kind: import("../flows.dto").EngagementRedirectionKind.EMAIL_CHANNEL;
|
|
1144
|
+
channelId: string;
|
|
1145
|
+
includeUser?: boolean | undefined;
|
|
1146
|
+
} | undefined;
|
|
1147
|
+
} | undefined;
|
|
1148
|
+
rewards?: {
|
|
1149
|
+
minutes: number;
|
|
1150
|
+
isUpperBound: boolean;
|
|
1151
|
+
points: number;
|
|
1152
|
+
value?: number | undefined;
|
|
1153
|
+
units?: string | undefined;
|
|
1154
|
+
}[] | undefined;
|
|
1155
|
+
customMessage?: {
|
|
1156
|
+
template?: string | undefined;
|
|
1157
|
+
append?: boolean | undefined;
|
|
1158
|
+
} | undefined;
|
|
1159
|
+
prependCustomMessage?: {
|
|
1160
|
+
template?: string | undefined;
|
|
1161
|
+
} | undefined;
|
|
1162
|
+
messageTitle?: string | undefined;
|
|
1163
|
+
additionalContext?: {
|
|
1164
|
+
data?: string | undefined;
|
|
1165
|
+
} | undefined;
|
|
1166
|
+
securityTip?: {
|
|
1167
|
+
subject?: import("../flows.dto").SecurityTipSubject | undefined;
|
|
1168
|
+
isConfigured?: boolean | undefined;
|
|
1169
|
+
} | undefined;
|
|
1170
|
+
scheduleConfig?: {
|
|
1171
|
+
required: boolean;
|
|
1172
|
+
} | undefined;
|
|
1173
|
+
}>, {
|
|
1174
|
+
filter: {
|
|
1175
|
+
cohorts: ({
|
|
1176
|
+
inclusive: boolean;
|
|
1177
|
+
value: string;
|
|
1178
|
+
id: string;
|
|
1179
|
+
displayValue: string;
|
|
1180
|
+
kind: import("../flows.dto").CohortKind;
|
|
1181
|
+
} | undefined)[];
|
|
1182
|
+
custom?: Record<string, unknown> | undefined;
|
|
1183
|
+
};
|
|
1184
|
+
name: string;
|
|
1185
|
+
status: FlowSpecStatusKind;
|
|
1186
|
+
description: string;
|
|
1187
|
+
tid: string;
|
|
1188
|
+
fslStrategy: "STANDARD";
|
|
1189
|
+
triggerFilter: {
|
|
1190
|
+
trigger: {
|
|
1191
|
+
id: string;
|
|
1192
|
+
displayValue: string;
|
|
1193
|
+
eventType: string;
|
|
1194
|
+
cid?: string | undefined;
|
|
1195
|
+
}[];
|
|
1196
|
+
custom?: Record<string, unknown> | undefined;
|
|
1197
|
+
};
|
|
1198
|
+
engagementChannelCids: string[];
|
|
1199
|
+
id?: string | undefined;
|
|
1200
|
+
createdAt?: string | undefined;
|
|
1201
|
+
updatedAt?: string | undefined;
|
|
1202
|
+
deletedAt?: string | null | undefined;
|
|
1203
|
+
actions?: {
|
|
1204
|
+
includeInstructions?: boolean | undefined;
|
|
1205
|
+
getInstructionsAction?: {
|
|
1206
|
+
includeCustomInstructions?: boolean | undefined;
|
|
1207
|
+
customInstructions?: string | undefined;
|
|
1208
|
+
includeOnlyCustomInstructions?: boolean | undefined;
|
|
1209
|
+
} | undefined;
|
|
1210
|
+
includeMarkComplete?: boolean | undefined;
|
|
1211
|
+
expirationActionId?: string | undefined;
|
|
1212
|
+
expirationAction?: {
|
|
1213
|
+
actionId: string | null;
|
|
1214
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1215
|
+
responseMessage?: string | undefined;
|
|
1216
|
+
actionDescriptionContext?: string | undefined;
|
|
1217
|
+
} | undefined;
|
|
1218
|
+
simpleTriageYesActId?: string | undefined;
|
|
1219
|
+
simpleTriageNoActId?: string | undefined;
|
|
1220
|
+
resolveNowActionId?: string | undefined;
|
|
1221
|
+
resolveNowAction?: {
|
|
1222
|
+
actionId: string | null;
|
|
1223
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1224
|
+
responseMessage?: string | undefined;
|
|
1225
|
+
actionDescriptionContext?: string | undefined;
|
|
1226
|
+
} | undefined;
|
|
1227
|
+
scheduleResolutionAction?: {
|
|
1228
|
+
actionId: string | null;
|
|
1229
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1230
|
+
responseMessage?: string | undefined;
|
|
1231
|
+
actionDescriptionContext?: string | undefined;
|
|
1232
|
+
} | undefined;
|
|
1233
|
+
launchAction?: {
|
|
1234
|
+
actionId: string | null;
|
|
1235
|
+
findingStatus?: import("..").FindingStatus | null | undefined;
|
|
1236
|
+
responseMessage?: string | undefined;
|
|
1237
|
+
actionDescriptionContext?: string | undefined;
|
|
1238
|
+
} | undefined;
|
|
1239
|
+
launchActionsV2?: {
|
|
1240
|
+
id: string;
|
|
1241
|
+
actions: {
|
|
1242
|
+
actionId: string | null;
|
|
1243
|
+
}[];
|
|
1244
|
+
findingStatus: import("..").FindingStatus | null;
|
|
1245
|
+
} | undefined;
|
|
1246
|
+
actionButtons?: {
|
|
1247
|
+
id: string;
|
|
1248
|
+
actions: {
|
|
1249
|
+
actionId: string | null;
|
|
1250
|
+
}[];
|
|
1251
|
+
findingStatus: import("..").FindingStatus | null;
|
|
1252
|
+
actionLabel: string;
|
|
1253
|
+
}[] | undefined;
|
|
1254
|
+
} | undefined;
|
|
1255
|
+
redirection?: {
|
|
1256
|
+
kind: import("../flows.dto").EngagementRedirectionKind.SLACK_CHANNEL;
|
|
1257
|
+
channelId: string;
|
|
1258
|
+
includeUser: boolean;
|
|
1259
|
+
} | {
|
|
1260
|
+
kind: import("../flows.dto").EngagementRedirectionKind.TEAMS_CHANNEL;
|
|
1261
|
+
channelId: string;
|
|
1262
|
+
includeUser: boolean;
|
|
1263
|
+
} | {
|
|
1264
|
+
kind: import("../flows.dto").EngagementRedirectionKind.EMAIL_CHANNEL;
|
|
1265
|
+
channelId: string;
|
|
1266
|
+
includeUser: boolean;
|
|
1267
|
+
} | undefined;
|
|
1268
|
+
tone?: {
|
|
1269
|
+
kind?: string | undefined;
|
|
1270
|
+
} | undefined;
|
|
1271
|
+
targetResolution?: {
|
|
1272
|
+
minutes: number;
|
|
1273
|
+
value?: number | undefined;
|
|
1274
|
+
units?: string | undefined;
|
|
1275
|
+
} | undefined;
|
|
1276
|
+
delayEngagement?: {
|
|
1277
|
+
minutes: number;
|
|
1278
|
+
value?: number | undefined;
|
|
1279
|
+
units?: string | undefined;
|
|
1280
|
+
} | undefined;
|
|
1281
|
+
skipWaitingPeriod?: {
|
|
1282
|
+
enabled: boolean;
|
|
1283
|
+
ignoreBusinessHours: boolean;
|
|
1284
|
+
} | undefined;
|
|
865
1285
|
training?: {
|
|
866
1286
|
context?: string | undefined;
|
|
867
1287
|
subject?: string | undefined;
|
|
@@ -1061,6 +1481,10 @@ export declare const _PlatformFlowSpecUpsertDto: z.ZodObject<z.objectUtil.extend
|
|
|
1061
1481
|
value?: number | undefined;
|
|
1062
1482
|
units?: string | undefined;
|
|
1063
1483
|
} | undefined;
|
|
1484
|
+
skipWaitingPeriod?: {
|
|
1485
|
+
enabled: boolean;
|
|
1486
|
+
ignoreBusinessHours?: boolean | undefined;
|
|
1487
|
+
} | undefined;
|
|
1064
1488
|
training?: {
|
|
1065
1489
|
context?: string | undefined;
|
|
1066
1490
|
subject?: string | undefined;
|
|
@@ -1275,6 +1699,16 @@ export declare const _PlatformFlowSpecDto: z.ZodObject<z.objectUtil.extendShape<
|
|
|
1275
1699
|
value?: number | undefined;
|
|
1276
1700
|
units?: string | undefined;
|
|
1277
1701
|
}>>;
|
|
1702
|
+
skipWaitingPeriod: z.ZodOptional<z.ZodObject<{
|
|
1703
|
+
enabled: z.ZodBoolean;
|
|
1704
|
+
ignoreBusinessHours: z.ZodDefault<z.ZodBoolean>;
|
|
1705
|
+
}, "strip", z.ZodTypeAny, {
|
|
1706
|
+
enabled: boolean;
|
|
1707
|
+
ignoreBusinessHours: boolean;
|
|
1708
|
+
}, {
|
|
1709
|
+
enabled: boolean;
|
|
1710
|
+
ignoreBusinessHours?: boolean | undefined;
|
|
1711
|
+
}>>;
|
|
1278
1712
|
training: z.ZodOptional<z.ZodObject<{
|
|
1279
1713
|
subject: z.ZodOptional<z.ZodString>;
|
|
1280
1714
|
context: z.ZodOptional<z.ZodString>;
|
|
@@ -2011,6 +2445,10 @@ export declare const _PlatformFlowSpecDto: z.ZodObject<z.objectUtil.extendShape<
|
|
|
2011
2445
|
value?: number | undefined;
|
|
2012
2446
|
units?: string | undefined;
|
|
2013
2447
|
} | undefined;
|
|
2448
|
+
skipWaitingPeriod?: {
|
|
2449
|
+
enabled: boolean;
|
|
2450
|
+
ignoreBusinessHours: boolean;
|
|
2451
|
+
} | undefined;
|
|
2014
2452
|
training?: {
|
|
2015
2453
|
context?: string | undefined;
|
|
2016
2454
|
subject?: string | undefined;
|
|
@@ -2218,6 +2656,10 @@ export declare const _PlatformFlowSpecDto: z.ZodObject<z.objectUtil.extendShape<
|
|
|
2218
2656
|
value?: number | undefined;
|
|
2219
2657
|
units?: string | undefined;
|
|
2220
2658
|
} | undefined;
|
|
2659
|
+
skipWaitingPeriod?: {
|
|
2660
|
+
enabled: boolean;
|
|
2661
|
+
ignoreBusinessHours?: boolean | undefined;
|
|
2662
|
+
} | undefined;
|
|
2221
2663
|
training?: {
|
|
2222
2664
|
context?: string | undefined;
|
|
2223
2665
|
subject?: string | undefined;
|
package/package.json
CHANGED
|
@@ -67,6 +67,9 @@ export enum FindingKind {
|
|
|
67
67
|
|
|
68
68
|
// NEW_HIRE
|
|
69
69
|
NEW_HIRE = 'NEW_HIRE',
|
|
70
|
+
|
|
71
|
+
// ATTRIBUTION (e.g. Axonius; extend with specific kinds as needed)
|
|
72
|
+
ATTRIBUTION = 'ATTRIBUTION',
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
export const lookupFindingOutcomeByKind = (kind: FindingKind): FindingOutcome => {
|
|
@@ -115,6 +118,7 @@ export const lookupFindingOutcomeByKind = (kind: FindingKind): FindingOutcome =>
|
|
|
115
118
|
case FindingKind.AI_SERVICE_UNTRACKED:
|
|
116
119
|
case FindingKind.AI_SERVICE_UNAPPROVED:
|
|
117
120
|
case FindingKind.NEW_HIRE:
|
|
121
|
+
case FindingKind.ATTRIBUTION:
|
|
118
122
|
default: {
|
|
119
123
|
return FindingOutcome.REMEDIATION;
|
|
120
124
|
}
|
|
@@ -179,6 +183,9 @@ export const lookupFindingKindByCategory = (category: string): FindingKind[] =>
|
|
|
179
183
|
case Category.NEW_HIRE: {
|
|
180
184
|
return [FindingKind.NEW_HIRE];
|
|
181
185
|
}
|
|
186
|
+
case Category.ATTRIBUTION: {
|
|
187
|
+
return [FindingKind.ATTRIBUTION];
|
|
188
|
+
}
|
|
182
189
|
default: {
|
|
183
190
|
return [];
|
|
184
191
|
}
|
|
@@ -232,6 +239,7 @@ export const lookupFindingSeverityByKind = (kind: string): FindingSeverity | und
|
|
|
232
239
|
case FindingKind.AI_SERVICE_UNAPPROVED:
|
|
233
240
|
return FindingSeverity.HIGH;
|
|
234
241
|
case FindingKind.NEW_HIRE:
|
|
242
|
+
case FindingKind.ATTRIBUTION:
|
|
235
243
|
return FindingSeverity.INFO;
|
|
236
244
|
default:
|
|
237
245
|
return undefined;
|
|
@@ -366,6 +374,14 @@ export const lookupFindingScoreByCategoryKindAndSeverity = (category: Category,
|
|
|
366
374
|
return 0;
|
|
367
375
|
}
|
|
368
376
|
}
|
|
377
|
+
case Category.ATTRIBUTION: {
|
|
378
|
+
switch (kind) {
|
|
379
|
+
case FindingKind.ATTRIBUTION:
|
|
380
|
+
return 2;
|
|
381
|
+
default:
|
|
382
|
+
return 0;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
369
385
|
|
|
370
386
|
default: {
|
|
371
387
|
return 0;
|
|
@@ -389,6 +405,8 @@ export const lookupFindingDisplayValueByKind = (kind: string): string => {
|
|
|
389
405
|
return 'ai_service_unapproved';
|
|
390
406
|
case FindingKind.NEW_HIRE:
|
|
391
407
|
return 'new_hire';
|
|
408
|
+
case FindingKind.ATTRIBUTION:
|
|
409
|
+
return 'attribution';
|
|
392
410
|
default:
|
|
393
411
|
return kind.toLowerCase();
|
|
394
412
|
}
|
|
@@ -442,6 +460,8 @@ export const lookupFindingDescriptionByKind = (kind: string): string => {
|
|
|
442
460
|
return 'Detected use of an AI service that has not been approved';
|
|
443
461
|
case FindingKind.NEW_HIRE:
|
|
444
462
|
return 'New hire employee detected';
|
|
463
|
+
case FindingKind.ATTRIBUTION:
|
|
464
|
+
return 'Attribution or coverage gap detected for a user or device';
|
|
445
465
|
default:
|
|
446
466
|
return '';
|
|
447
467
|
}
|
|
@@ -633,6 +653,9 @@ export const generateInsights = (category: string, kind: string) => {
|
|
|
633
653
|
case FindingKind.NEW_HIRE:
|
|
634
654
|
rule.kind = SaasComponentKind.NEW_HIRE;
|
|
635
655
|
break;
|
|
656
|
+
case FindingKind.ATTRIBUTION:
|
|
657
|
+
rule.kind = SaasComponentKind.ATTRIBUTION;
|
|
658
|
+
break;
|
|
636
659
|
default:
|
|
637
660
|
break;
|
|
638
661
|
}
|
package/src/dto/flows.dto.ts
CHANGED
|
@@ -300,6 +300,12 @@ export const _FlowSpecDto = _BaseDto.merge(
|
|
|
300
300
|
tone: _FlowTone.optional(),
|
|
301
301
|
targetResolution: _FlowInterval.optional(),
|
|
302
302
|
delayEngagement: _FlowInterval.optional(),
|
|
303
|
+
skipWaitingPeriod: z
|
|
304
|
+
.object({
|
|
305
|
+
enabled: z.boolean(),
|
|
306
|
+
ignoreBusinessHours: z.boolean().default(true),
|
|
307
|
+
})
|
|
308
|
+
.optional(),
|
|
303
309
|
training: z.object({subject: z.string().optional(), context: z.string().optional()}).optional(),
|
|
304
310
|
triage: z.object({message: z.string(), yesAction: _FlowActionDetails, noAction: _FlowActionDetails}).optional(),
|
|
305
311
|
reminderInterval: _FlowInterval.optional(),
|
|
@@ -331,7 +337,18 @@ export const _FlowSpecDto = _BaseDto.merge(
|
|
|
331
337
|
);
|
|
332
338
|
export type FlowSpecDto = z.infer<typeof _FlowSpecDto>;
|
|
333
339
|
|
|
334
|
-
export const _FlowSpecUpsertDto = _FlowSpecDto
|
|
340
|
+
export const _FlowSpecUpsertDto = _FlowSpecDto
|
|
341
|
+
.omit({activity: true})
|
|
342
|
+
.merge(_BaseUpsertDto)
|
|
343
|
+
.superRefine((dto, ctx) => {
|
|
344
|
+
if (dto.delayEngagement && dto.skipWaitingPeriod?.enabled) {
|
|
345
|
+
ctx.addIssue({
|
|
346
|
+
code: z.ZodIssueCode.custom,
|
|
347
|
+
path: ['skipWaitingPeriod'],
|
|
348
|
+
message: 'skipWaitingPeriod cannot be enabled when delayEngagement is set',
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
});
|
|
335
352
|
export type FlowSpecUpsertDto = z.infer<typeof _FlowSpecUpsertDto>;
|
|
336
353
|
|
|
337
354
|
export const _FlowSpecFilter = _FlowSpecDto.omit({triggerFilter: true, filter: true}).partial().merge(_PaginationFilter).merge(_SortFilter);
|