@griffin-app/griffin-ts 0.1.16 → 0.1.18
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/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations.d.ts +10 -0
- package/dist/integrations.d.ts.map +1 -0
- package/dist/integrations.js +24 -0
- package/dist/integrations.js.map +1 -0
- package/dist/notifications.d.ts +36 -1
- package/dist/notifications.d.ts.map +1 -1
- package/dist/notifications.js +49 -9
- package/dist/notifications.js.map +1 -1
- package/dist/schema-exports.d.ts +1 -0
- package/dist/schema-exports.d.ts.map +1 -1
- package/dist/schema-exports.js +1 -0
- package/dist/schema-exports.js.map +1 -1
- package/dist/schema.d.ts +36 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/type-exports.d.ts +1 -0
- package/dist/type-exports.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +11 -1
- package/src/integrations.ts +32 -0
- package/src/notifications.ts +61 -9
- package/src/schema-exports.ts +8 -0
- package/src/type-exports.ts +7 -0
package/dist/index.d.ts
CHANGED
|
@@ -17,8 +17,8 @@ export type { VariableRef } from "./variable.js";
|
|
|
17
17
|
export { secret, isSecretRef } from "./secrets.js";
|
|
18
18
|
export type { SecretOptions } from "./secrets.js";
|
|
19
19
|
export { notify } from "./notifications.js";
|
|
20
|
-
export { MonitorNotificationSchema } from "./notifications.js";
|
|
21
|
-
export type { NotificationTrigger, MonitorNotification, } from "./notifications.js";
|
|
20
|
+
export { MonitorNotificationSchema, NotificationRoutingSchema, SlackRoutingSchema, EmailRoutingSchema, WebhookRoutingSchema, } from "./notifications.js";
|
|
21
|
+
export type { NotificationTrigger, MonitorNotification, NotificationRouting, SlackRouting, EmailRouting, WebhookRouting, } from "./notifications.js";
|
|
22
22
|
export { START, END } from "./constants.js";
|
|
23
23
|
export type { START as StartType, END as EndType } from "./constants.js";
|
|
24
24
|
export { GET, POST, PUT, DELETE, PATCH } from "./http-methods.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,IAAI,gBAAgB,GACjC,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,IAAI,gBAAgB,GACjC,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,SAAS,IAAI,aAAa,EAC1B,SAAS,IAAI,aAAa,EAC1B,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,GAC/B,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ export { WaitDuration } from "./wait.js";
|
|
|
21
21
|
export { variable, isVariableRef } from "./variable.js";
|
|
22
22
|
export { secret, isSecretRef } from "./secrets.js";
|
|
23
23
|
export { notify } from "./notifications.js";
|
|
24
|
-
export { MonitorNotificationSchema } from "./notifications.js";
|
|
24
|
+
export { MonitorNotificationSchema, NotificationRoutingSchema, SlackRoutingSchema, EmailRoutingSchema, WebhookRoutingSchema, } from "./notifications.js";
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// DSL Constants
|
|
27
27
|
// ============================================================================
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5D,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5D,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAU5B,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAkB1E,+EAA+E;AAC/E,sDAAsD;AACtD,+EAA+E;AAE/E,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Type, type Static } from "typebox";
|
|
2
|
+
export declare const IntegrationCategorySchema: Type.TUnsafe<"notifications" | "secrets" | "metrics">;
|
|
3
|
+
export declare const NotificationProviderSchema: Type.TUnsafe<"slack" | "email" | "webhook">;
|
|
4
|
+
export declare const SecretsProviderSchema: Type.TUnsafe<"aws" | "vault">;
|
|
5
|
+
export declare const ProviderSchema: Type.TUnsafe<"slack" | "email" | "webhook" | "aws" | "vault">;
|
|
6
|
+
export type IntegrationCategory = Static<typeof IntegrationCategorySchema>;
|
|
7
|
+
export type SecretsProvider = Static<typeof SecretsProviderSchema>;
|
|
8
|
+
export type NotificationProvider = Static<typeof NotificationProviderSchema>;
|
|
9
|
+
export type Provider = Static<typeof ProviderSchema>;
|
|
10
|
+
//# sourceMappingURL=integrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,yBAAyB,uDAIN,CAAC;AAEjC,eAAO,MAAM,0BAA0B,6CAIN,CAAC;AAElC,eAAO,MAAM,qBAAqB,+BAIN,CAAC;AAC7B,eAAO,MAAM,cAAc,+DAMN,CAAC;AAEtB,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC7E,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { StringEnum } from "./shared.js";
|
|
2
|
+
export const IntegrationCategorySchema = StringEnum([
|
|
3
|
+
"notifications",
|
|
4
|
+
"secrets",
|
|
5
|
+
"metrics",
|
|
6
|
+
], { $id: "IntegrationCategory" });
|
|
7
|
+
export const NotificationProviderSchema = StringEnum([
|
|
8
|
+
"slack",
|
|
9
|
+
"email",
|
|
10
|
+
"webhook",
|
|
11
|
+
], { $id: "NotificationProvider" });
|
|
12
|
+
export const SecretsProviderSchema = StringEnum([
|
|
13
|
+
//Type.Literal("env"),
|
|
14
|
+
"aws",
|
|
15
|
+
"vault",
|
|
16
|
+
], { $id: "SecretsProvider" });
|
|
17
|
+
export const ProviderSchema = StringEnum([
|
|
18
|
+
"aws",
|
|
19
|
+
"vault",
|
|
20
|
+
"slack",
|
|
21
|
+
"email",
|
|
22
|
+
"webhook",
|
|
23
|
+
], { $id: "Provider" });
|
|
24
|
+
//# sourceMappingURL=integrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;IAClD,eAAe;IACf,SAAS;IACT,SAAS;CACV,EAAE,EAAC,GAAG,EAAE,qBAAqB,EAAC,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;IACnD,OAAO;IACP,OAAO;IACP,SAAS;CACV,EAAE,EAAC,GAAG,EAAE,sBAAsB,EAAC,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,sBAAsB;IACtB,KAAK;IACL,OAAO;CACR,EAAE,EAAC,GAAG,EAAE,iBAAiB,EAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;CACV,EAAE,EAAC,GAAG,EAAE,UAAU,EAAC,CAAC,CAAC"}
|
package/dist/notifications.d.ts
CHANGED
|
@@ -17,6 +17,30 @@ export declare const NotificationTriggerSchema: Type.TUnion<[Type.TObject<{
|
|
|
17
17
|
window_minutes: Type.TNumber;
|
|
18
18
|
}>]>;
|
|
19
19
|
export type NotificationTrigger = Static<typeof NotificationTriggerSchema>;
|
|
20
|
+
export declare const SlackRoutingSchema: Type.TObject<{
|
|
21
|
+
provider: Type.TLiteral<"slack">;
|
|
22
|
+
channel: Type.TString;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const EmailRoutingSchema: Type.TObject<{
|
|
25
|
+
provider: Type.TLiteral<"email">;
|
|
26
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
27
|
+
}>;
|
|
28
|
+
export declare const WebhookRoutingSchema: Type.TObject<{
|
|
29
|
+
provider: Type.TLiteral<"webhook">;
|
|
30
|
+
}>;
|
|
31
|
+
export declare const NotificationRoutingSchema: Type.TUnion<[Type.TObject<{
|
|
32
|
+
provider: Type.TLiteral<"slack">;
|
|
33
|
+
channel: Type.TString;
|
|
34
|
+
}>, Type.TObject<{
|
|
35
|
+
provider: Type.TLiteral<"email">;
|
|
36
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
37
|
+
}>, Type.TObject<{
|
|
38
|
+
provider: Type.TLiteral<"webhook">;
|
|
39
|
+
}>]>;
|
|
40
|
+
export type SlackRouting = Static<typeof SlackRoutingSchema>;
|
|
41
|
+
export type EmailRouting = Static<typeof EmailRoutingSchema>;
|
|
42
|
+
export type WebhookRouting = Static<typeof WebhookRoutingSchema>;
|
|
43
|
+
export type NotificationRouting = Static<typeof NotificationRoutingSchema>;
|
|
20
44
|
export declare const MonitorNotificationSchema: Type.TObject<{
|
|
21
45
|
trigger: Type.TUnion<[Type.TObject<{
|
|
22
46
|
type: Type.TLiteral<"run_failed">;
|
|
@@ -36,6 +60,15 @@ export declare const MonitorNotificationSchema: Type.TObject<{
|
|
|
36
60
|
window_minutes: Type.TNumber;
|
|
37
61
|
}>]>;
|
|
38
62
|
integration: Type.TString;
|
|
63
|
+
routing: Type.TUnion<[Type.TObject<{
|
|
64
|
+
provider: Type.TLiteral<"slack">;
|
|
65
|
+
channel: Type.TString;
|
|
66
|
+
}>, Type.TObject<{
|
|
67
|
+
provider: Type.TLiteral<"email">;
|
|
68
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
69
|
+
}>, Type.TObject<{
|
|
70
|
+
provider: Type.TLiteral<"webhook">;
|
|
71
|
+
}>]>;
|
|
39
72
|
cooldown_minutes: Type.TOptional<Type.TNumber>;
|
|
40
73
|
}>;
|
|
41
74
|
export type MonitorNotification = Static<typeof MonitorNotificationSchema>;
|
|
@@ -44,7 +77,9 @@ declare class NotificationBuilder {
|
|
|
44
77
|
private cooldownMinutes?;
|
|
45
78
|
constructor(trigger: NotificationTrigger);
|
|
46
79
|
withCooldown(minutes: number): this;
|
|
47
|
-
|
|
80
|
+
toSlack(channel: string): MonitorNotification;
|
|
81
|
+
toEmail(toAddresses: string[]): MonitorNotification;
|
|
82
|
+
toWebhook(integration: string): MonitorNotification;
|
|
48
83
|
}
|
|
49
84
|
export declare const notify: {
|
|
50
85
|
onFailure: () => NotificationBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAM5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;IA0BJ,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAM5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;IA0BJ,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,eAAO,MAAM,kBAAkB;;;EAG7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;EAG7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;EAE/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;IAIpC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,cAAM,mBAAmB;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,OAAO,EAAE,mBAAmB;IAIxC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB;IAW7C,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,mBAAmB;IAWnD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB;CAUpD;AAMD,eAAO,MAAM,MAAM;;;uCAOkB,MAAM;oCAMT,MAAM,kBAAkB,MAAM;8BAOpC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF,CAAC"}
|
package/dist/notifications.js
CHANGED
|
@@ -30,15 +30,35 @@ export const NotificationTriggerSchema = Type.Union([
|
|
|
30
30
|
}),
|
|
31
31
|
], { $id: "NotificationTrigger" });
|
|
32
32
|
// =============================================================================
|
|
33
|
-
//
|
|
33
|
+
// Routing (discriminated union per provider)
|
|
34
|
+
// =============================================================================
|
|
35
|
+
export const SlackRoutingSchema = Type.Object({
|
|
36
|
+
provider: Type.Literal("slack"),
|
|
37
|
+
channel: Type.String(),
|
|
38
|
+
});
|
|
39
|
+
export const EmailRoutingSchema = Type.Object({
|
|
40
|
+
provider: Type.Literal("email"),
|
|
41
|
+
toAddresses: Type.Array(Type.String()),
|
|
42
|
+
});
|
|
43
|
+
export const WebhookRoutingSchema = Type.Object({
|
|
44
|
+
provider: Type.Literal("webhook"),
|
|
45
|
+
});
|
|
46
|
+
export const NotificationRoutingSchema = Type.Union([
|
|
47
|
+
SlackRoutingSchema,
|
|
48
|
+
EmailRoutingSchema,
|
|
49
|
+
WebhookRoutingSchema,
|
|
50
|
+
]);
|
|
51
|
+
// =============================================================================
|
|
52
|
+
// Monitor Notification (DSL config: trigger + integration + routing)
|
|
34
53
|
// =============================================================================
|
|
35
54
|
export const MonitorNotificationSchema = Type.Object({
|
|
36
55
|
trigger: NotificationTriggerSchema,
|
|
37
56
|
integration: Type.String(),
|
|
57
|
+
routing: NotificationRoutingSchema,
|
|
38
58
|
cooldown_minutes: Type.Optional(Type.Number({ minimum: 0 })),
|
|
39
59
|
}, { $id: "MonitorNotification" });
|
|
40
60
|
// =============================================================================
|
|
41
|
-
// Notification Builder
|
|
61
|
+
// Notification Builder (type-safe: provider-specific terminal methods)
|
|
42
62
|
// =============================================================================
|
|
43
63
|
class NotificationBuilder {
|
|
44
64
|
trigger;
|
|
@@ -50,15 +70,35 @@ class NotificationBuilder {
|
|
|
50
70
|
this.cooldownMinutes = minutes;
|
|
51
71
|
return this;
|
|
52
72
|
}
|
|
53
|
-
|
|
54
|
-
|
|
73
|
+
toSlack(channel) {
|
|
74
|
+
return {
|
|
75
|
+
trigger: this.trigger,
|
|
76
|
+
integration: "slack",
|
|
77
|
+
routing: { provider: "slack", channel },
|
|
78
|
+
...(this.cooldownMinutes !== undefined && {
|
|
79
|
+
cooldown_minutes: this.cooldownMinutes,
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
toEmail(toAddresses) {
|
|
84
|
+
return {
|
|
85
|
+
trigger: this.trigger,
|
|
86
|
+
integration: "email",
|
|
87
|
+
routing: { provider: "email", toAddresses },
|
|
88
|
+
...(this.cooldownMinutes !== undefined && {
|
|
89
|
+
cooldown_minutes: this.cooldownMinutes,
|
|
90
|
+
}),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
toWebhook(integration) {
|
|
94
|
+
return {
|
|
55
95
|
trigger: this.trigger,
|
|
56
|
-
integration
|
|
96
|
+
integration,
|
|
97
|
+
routing: { provider: "webhook" },
|
|
98
|
+
...(this.cooldownMinutes !== undefined && {
|
|
99
|
+
cooldown_minutes: this.cooldownMinutes,
|
|
100
|
+
}),
|
|
57
101
|
};
|
|
58
|
-
if (this.cooldownMinutes !== undefined) {
|
|
59
|
-
result.cooldown_minutes = this.cooldownMinutes;
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
102
|
}
|
|
63
103
|
}
|
|
64
104
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,SAAS,CAAC;AAE5C,gFAAgF;AAChF,wDAAwD;AACxD,gFAAgF;AAEhF,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;KACjC,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;KACpC,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC1C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KACvC,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACpD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KAC5C,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QACnC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SACpB,CAAC;QACF,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KAC5C,CAAC;CACH,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAInC,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-exports.d.ts
CHANGED
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
* Import from "griffin/schema" to access validation schemas.
|
|
4
4
|
*/
|
|
5
5
|
export { SecretRefDataSchema, SecretRefSchema, StringLiteralSchema, VariableRefSchema, ResponseFormatSchema, HttpMethodSchema, HttpRequestDSLSchema, FrequencySchema, WaitSchema, JSONPathSchema, FrequencyUnitSchema, XMLPathSchema, TextPathSchema, UnaryPredicateSchema, UnaryPredicateOperatorSchema, BinaryPredicateOperatorSchema, BinaryPredicateSchema, AssertionSchema, AssertionsSchema, NodeDSLSchema, EdgeSchema, MonitorDSLSchema, MonitorDSLSchemaV1, MonitorNotificationSchema, ResolvedStringSchema, HttpRequestResolvedSchema, NodeResolvedSchema, ResolvedMonitorV1Schema, ResolvedMonitorSchema, FrequencyUnit, ResponseFormat, HttpMethod, NodeType, UnaryPredicate, BinaryPredicateOperator, CURRENT_MONITOR_VERSION, SUPPORTED_MONITOR_VERSIONS, } from "./schema.js";
|
|
6
|
+
export { IntegrationCategorySchema, NotificationProviderSchema, SecretsProviderSchema, ProviderSchema, } from "./integrations.js";
|
|
6
7
|
export type { MonitorDSL, MonitorDSLV1, NodeDSL, HttpRequestDSL, Edge, Frequency, Assertion, Assertions, SecretRef, VariableRef, ResolvedMonitor, ResolvedMonitorV1, NodeResolved, HttpRequestResolved, } from "./schema.js";
|
|
7
8
|
//# sourceMappingURL=schema-exports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-exports.d.ts","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAGzB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EAGrB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EACR,cAAc,EACd,uBAAuB,EAGvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,cAAc,EACd,IAAI,EACJ,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema-exports.d.ts","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAGzB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EAGrB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EACR,cAAc,EACd,uBAAuB,EAGvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,cAAc,EACd,IAAI,EACJ,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
package/dist/schema-exports.js
CHANGED
|
@@ -11,4 +11,5 @@ ResolvedStringSchema, HttpRequestResolvedSchema, NodeResolvedSchema, ResolvedMon
|
|
|
11
11
|
FrequencyUnit, ResponseFormat, HttpMethod, NodeType, BinaryPredicateOperator,
|
|
12
12
|
// Constants
|
|
13
13
|
CURRENT_MONITOR_VERSION, SUPPORTED_MONITOR_VERSIONS, } from "./schema.js";
|
|
14
|
+
export { IntegrationCategorySchema, NotificationProviderSchema, SecretsProviderSchema, ProviderSchema, } from "./integrations.js";
|
|
14
15
|
//# sourceMappingURL=schema-exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-exports.js","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACL,yCAAyC;AACzC,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB;AAEzB,mDAAmD;AACnD,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB;AAErB,yBAAyB;AACzB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EAER,uBAAuB;AAEvB,YAAY;AACZ,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema-exports.js","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACL,yCAAyC;AACzC,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB;AAEzB,mDAAmD;AACnD,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB;AAErB,yBAAyB;AACzB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EAER,uBAAuB;AAEvB,YAAY;AACZ,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -429,6 +429,15 @@ export declare const MonitorDSLSchemaV1: Type.TObject<{
|
|
|
429
429
|
window_minutes: Type.TNumber;
|
|
430
430
|
}>]>;
|
|
431
431
|
integration: Type.TString;
|
|
432
|
+
routing: Type.TUnion<[Type.TObject<{
|
|
433
|
+
provider: Type.TLiteral<"slack">;
|
|
434
|
+
channel: Type.TString;
|
|
435
|
+
}>, Type.TObject<{
|
|
436
|
+
provider: Type.TLiteral<"email">;
|
|
437
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
438
|
+
}>, Type.TObject<{
|
|
439
|
+
provider: Type.TLiteral<"webhook">;
|
|
440
|
+
}>]>;
|
|
432
441
|
cooldown_minutes: Type.TOptional<Type.TNumber>;
|
|
433
442
|
}>>>;
|
|
434
443
|
nodes: Type.TArray<Type.TUnion<[Type.TObject<{
|
|
@@ -574,6 +583,15 @@ export declare const MonitorDSLSchema: Type.TObject<{
|
|
|
574
583
|
window_minutes: Type.TNumber;
|
|
575
584
|
}>]>;
|
|
576
585
|
integration: Type.TString;
|
|
586
|
+
routing: Type.TUnion<[Type.TObject<{
|
|
587
|
+
provider: Type.TLiteral<"slack">;
|
|
588
|
+
channel: Type.TString;
|
|
589
|
+
}>, Type.TObject<{
|
|
590
|
+
provider: Type.TLiteral<"email">;
|
|
591
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
592
|
+
}>, Type.TObject<{
|
|
593
|
+
provider: Type.TLiteral<"webhook">;
|
|
594
|
+
}>]>;
|
|
577
595
|
cooldown_minutes: Type.TOptional<Type.TNumber>;
|
|
578
596
|
}>>>;
|
|
579
597
|
nodes: Type.TArray<Type.TUnion<[Type.TObject<{
|
|
@@ -843,6 +861,15 @@ export declare const ResolvedMonitorV1Schema: Type.TObject<{
|
|
|
843
861
|
window_minutes: Type.TNumber;
|
|
844
862
|
}>]>;
|
|
845
863
|
integration: Type.TString;
|
|
864
|
+
routing: Type.TUnion<[Type.TObject<{
|
|
865
|
+
provider: Type.TLiteral<"slack">;
|
|
866
|
+
channel: Type.TString;
|
|
867
|
+
}>, Type.TObject<{
|
|
868
|
+
provider: Type.TLiteral<"email">;
|
|
869
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
870
|
+
}>, Type.TObject<{
|
|
871
|
+
provider: Type.TLiteral<"webhook">;
|
|
872
|
+
}>]>;
|
|
846
873
|
cooldown_minutes: Type.TOptional<Type.TNumber>;
|
|
847
874
|
}>>>;
|
|
848
875
|
environment: Type.TString;
|
|
@@ -960,6 +987,15 @@ export declare const ResolvedMonitorSchema: Type.TObject<{
|
|
|
960
987
|
window_minutes: Type.TNumber;
|
|
961
988
|
}>]>;
|
|
962
989
|
integration: Type.TString;
|
|
990
|
+
routing: Type.TUnion<[Type.TObject<{
|
|
991
|
+
provider: Type.TLiteral<"slack">;
|
|
992
|
+
channel: Type.TString;
|
|
993
|
+
}>, Type.TObject<{
|
|
994
|
+
provider: Type.TLiteral<"email">;
|
|
995
|
+
toAddresses: Type.TArray<Type.TString>;
|
|
996
|
+
}>, Type.TObject<{
|
|
997
|
+
provider: Type.TLiteral<"webhook">;
|
|
998
|
+
}>]>;
|
|
963
999
|
cooldown_minutes: Type.TOptional<Type.TNumber>;
|
|
964
1000
|
}>>>;
|
|
965
1001
|
environment: Type.TString;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/type-exports.d.ts
CHANGED
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
* Import from "griffin/types" for TypeScript type checking.
|
|
4
4
|
*/
|
|
5
5
|
export type { String, HttpRequestDSL, Frequency, Wait, VariableRef, BinaryPredicate, Assertion, Assertions, NodeDSL, Edge, MonitorDSL, } from "./schema.js";
|
|
6
|
+
export type { IntegrationCategory, NotificationProvider, SecretsProvider, Provider, } from "./integrations.js";
|
|
6
7
|
//# sourceMappingURL=type-exports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-exports.d.ts","sourceRoot":"","sources":["../src/type-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,MAAM,EACN,cAAc,EACd,SAAS,EACT,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,UAAU,GACX,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"type-exports.d.ts","sourceRoot":"","sources":["../src/type-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,MAAM,EACN,cAAc,EACd,SAAS,EACT,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,QAAQ,GACT,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -39,10 +39,20 @@ export type { VariableRef } from "./variable.js";
|
|
|
39
39
|
export { secret, isSecretRef } from "./secrets.js";
|
|
40
40
|
export type { SecretOptions } from "./secrets.js";
|
|
41
41
|
export { notify } from "./notifications.js";
|
|
42
|
-
export {
|
|
42
|
+
export {
|
|
43
|
+
MonitorNotificationSchema,
|
|
44
|
+
NotificationRoutingSchema,
|
|
45
|
+
SlackRoutingSchema,
|
|
46
|
+
EmailRoutingSchema,
|
|
47
|
+
WebhookRoutingSchema,
|
|
48
|
+
} from "./notifications.js";
|
|
43
49
|
export type {
|
|
44
50
|
NotificationTrigger,
|
|
45
51
|
MonitorNotification,
|
|
52
|
+
NotificationRouting,
|
|
53
|
+
SlackRouting,
|
|
54
|
+
EmailRouting,
|
|
55
|
+
WebhookRouting,
|
|
46
56
|
} from "./notifications.js";
|
|
47
57
|
|
|
48
58
|
// ============================================================================
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Type, type Static } from "typebox";
|
|
2
|
+
import { StringEnum } from "./shared.js";
|
|
3
|
+
export const IntegrationCategorySchema = StringEnum([
|
|
4
|
+
"notifications",
|
|
5
|
+
"secrets",
|
|
6
|
+
"metrics",
|
|
7
|
+
], {$id: "IntegrationCategory"});
|
|
8
|
+
|
|
9
|
+
export const NotificationProviderSchema = StringEnum([
|
|
10
|
+
"slack",
|
|
11
|
+
"email",
|
|
12
|
+
"webhook",
|
|
13
|
+
], {$id: "NotificationProvider"});
|
|
14
|
+
|
|
15
|
+
export const SecretsProviderSchema = StringEnum([
|
|
16
|
+
//Type.Literal("env"),
|
|
17
|
+
"aws",
|
|
18
|
+
"vault",
|
|
19
|
+
], {$id: "SecretsProvider"});
|
|
20
|
+
export const ProviderSchema = StringEnum([
|
|
21
|
+
"aws",
|
|
22
|
+
"vault",
|
|
23
|
+
"slack",
|
|
24
|
+
"email",
|
|
25
|
+
"webhook",
|
|
26
|
+
], {$id: "Provider"});
|
|
27
|
+
|
|
28
|
+
export type IntegrationCategory = Static<typeof IntegrationCategorySchema>;
|
|
29
|
+
|
|
30
|
+
export type SecretsProvider = Static<typeof SecretsProviderSchema>;
|
|
31
|
+
export type NotificationProvider = Static<typeof NotificationProviderSchema>;
|
|
32
|
+
export type Provider = Static<typeof ProviderSchema>;
|
package/src/notifications.ts
CHANGED
|
@@ -35,13 +35,43 @@ export const NotificationTriggerSchema = Type.Union([
|
|
|
35
35
|
export type NotificationTrigger = Static<typeof NotificationTriggerSchema>;
|
|
36
36
|
|
|
37
37
|
// =============================================================================
|
|
38
|
-
//
|
|
38
|
+
// Routing (discriminated union per provider)
|
|
39
|
+
// =============================================================================
|
|
40
|
+
|
|
41
|
+
export const SlackRoutingSchema = Type.Object({
|
|
42
|
+
provider: Type.Literal("slack"),
|
|
43
|
+
channel: Type.String(),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export const EmailRoutingSchema = Type.Object({
|
|
47
|
+
provider: Type.Literal("email"),
|
|
48
|
+
toAddresses: Type.Array(Type.String()),
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export const WebhookRoutingSchema = Type.Object({
|
|
52
|
+
provider: Type.Literal("webhook"),
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
export const NotificationRoutingSchema = Type.Union([
|
|
56
|
+
SlackRoutingSchema,
|
|
57
|
+
EmailRoutingSchema,
|
|
58
|
+
WebhookRoutingSchema,
|
|
59
|
+
]);
|
|
60
|
+
|
|
61
|
+
export type SlackRouting = Static<typeof SlackRoutingSchema>;
|
|
62
|
+
export type EmailRouting = Static<typeof EmailRoutingSchema>;
|
|
63
|
+
export type WebhookRouting = Static<typeof WebhookRoutingSchema>;
|
|
64
|
+
export type NotificationRouting = Static<typeof NotificationRoutingSchema>;
|
|
65
|
+
|
|
66
|
+
// =============================================================================
|
|
67
|
+
// Monitor Notification (DSL config: trigger + integration + routing)
|
|
39
68
|
// =============================================================================
|
|
40
69
|
|
|
41
70
|
export const MonitorNotificationSchema = Type.Object(
|
|
42
71
|
{
|
|
43
72
|
trigger: NotificationTriggerSchema,
|
|
44
73
|
integration: Type.String(),
|
|
74
|
+
routing: NotificationRoutingSchema,
|
|
45
75
|
cooldown_minutes: Type.Optional(Type.Number({ minimum: 0 })),
|
|
46
76
|
},
|
|
47
77
|
{ $id: "MonitorNotification" },
|
|
@@ -50,7 +80,7 @@ export const MonitorNotificationSchema = Type.Object(
|
|
|
50
80
|
export type MonitorNotification = Static<typeof MonitorNotificationSchema>;
|
|
51
81
|
|
|
52
82
|
// =============================================================================
|
|
53
|
-
// Notification Builder
|
|
83
|
+
// Notification Builder (type-safe: provider-specific terminal methods)
|
|
54
84
|
// =============================================================================
|
|
55
85
|
|
|
56
86
|
class NotificationBuilder {
|
|
@@ -66,15 +96,37 @@ class NotificationBuilder {
|
|
|
66
96
|
return this;
|
|
67
97
|
}
|
|
68
98
|
|
|
69
|
-
|
|
70
|
-
|
|
99
|
+
toSlack(channel: string): MonitorNotification {
|
|
100
|
+
return {
|
|
101
|
+
trigger: this.trigger,
|
|
102
|
+
integration: "slack",
|
|
103
|
+
routing: { provider: "slack", channel },
|
|
104
|
+
...(this.cooldownMinutes !== undefined && {
|
|
105
|
+
cooldown_minutes: this.cooldownMinutes,
|
|
106
|
+
}),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
toEmail(toAddresses: string[]): MonitorNotification {
|
|
111
|
+
return {
|
|
112
|
+
trigger: this.trigger,
|
|
113
|
+
integration: "email",
|
|
114
|
+
routing: { provider: "email", toAddresses },
|
|
115
|
+
...(this.cooldownMinutes !== undefined && {
|
|
116
|
+
cooldown_minutes: this.cooldownMinutes,
|
|
117
|
+
}),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
toWebhook(integration: string): MonitorNotification {
|
|
122
|
+
return {
|
|
71
123
|
trigger: this.trigger,
|
|
72
|
-
integration
|
|
124
|
+
integration,
|
|
125
|
+
routing: { provider: "webhook" },
|
|
126
|
+
...(this.cooldownMinutes !== undefined && {
|
|
127
|
+
cooldown_minutes: this.cooldownMinutes,
|
|
128
|
+
}),
|
|
73
129
|
};
|
|
74
|
-
if (this.cooldownMinutes !== undefined) {
|
|
75
|
-
result.cooldown_minutes = this.cooldownMinutes;
|
|
76
|
-
}
|
|
77
|
-
return result;
|
|
78
130
|
}
|
|
79
131
|
}
|
|
80
132
|
|
package/src/schema-exports.ts
CHANGED
|
@@ -50,6 +50,14 @@ export {
|
|
|
50
50
|
SUPPORTED_MONITOR_VERSIONS,
|
|
51
51
|
} from "./schema.js";
|
|
52
52
|
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
IntegrationCategorySchema,
|
|
56
|
+
NotificationProviderSchema,
|
|
57
|
+
SecretsProviderSchema,
|
|
58
|
+
ProviderSchema,
|
|
59
|
+
} from "./integrations.js";
|
|
60
|
+
|
|
53
61
|
// Type exports
|
|
54
62
|
export type {
|
|
55
63
|
MonitorDSL,
|