anton-bakker-deploy-engine 0.2.2 → 0.2.4
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/README.md +110 -3
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/slack.d.ts +26 -0
- package/dist/slack.d.ts.map +1 -0
- package/dist/slack.js +130 -0
- package/dist/slack.js.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/verify.d.ts +1 -0
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +13 -5
- package/dist/verify.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -28,6 +28,12 @@ Zero runtime dependencies. TypeScript. ESM. Node.js ≥ 20.
|
|
|
28
28
|
- [State Persistence and Resume](#state-persistence-and-resume)
|
|
29
29
|
- [Clearing State](#clearing-state)
|
|
30
30
|
- [Default Environments](#default-environments)
|
|
31
|
+
- [Slack Notifier](#slack-notifier)
|
|
32
|
+
- [Setup](#setup)
|
|
33
|
+
- [Threading](#threading)
|
|
34
|
+
- [Severity Levels](#severity-levels)
|
|
35
|
+
- [Configurable Events](#configurable-events)
|
|
36
|
+
- [Constructor Options](#constructor-options)
|
|
31
37
|
- [Types Reference](#types-reference)
|
|
32
38
|
- [Publishing](#publishing)
|
|
33
39
|
- [Development](#development)
|
|
@@ -64,6 +70,7 @@ src/
|
|
|
64
70
|
├── verify.ts # Standalone verification functions (Layer 1–4 checks)
|
|
65
71
|
├── pipeline.ts # Gate builder + default environment configs
|
|
66
72
|
├── engine.ts # PipelineEngine class (gate executor, state, resume)
|
|
73
|
+
├── slack.ts # Optional Slack notifier (threading, severity, configurable)
|
|
67
74
|
└── index.ts # Public API — all exports
|
|
68
75
|
```
|
|
69
76
|
|
|
@@ -77,10 +84,14 @@ import {
|
|
|
77
84
|
assertApiHealth, deriveExpectations, summarize,
|
|
78
85
|
// Pipeline engine
|
|
79
86
|
PipelineEngine, buildGates, DEFAULT_ENVIRONMENTS,
|
|
87
|
+
// Slack notifier (optional)
|
|
88
|
+
SlackNotifier,
|
|
80
89
|
// Types
|
|
81
90
|
type CheckResult, type GateDefinition, type GateResult,
|
|
82
91
|
type EnvironmentConfig, type PipelineState, type PipelineReport,
|
|
83
92
|
type CheckExecutor, type ExecutionContext,
|
|
93
|
+
type SlackNotifierOptions, type SlackMessageConfig,
|
|
94
|
+
type SlackSeverity, type SlackEventConfig,
|
|
84
95
|
} from 'anton-bakker-deploy-engine';
|
|
85
96
|
```
|
|
86
97
|
|
|
@@ -718,6 +729,97 @@ const myConfig: EnvironmentConfig = {
|
|
|
718
729
|
};
|
|
719
730
|
```
|
|
720
731
|
|
|
732
|
+
## Slack Notifier
|
|
733
|
+
|
|
734
|
+
Optional threaded Slack notifications for pipeline events. Zero dependencies — uses Node.js built-in `fetch`.
|
|
735
|
+
|
|
736
|
+
When no `SlackNotifier` is wired up, the pipeline runs identically — Slack is purely additive.
|
|
737
|
+
|
|
738
|
+
### Setup
|
|
739
|
+
|
|
740
|
+
```typescript
|
|
741
|
+
import { PipelineEngine, SlackNotifier } from 'anton-bakker-deploy-engine';
|
|
742
|
+
|
|
743
|
+
const slack = new SlackNotifier({
|
|
744
|
+
token: process.env.SLACK_BOT_TOKEN!, // xoxb-...
|
|
745
|
+
channel: 'C0123DEPLOY', // Channel ID
|
|
746
|
+
});
|
|
747
|
+
|
|
748
|
+
const engine = new PipelineEngine({ gates, checks, ctx });
|
|
749
|
+
engine.on(slack.listener());
|
|
750
|
+
|
|
751
|
+
await engine.run(); // Threaded Slack messages sent automatically
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
### Threading
|
|
755
|
+
|
|
756
|
+
All messages for a single pipeline run are grouped in one Slack thread:
|
|
757
|
+
|
|
758
|
+
1. `pipeline:start` → creates the thread parent message
|
|
759
|
+
2. Gate failures, bake alarms, rollback triggers → reply in thread
|
|
760
|
+
3. `pipeline:end` → final summary in thread
|
|
761
|
+
|
|
762
|
+
Failure replies are broadcast to the channel (visible outside the thread) so critical issues aren't buried. Success replies stay in the thread to keep the channel clean.
|
|
763
|
+
|
|
764
|
+
### Severity Levels
|
|
765
|
+
|
|
766
|
+
Each message has a severity that controls its colour and emoji:
|
|
767
|
+
|
|
768
|
+
| Severity | Colour | Emoji | Used for |
|
|
769
|
+
|----------|--------|-------|----------|
|
|
770
|
+
| `info` | 🟢 `#28a745` | ℹ️ / 🚀 / ✅ | Pipeline start, pipeline success |
|
|
771
|
+
| `warning` | 🟡 `#ffc107` | ⚠️ | Gate failed (abort/alert action), pipeline failed |
|
|
772
|
+
| `critical` | 🔴 `#dc3545` | 🚨 | Rollback triggered, bake alarm, pipeline rolled back |
|
|
773
|
+
|
|
774
|
+
Severity auto-escalates based on the event outcome:
|
|
775
|
+
- `pipeline:end` with `result: 'failed'` → escalates to `warning`
|
|
776
|
+
- `pipeline:end` with `result: 'rolled-back'` → escalates to `critical`
|
|
777
|
+
|
|
778
|
+
### Configurable Events
|
|
779
|
+
|
|
780
|
+
By default, five event types trigger Slack messages. Override per project:
|
|
781
|
+
|
|
782
|
+
```typescript
|
|
783
|
+
const slack = new SlackNotifier({
|
|
784
|
+
token: process.env.SLACK_BOT_TOKEN!,
|
|
785
|
+
channel: 'C0123DEPLOY',
|
|
786
|
+
config: {
|
|
787
|
+
events: {
|
|
788
|
+
'pipeline:start': { severity: 'info', enabled: false }, // Silent start
|
|
789
|
+
'pipeline:end': { severity: 'info', enabled: true },
|
|
790
|
+
'gate:end': { severity: 'warning', enabled: true },
|
|
791
|
+
'bake:alarm': { severity: 'critical', enabled: true },
|
|
792
|
+
'rollback:trigger': { severity: 'critical', enabled: true },
|
|
793
|
+
},
|
|
794
|
+
},
|
|
795
|
+
});
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
**Default configuration:**
|
|
799
|
+
|
|
800
|
+
| Event | Default severity | Enabled | Sends on |
|
|
801
|
+
|-------|-----------------|---------|----------|
|
|
802
|
+
| `pipeline:start` | `info` | ✅ | Every run |
|
|
803
|
+
| `pipeline:end` | `info` (auto-escalates) | ✅ | Every run |
|
|
804
|
+
| `gate:end` | `warning` | ✅ | Failure only |
|
|
805
|
+
| `bake:alarm` | `critical` | ✅ | Alarm fires during bake |
|
|
806
|
+
| `rollback:trigger` | `critical` | ✅ | Auto-rollback initiated |
|
|
807
|
+
|
|
808
|
+
### Constructor Options
|
|
809
|
+
|
|
810
|
+
| Option | Type | Required | Default | Description |
|
|
811
|
+
|--------|------|----------|---------|-------------|
|
|
812
|
+
| `token` | `string` | Yes | — | Slack Bot token (`xoxb-...`) |
|
|
813
|
+
| `channel` | `string` | Yes | — | Slack channel ID |
|
|
814
|
+
| `config` | `SlackMessageConfig` | No | All 5 events enabled | Per-event enable/severity |
|
|
815
|
+
| `broadcastFailures` | `boolean` | No | `true` | Broadcast warning/critical replies to channel |
|
|
816
|
+
| `username` | `string` | No | — | Bot username override |
|
|
817
|
+
| `iconEmoji` | `string` | No | — | Bot icon emoji override |
|
|
818
|
+
|
|
819
|
+
### Error Handling
|
|
820
|
+
|
|
821
|
+
The notifier is fire-and-forget. If Slack is unreachable, the token is invalid, or the API returns an error, the failure is silently caught. The pipeline is never affected by Slack failures.
|
|
822
|
+
|
|
721
823
|
## Types Reference
|
|
722
824
|
|
|
723
825
|
All types are exported from the package root.
|
|
@@ -733,6 +835,10 @@ All types are exported from the package root.
|
|
|
733
835
|
| `CheckExecutor` | `(ctx: ExecutionContext) => Promise<CheckResult>` — async check function |
|
|
734
836
|
| `ExecutionContext` | Runtime context passed to every check executor |
|
|
735
837
|
| `DeployExpectations` | Output of `deriveExpectations()`: table count/names, Cognito groups, API domain |
|
|
838
|
+
| `SlackSeverity` | `'info' \| 'warning' \| 'critical'` — message severity level |
|
|
839
|
+
| `SlackEventConfig` | Per-event config: `{ severity: SlackSeverity; enabled: boolean }` |
|
|
840
|
+
| `SlackMessageConfig` | Map of pipeline event types to `SlackEventConfig` |
|
|
841
|
+
| `SlackNotifierOptions` | Constructor options for `SlackNotifier` |
|
|
736
842
|
|
|
737
843
|
## Publishing
|
|
738
844
|
|
|
@@ -797,8 +903,9 @@ npm run lint
|
|
|
797
903
|
│ ├── pipeline.ts # Gate builder + default configs
|
|
798
904
|
│ └── index.ts # Public exports
|
|
799
905
|
├── __tests__/
|
|
800
|
-
│ ├── verify.test.ts #
|
|
801
|
-
│ ├── engine.test.ts #
|
|
906
|
+
│ ├── verify.test.ts # 49 tests for verification functions
|
|
907
|
+
│ ├── engine.test.ts # 23 tests for engine + pipeline
|
|
908
|
+
│ ├── slack.test.ts # 17 tests for Slack notifier
|
|
802
909
|
│ └── fixtures/ # Test fixtures (schema, config, auth stack)
|
|
803
910
|
├── scripts/
|
|
804
911
|
│ └── publish.sh # npm publish script
|
|
@@ -807,7 +914,7 @@ npm run lint
|
|
|
807
914
|
└── package.json
|
|
808
915
|
```
|
|
809
916
|
|
|
810
|
-
**Test runner:** Vitest. All
|
|
917
|
+
**Test runner:** Vitest. All 89 tests run in ~400ms.
|
|
811
918
|
|
|
812
919
|
**TypeScript config:** Strict mode, ESM (`"type": "module"`), `NodeNext` module resolution, source maps and declaration maps enabled.
|
|
813
920
|
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
export { PipelineEngine } from './engine.js';
|
|
8
8
|
export { buildGates, DEFAULT_ENVIRONMENTS } from './pipeline.js';
|
|
9
9
|
export { verifyAmplifyOutputs, verifyBuildArtifact, parseTableCount, assertTableCount, parseEcsStatus, assertCognitoGroups, assertApiHealth, deriveExpectations, summarize, } from './verify.js';
|
|
10
|
+
export { SlackNotifier } from './slack.js';
|
|
10
11
|
export { computeStateHash } from './types.js';
|
|
11
|
-
export
|
|
12
|
+
export { createError, fromUnknown, isAppError, } from 'anton-bakker-errors';
|
|
13
|
+
export type { AppError, ErrorSeverity, ErrorCategory, ErrorReporter, } from 'anton-bakker-errors';
|
|
14
|
+
export type { CheckResult, GateDefinition, GateResult, EnvironmentConfig, PipelineState, PipelineReport, CheckExecutor, ExecutionContext, PipelineEvent, PipelineEventType, PipelineEventListener, SlackSeverity, SlackEventConfig, SlackMessageConfig, SlackNotifierOptions, } from './types.js';
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
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;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EACL,WAAW,EAAE,WAAW,EAAE,UAAU,GACrC,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GACtD,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,10 @@ export { PipelineEngine } from './engine.js';
|
|
|
10
10
|
export { buildGates, DEFAULT_ENVIRONMENTS } from './pipeline.js';
|
|
11
11
|
// Verification functions (Layer 1-3 checks)
|
|
12
12
|
export { verifyAmplifyOutputs, verifyBuildArtifact, parseTableCount, assertTableCount, parseEcsStatus, assertCognitoGroups, assertApiHealth, deriveExpectations, summarize, } from './verify.js';
|
|
13
|
+
// Slack notifier (optional)
|
|
14
|
+
export { SlackNotifier } from './slack.js';
|
|
13
15
|
// Utilities
|
|
14
16
|
export { computeStateHash } from './types.js';
|
|
17
|
+
// Error handling (re-exported from anton-bakker-errors)
|
|
18
|
+
export { createError, fromUnknown, isAppError, } from 'anton-bakker-errors';
|
|
15
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEjE,4CAA4C;AAC5C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEjE,4CAA4C;AAC5C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,wDAAwD;AACxD,OAAO,EACL,WAAW,EAAE,WAAW,EAAE,UAAU,GACrC,MAAM,qBAAqB,CAAC"}
|
package/dist/slack.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/slack.ts — Optional Slack notifier for pipeline events.
|
|
3
|
+
*
|
|
4
|
+
* Posts threaded messages to a Slack channel via the Web API (chat.postMessage).
|
|
5
|
+
* Zero dependencies — uses Node.js built-in fetch.
|
|
6
|
+
* Fire-and-forget: Slack failures are logged but never break the pipeline.
|
|
7
|
+
*/
|
|
8
|
+
import type { PipelineEventListener, SlackNotifierOptions } from './types.js';
|
|
9
|
+
export declare class SlackNotifier {
|
|
10
|
+
private token;
|
|
11
|
+
private channel;
|
|
12
|
+
private config;
|
|
13
|
+
private broadcastFailures;
|
|
14
|
+
private username?;
|
|
15
|
+
private iconEmoji?;
|
|
16
|
+
private threadTs?;
|
|
17
|
+
constructor(opts: SlackNotifierOptions);
|
|
18
|
+
/** Returns a PipelineEventListener to pass to engine.on() */
|
|
19
|
+
listener(): PipelineEventListener;
|
|
20
|
+
private handle;
|
|
21
|
+
private effectiveSeverity;
|
|
22
|
+
private formatMessage;
|
|
23
|
+
private post;
|
|
24
|
+
private fmtDuration;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=slack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACK,qBAAqB,EAChB,oBAAoB,EACzC,MAAM,YAAY,CAAC;AA4BpB,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,IAAI,EAAE,oBAAoB;IAStC,6DAA6D;IAC7D,QAAQ,IAAI,qBAAqB;YAInB,MAAM;IAiBpB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,aAAa;YAgCP,IAAI;IA+BlB,OAAO,CAAC,WAAW;CAIpB"}
|
package/dist/slack.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
const SLACK_API = 'https://slack.com/api/chat.postMessage';
|
|
2
|
+
const SEVERITY_COLORS = {
|
|
3
|
+
info: '#28a745',
|
|
4
|
+
warning: '#ffc107',
|
|
5
|
+
critical: '#dc3545',
|
|
6
|
+
};
|
|
7
|
+
const SEVERITY_EMOJI = {
|
|
8
|
+
info: 'ℹ️',
|
|
9
|
+
warning: '⚠️',
|
|
10
|
+
critical: '🚨',
|
|
11
|
+
};
|
|
12
|
+
const DEFAULT_CONFIG = {
|
|
13
|
+
events: {
|
|
14
|
+
'pipeline:start': { severity: 'info', enabled: true },
|
|
15
|
+
'pipeline:end': { severity: 'info', enabled: true },
|
|
16
|
+
'gate:end': { severity: 'warning', enabled: true },
|
|
17
|
+
'bake:alarm': { severity: 'critical', enabled: true },
|
|
18
|
+
'rollback:trigger': { severity: 'critical', enabled: true },
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export class SlackNotifier {
|
|
22
|
+
token;
|
|
23
|
+
channel;
|
|
24
|
+
config;
|
|
25
|
+
broadcastFailures;
|
|
26
|
+
username;
|
|
27
|
+
iconEmoji;
|
|
28
|
+
threadTs;
|
|
29
|
+
constructor(opts) {
|
|
30
|
+
this.token = opts.token;
|
|
31
|
+
this.channel = opts.channel;
|
|
32
|
+
this.config = opts.config ?? DEFAULT_CONFIG;
|
|
33
|
+
this.broadcastFailures = opts.broadcastFailures ?? true;
|
|
34
|
+
this.username = opts.username;
|
|
35
|
+
this.iconEmoji = opts.iconEmoji;
|
|
36
|
+
}
|
|
37
|
+
/** Returns a PipelineEventListener to pass to engine.on() */
|
|
38
|
+
listener() {
|
|
39
|
+
return (event) => { void this.handle(event); };
|
|
40
|
+
}
|
|
41
|
+
async handle(event) {
|
|
42
|
+
const key = event.type;
|
|
43
|
+
const eventConfig = this.config.events[key];
|
|
44
|
+
if (!eventConfig?.enabled)
|
|
45
|
+
return;
|
|
46
|
+
// Determine effective severity — escalate on failure
|
|
47
|
+
const severity = this.effectiveSeverity(event, eventConfig.severity);
|
|
48
|
+
const message = this.formatMessage(event, severity);
|
|
49
|
+
if (!message)
|
|
50
|
+
return;
|
|
51
|
+
try {
|
|
52
|
+
await this.post(message, severity);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Fire-and-forget — never break the pipeline
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
effectiveSeverity(event, base) {
|
|
59
|
+
if (event.type === 'pipeline:end') {
|
|
60
|
+
const result = event.detail?.result;
|
|
61
|
+
if (result === 'rolled-back')
|
|
62
|
+
return 'critical';
|
|
63
|
+
if (result === 'failed')
|
|
64
|
+
return 'warning';
|
|
65
|
+
}
|
|
66
|
+
if (event.type === 'gate:end') {
|
|
67
|
+
const status = event.detail?.status;
|
|
68
|
+
if (status === 'passed')
|
|
69
|
+
return 'info';
|
|
70
|
+
}
|
|
71
|
+
return base;
|
|
72
|
+
}
|
|
73
|
+
formatMessage(event, severity) {
|
|
74
|
+
const emoji = SEVERITY_EMOJI[severity];
|
|
75
|
+
const d = event.detail ?? {};
|
|
76
|
+
switch (event.type) {
|
|
77
|
+
case 'pipeline:start':
|
|
78
|
+
return `🚀 *Deploy started* — \`${d.environment ?? 'unknown'}\`\nRun: \`${event.runId}\``;
|
|
79
|
+
case 'pipeline:end': {
|
|
80
|
+
const result = d.result;
|
|
81
|
+
const icon = result === 'passed' ? '✅' : emoji;
|
|
82
|
+
const dur = d.duration ? ` | Duration: ${this.fmtDuration(d.duration)}` : '';
|
|
83
|
+
return `${icon} *Deploy ${result}* — \`${d.environment ?? ''}\`${dur}`;
|
|
84
|
+
}
|
|
85
|
+
case 'gate:end': {
|
|
86
|
+
const status = d.status;
|
|
87
|
+
if (status === 'passed')
|
|
88
|
+
return null; // only notify on failure
|
|
89
|
+
return `${emoji} *Gate failed: ${event.gate}*\nAction: *${d.action ?? 'unknown'}*`;
|
|
90
|
+
}
|
|
91
|
+
case 'bake:alarm':
|
|
92
|
+
return `${emoji} *Bake alarm fired* — gate \`${event.gate}\`\nAlarm detected during bake period`;
|
|
93
|
+
case 'rollback:trigger':
|
|
94
|
+
return `${emoji} *Rollback triggered* — gate \`${event.gate}\`\nReason: ${d.reason ?? 'gate failure'}`;
|
|
95
|
+
default:
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async post(text, severity) {
|
|
100
|
+
const isFailure = severity === 'critical' || severity === 'warning';
|
|
101
|
+
const broadcast = isFailure && this.broadcastFailures && !!this.threadTs;
|
|
102
|
+
const body = {
|
|
103
|
+
channel: this.channel,
|
|
104
|
+
text,
|
|
105
|
+
attachments: [{ color: SEVERITY_COLORS[severity], text }],
|
|
106
|
+
...(this.threadTs && { thread_ts: this.threadTs }),
|
|
107
|
+
...(broadcast && { reply_broadcast: true }),
|
|
108
|
+
...(this.username && { username: this.username }),
|
|
109
|
+
...(this.iconEmoji && { icon_emoji: this.iconEmoji }),
|
|
110
|
+
};
|
|
111
|
+
const res = await fetch(SLACK_API, {
|
|
112
|
+
method: 'POST',
|
|
113
|
+
headers: {
|
|
114
|
+
'Authorization': `Bearer ${this.token}`,
|
|
115
|
+
'Content-Type': 'application/json; charset=utf-8',
|
|
116
|
+
},
|
|
117
|
+
body: JSON.stringify(body),
|
|
118
|
+
});
|
|
119
|
+
const json = await res.json();
|
|
120
|
+
// Store thread parent ts from the first message
|
|
121
|
+
if (json.ok && json.ts && !this.threadTs) {
|
|
122
|
+
this.threadTs = json.ts;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
fmtDuration(ms) {
|
|
126
|
+
const s = Math.round(ms / 1000);
|
|
127
|
+
return s >= 60 ? `${Math.floor(s / 60)}m ${s % 60}s` : `${s}s`;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=slack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AppError } from 'anton-bakker-errors';
|
|
1
2
|
export interface CheckResult {
|
|
2
3
|
name: string;
|
|
3
4
|
passed: boolean;
|
|
@@ -5,6 +6,8 @@ export interface CheckResult {
|
|
|
5
6
|
actual?: string | number;
|
|
6
7
|
duration?: number;
|
|
7
8
|
error?: string;
|
|
9
|
+
/** Structured error — available when the check uses anton-bakker-errors */
|
|
10
|
+
appError?: AppError;
|
|
8
11
|
}
|
|
9
12
|
export interface GateDefinition {
|
|
10
13
|
id: string;
|
|
@@ -103,4 +106,30 @@ export interface ExecutionContext {
|
|
|
103
106
|
}
|
|
104
107
|
/** Compute SHA-256 hash of a string */
|
|
105
108
|
export declare function computeStateHash(content: string): string;
|
|
109
|
+
/** Severity level for Slack messages — controls colour and emoji */
|
|
110
|
+
export type SlackSeverity = 'info' | 'warning' | 'critical';
|
|
111
|
+
/** Per-event Slack notification config */
|
|
112
|
+
export interface SlackEventConfig {
|
|
113
|
+
severity: SlackSeverity;
|
|
114
|
+
enabled: boolean;
|
|
115
|
+
}
|
|
116
|
+
/** Which pipeline events trigger Slack messages and at what severity */
|
|
117
|
+
export interface SlackMessageConfig {
|
|
118
|
+
events: Partial<Record<'pipeline:start' | 'pipeline:end' | 'gate:end' | 'bake:alarm' | 'rollback:trigger', SlackEventConfig>>;
|
|
119
|
+
}
|
|
120
|
+
/** Options for constructing a SlackNotifier */
|
|
121
|
+
export interface SlackNotifierOptions {
|
|
122
|
+
/** Slack Bot token (xoxb-...) */
|
|
123
|
+
token: string;
|
|
124
|
+
/** Slack channel ID */
|
|
125
|
+
channel: string;
|
|
126
|
+
/** Per-event configuration (defaults provided if omitted) */
|
|
127
|
+
config?: SlackMessageConfig;
|
|
128
|
+
/** Broadcast critical/warning thread replies to the channel (default: true) */
|
|
129
|
+
broadcastFailures?: boolean;
|
|
130
|
+
/** Bot username override */
|
|
131
|
+
username?: string;
|
|
132
|
+
/** Bot icon emoji override */
|
|
133
|
+
iconEmoji?: string;
|
|
134
|
+
}
|
|
106
135
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAyHpC,uCAAuC;AACvC,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
package/dist/verify.d.ts
CHANGED
package/dist/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAwDvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAyClE;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAsBzG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAQ9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAmBpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,CASjG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAOpE;AAID,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAwDvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAyClE;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAsBzG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAQ9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAmBpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,CASjG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAOpE;AAID,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,kBAAkB,CA4CrB;AAID;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAQrH"}
|
package/dist/verify.js
CHANGED
|
@@ -194,11 +194,19 @@ export function assertApiHealth(response) {
|
|
|
194
194
|
*/
|
|
195
195
|
export function deriveExpectations(opts) {
|
|
196
196
|
const config = JSON.parse(readFileSync(opts.configPath, 'utf-8'));
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
197
|
+
let tableNames;
|
|
198
|
+
if (opts.tableRegistryPath) {
|
|
199
|
+
const registry = readFileSync(opts.tableRegistryPath, 'utf-8');
|
|
200
|
+
tableNames = [...registry.matchAll(/name:\s*'(\w+)'/g)].map(m => m[1]);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
const schema = readFileSync(opts.schemaPath, 'utf-8');
|
|
204
|
+
const allTypes = (schema.match(/^type (\w+) \{/gm) || []).map(m => m.match(/^type (\w+)/)[1]);
|
|
205
|
+
tableNames = allTypes.filter(n => !['Query', 'Mutation', 'Subscription'].includes(n) &&
|
|
206
|
+
!n.endsWith('Input') && !n.endsWith('Connection') &&
|
|
207
|
+
!n.endsWith('Result') && !n.endsWith('Output') &&
|
|
208
|
+
!n.endsWith('Breakdown') && !n.endsWith('Proposal'));
|
|
209
|
+
}
|
|
202
210
|
// Cognito groups from auth stack (optional)
|
|
203
211
|
let cognitoGroups = [];
|
|
204
212
|
if (opts.authStackPath) {
|
package/dist/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anton-bakker-deploy-engine",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Self-validating AWS deployment engine with 4-layer verification: exists, configured, functional, project-specific",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,5 +35,8 @@
|
|
|
35
35
|
"typescript": "^5.8.3",
|
|
36
36
|
"typescript-eslint": ">=8.58.2",
|
|
37
37
|
"vitest": "^4.1.2"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"anton-bakker-errors": "0.1.0"
|
|
38
41
|
}
|
|
39
42
|
}
|