@decentrys/sentinel-sdk 0.1.1 → 0.1.2

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 CHANGED
@@ -12,51 +12,67 @@ when those conditions actually occur.
12
12
  npm install @decentrys/sentinel-sdk
13
13
  ```
14
14
 
15
+ Zero runtime dependencies. Node 18+. Types included.
16
+
15
17
  ## Getting an API key
16
18
 
17
19
  Sign in at [decentrys.com/developers](https://decentrys.com/developers) and create a key.
18
20
 
19
- There are two kinds, and picking the wrong one is the mistake that matters:
20
-
21
21
  | Prefix | Where it belongs | Why |
22
22
  |---|---|---|
23
23
  | `dk_pub_live_…` | **Publishable.** Ships inside a wallet, extension or mobile app. | Bounded to the origins you register and to read-only Protect endpoints. Anyone can extract it from your bundle; that's expected, and it's why it can't do anything dangerous. |
24
24
  | `dk_live_…` | **Secret.** Server-side only. | Full scope access. If this ends up in a client bundle it is a leaked credential the moment it ships. |
25
25
 
26
- **Sentinel needs a secret key.** A publishable key is refused at construction —
27
- configuring detection is not something a credential shipped inside a client may do.
26
+ **Sentinel needs a secret key.** A key beginning `dk_pub_` throws at
27
+ construction — configuring detection is not something a credential shipped
28
+ inside a client may do.
28
29
 
29
30
  ## Quick start
30
31
 
31
32
  ```ts
32
33
  import { Sentinel } from '@decentrys/sentinel-sdk';
33
34
 
34
- const sentinel = new Sentinel({ apiKey: 'dk_live_...' });
35
+ const sentinel = new Sentinel({ apiKey: process.env.DECENTRYS_API_KEY! });
36
+ const projectId = 'proj_…';
35
37
 
36
38
  // 1. What do you want watched?
37
- await sentinel.registerContract({ projectId, chain: 'ethereum', address: '0xabc...', label: 'Vault v2' });
38
- await sentinel.registerTreasury({ projectId, chain: 'ethereum', address: '0xdef...' });
39
+ const vault = await sentinel.registerContract({
40
+ projectId, chain: 'ethereum', address: '0xabc…', label: 'Vault v2',
41
+ });
42
+ await sentinel.registerTreasury({
43
+ projectId, chain: 'ethereum', address: '0xdef…', label: 'Ops treasury',
44
+ });
39
45
 
40
46
  // 2. What would worry you?
41
- await sentinel.createRule({
47
+ const rule = await sentinel.createRule({
42
48
  projectId,
43
49
  name: 'Large treasury outflow',
44
- severity: 'HIGH',
50
+ severity: 'HIGH', // INFO | LOW | MEDIUM | HIGH | CRITICAL
45
51
  triggerType: 'treasury.transfer',
46
52
  conditions: {
47
53
  op: 'AND',
48
54
  conditions: [
49
55
  { op: 'eq', field: 'transfer.direction', value: 'OUT' },
50
- { op: 'gt', field: 'transfer.valueUsd', value: 50000 },
56
+ { op: 'gt', field: 'transfer.valueUsd', value: 50_000 },
51
57
  ],
52
58
  },
53
- actions: [{ type: 'ALERT', config: {} }, { type: 'SLACK', config: { webhookUrl } }],
54
- cooldownSeconds: 300,
59
+ actions: [
60
+ { type: 'ALERT', config: {} },
61
+ { type: 'SLACK', config: { webhookUrl: process.env.SLACK_WEBHOOK_URL } },
62
+ ],
63
+ cooldownSeconds: 300, // suppression window; without one, a loop pages you 1000 times
55
64
  });
56
65
 
57
- // 3. Read what fired
58
- const { data: alerts } = await sentinel.listAlerts({ status: 'NEW' });
59
- await sentinel.acknowledgeAlert(alerts[0].id, 'Expected scheduled rebalance.');
66
+ // 3. Read what fired.
67
+ const { data: alerts } = await sentinel.listAlerts({ status: 'NEW', limit: 50 });
68
+ for (const alert of alerts) {
69
+ alert.severity;
70
+ alert.title;
71
+ alert.ruleName;
72
+ alert.facts; // the facts that made the rule fire — an alert without these is unactionable
73
+ alert.txHash;
74
+ await sentinel.acknowledgeAlert(alert.id, 'Expected — scheduled rebalance.');
75
+ }
60
76
  ```
61
77
 
62
78
  `await sentinel.catalog()` returns every fact field, operator and action you can
@@ -65,8 +81,13 @@ build a rule from, so you can generate a rule builder rather than hardcode one.
65
81
  ## Test a rule before you arm it
66
82
 
67
83
  ```ts
68
- const result = await sentinel.testRule(ruleId, { 'transfer.direction': 'OUT', 'transfer.valueUsd': 75000 });
69
- // result.matched -> true, with the comparison that decided it
84
+ const test = await sentinel.testRule(rule.id, {
85
+ 'transfer.direction': 'OUT',
86
+ 'transfer.valueUsd': 75_000,
87
+ });
88
+
89
+ test.matched; // true
90
+ test.explanation; // string[] — which conditions passed and which did not
70
91
  ```
71
92
 
72
93
  A rule nobody has tested is a rule whose behaviour you'll discover during an
@@ -78,12 +99,19 @@ Some things only your system knows: a deploy pipeline running, an internally
78
99
  approved treasury movement, an off-chain governance action.
79
100
 
80
101
  ```ts
81
- await sentinel.reportEvent({ projectId, eventName: 'governance.executed', chain: 'ethereum', txHash, facts: {...} });
102
+ const recorded = await sentinel.reportEvent({
103
+ projectId,
104
+ eventName: 'governance.executed',
105
+ chain: 'ethereum',
106
+ txHash,
107
+ facts: { 'governance.executed': true, proposalId: 42 },
108
+ });
109
+ if (!recorded) console.warn('Sentinel did not record the event.');
82
110
  ```
83
111
 
84
112
  **This is the one method that never throws.** It runs on your hot path, and a
85
- monitoring call must not be able to fail the thing it's monitoring. It returns
86
- a boolean instead.
113
+ monitoring call must not be able to fail the thing it's monitoring. It returns a
114
+ boolean instead.
87
115
 
88
116
  ## Turn an audit into monitoring
89
117
 
@@ -91,21 +119,55 @@ The most valuable thing here. An audit identifies what a contract can do; this
91
119
  converts that into what gets watched.
92
120
 
93
121
  ```ts
94
- import { rulesFromAudit, unmappedCapabilities } from '@decentrys/sentinel-sdk';
122
+ import { rulesFromAudit, unmappedCapabilities, type AuditCapability } from '@decentrys/sentinel-sdk';
95
123
 
96
- const capabilities = [{ type: 'UPGRADEABLE', grantedBy: 'EIP1967' }, { type: 'MINT_AUTHORITY' }];
124
+ const capabilities: AuditCapability[] = [
125
+ { type: 'UPGRADEABLE', grantedBy: 'EIP-1967 implementation slot' },
126
+ { type: 'MINT_AUTHORITY' },
127
+ { type: 'FEE_CONTROL' },
128
+ ];
97
129
 
98
- for (const { rule } of rulesFromAudit({ projectId, capabilities, treasuryThresholdUsd: 50000 })) {
130
+ for (const { capability, rule } of rulesFromAudit({
131
+ projectId,
132
+ capabilities,
133
+ treasuryThresholdUsd: 50_000, // omit and no treasury rule is generated
134
+ })) {
135
+ console.log(`${capability} -> ${rule.name} (${rule.severity})`);
99
136
  await sentinel.createRule(rule);
100
137
  }
101
138
 
102
139
  // Told, not hidden: which capabilities produced no rule.
103
- console.log(unmappedCapabilities(capabilities));
140
+ console.log(unmappedCapabilities(capabilities)); // ['FEE_CONTROL']
104
141
  ```
105
142
 
106
143
  It watches the upgrade **happening**, never the contract **being** upgradeable —
107
144
  a capability is not a fault. Capabilities with no plausible response generate no
108
- rule, because a rule nobody can act on trains a team to close alerts unread.
145
+ rule, because a rule nobody can act on trains a team to close alerts unread. A
146
+ customer handed six rules for nine capabilities is told which three are
147
+ unwatched, so the gap is a decision rather than an assumption.
148
+
149
+ Mapped capability names (aliases in brackets): `UPGRADEABLE` (`PROXY`,
150
+ `UPGRADE_AUTHORITY`, `DELEGATED_EXECUTION`) · `ADMIN_CONTROL` (`ADMIN`) ·
151
+ `OWNERSHIP` (`OWNER`) · `MINT_AUTHORITY` (`MINT`) · `PAUSABLE` (`PAUSE`) ·
152
+ `BLACKLIST` (`FREEZE_AUTHORITY`, `ACCOUNT_FREEZE`) · `FORCED_BALANCE_CHANGE` ·
153
+ `GOVERNANCE`. Anything else comes back from `unmappedCapabilities`.
154
+
155
+ No threshold is guessed on your behalf: omit `treasuryThresholdUsd` and there
156
+ is no treasury rule. A guessed threshold is either so low it pages constantly or
157
+ so high it never fires, and both teach people to ignore it.
158
+
159
+ ## Every method
160
+
161
+ | | Method |
162
+ |---|---|
163
+ | **Targets** | `registerContract(input)` · `registerWallet(input)` · `registerTreasury(input)` · `registerTarget(input, targetType)` · `listTargets(projectId?)` · `setTargetEnabled(id, enabled)` · `removeTarget(id)` |
164
+ | **Rules** | `createRule(input)` · `updateRule(id, changes)` · `deleteRule(id)` · `listRules(projectId?)` · `testRule(id, facts)` · `catalog()` |
165
+ | **Alerts** | `listAlerts({status?, severity?, limit?})` · `getAlert(id)` · `acknowledgeAlert(id, note?)` |
166
+ | **Reporting** | `reportEvent(event)` |
167
+
168
+ `registerTarget` takes any `TargetType`: `CONTRACT` · `WALLET` · `TREASURY` ·
169
+ `MULTISIG` · `LP_POOL` · `ORACLE` · `BRIDGE` · `GOVERNANCE`. Target input is
170
+ `{ projectId, chain, address, label? }`.
109
171
 
110
172
  ## It throws
111
173
 
@@ -114,13 +176,21 @@ registering a contract fails, you must know, or you'll believe you're monitored
114
176
  when you aren't.
115
177
 
116
178
  ```ts
179
+ import { Sentinel, SentinelError } from '@decentrys/sentinel-sdk';
180
+
117
181
  try {
118
- await sentinel.registerContract({ ... });
119
- } catch (e) {
120
- if (e instanceof SentinelError) console.error(e.status, e.message);
182
+ await sentinel.registerContract({ projectId, chain: 'ethereum', address });
183
+ } catch (error) {
184
+ if (error instanceof SentinelError) console.error(error.status, error.code, error.message);
121
185
  }
122
186
  ```
123
187
 
188
+ `SentinelError` carries `status` (`0` for a timeout or network failure) and the
189
+ API's own `code` and `message`. The default deadline is 10 seconds; configure
190
+ with `new Sentinel({ apiKey, timeoutMs, baseUrl, fetch })`.
191
+
192
+ `reportEvent` is the single exception and returns `false` instead.
193
+
124
194
  ## The rest of the SDK
125
195
 
126
196
  | Package | For |
@@ -44,7 +44,7 @@ var DecentrysSentinel = (() => {
44
44
  ];
45
45
 
46
46
  // src/client.ts
47
- var SDK_VERSION = "0.1.0";
47
+ var SDK_VERSION = "0.1.2";
48
48
  var DEFAULT_BASE_URL = "https://api.decentrys.com";
49
49
  var DEFAULT_TIMEOUT_MS = 1e4;
50
50
  var SentinelError = class extends Error {
@@ -12,7 +12,7 @@ var TARGET_TYPES = [
12
12
  ];
13
13
 
14
14
  // src/client.ts
15
- var SDK_VERSION = "0.1.0";
15
+ var SDK_VERSION = "0.1.2";
16
16
  var DEFAULT_BASE_URL = "https://api.decentrys.com";
17
17
  var DEFAULT_TIMEOUT_MS = 1e4;
18
18
  var SentinelError = class extends Error {
package/dist/client.d.ts CHANGED
@@ -16,7 +16,14 @@
16
16
  * customer's own system and must never be able to break it.
17
17
  */
18
18
  import type { Alert, AlertSeverity, MonitoringRule, MonitoringTarget, RuleAction, RuleTestResult, TargetType } from './model';
19
- export declare const SDK_VERSION = "0.1.0";
19
+ /**
20
+ * Sent in the user-agent on every request.
21
+ *
22
+ * Kept in step with package.json by hand — it drifted once already, and a
23
+ * stale value here silently under-reports the real version in server-side
24
+ * telemetry rather than failing in any visible way.
25
+ */
26
+ export declare const SDK_VERSION = "0.1.2";
20
27
  export type FetchLike = (url: string, init: {
21
28
  method: string;
22
29
  headers: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -18,7 +18,14 @@
18
18
  */
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.Sentinel = exports.SentinelError = exports.SDK_VERSION = void 0;
21
- exports.SDK_VERSION = '0.1.0';
21
+ /**
22
+ * Sent in the user-agent on every request.
23
+ *
24
+ * Kept in step with package.json by hand — it drifted once already, and a
25
+ * stale value here silently under-reports the real version in server-side
26
+ * telemetry rather than failing in any visible way.
27
+ */
28
+ exports.SDK_VERSION = '0.1.2';
22
29
  const DEFAULT_BASE_URL = 'https://api.decentrys.com';
23
30
  const DEFAULT_TIMEOUT_MS = 10_000;
24
31
  class SentinelError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,14 @@ import type { RuleAction } from './model';
26
26
  import type { CreateRuleInput } from './client';
27
27
  /** What an audit observed about a contract, in the shape Protect reports it. */
28
28
  export interface AuditCapability {
29
- /** e.g. UPGRADEABLE, MINT_AUTHORITY, PAUSABLE, BLACKLIST, FEE_CONTROL. */
29
+ /**
30
+ * e.g. UPGRADEABLE, MINT_AUTHORITY, PAUSABLE, ACCOUNT_FREEZE.
31
+ *
32
+ * Not every capability maps to a rule. `FEE_CONTROL` and `ORACLE_SETTER`
33
+ * are deliberately unmapped — a fee change has no single response, and a
34
+ * rule nobody can act on trains a team to close alerts unread.
35
+ * `unmappedCapabilities()` reports them rather than dropping them silently.
36
+ */
30
37
  type: string;
31
38
  statement?: string;
32
39
  /** The function, role or slot that grants it, when known. */
@@ -46,7 +53,13 @@ export interface AuditHandoverInput {
46
53
  */
47
54
  treasuryThresholdUsd?: number;
48
55
  }
49
- interface Generated {
56
+ /**
57
+ * One generated rule, paired with the capability that produced it.
58
+ *
59
+ * Exported because it is the element type of `rulesFromAudit`'s return value —
60
+ * without it a consumer can destructure the result but cannot name its type.
61
+ */
62
+ export interface Generated {
50
63
  capability: string;
51
64
  rule: CreateRuleInput;
52
65
  }
@@ -66,5 +79,4 @@ export declare function rulesFromAudit(input: AuditHandoverInput): Generated[];
66
79
  * decision rather than an assumption.
67
80
  */
68
81
  export declare function unmappedCapabilities(capabilities: AuditCapability[]): string[];
69
- export {};
70
82
  //# sourceMappingURL=from-audit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"from-audit.d.ts","sourceRoot":"","sources":["../src/from-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,wDAAwD;IACxD,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,SAAS;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;CACvB;AAuHD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,EAAE,CA0DrE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAI9E"}
1
+ {"version":3,"file":"from-audit.d.ts","sourceRoot":"","sources":["../src/from-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,wDAAwD;IACxD,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;CACvB;AAuHD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,EAAE,CA0DrE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAI9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"from-audit.js","sourceRoot":"","sources":["../src/from-audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from-audit.js","sourceRoot":"","sources":["../src/from-audit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decentrys/sentinel-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Monitoring for deployed contracts, wallets and treasuries: targets, detection rules, alerts, and audit-to-monitoring handover.",
5
5
  "license": "MIT",
6
6
  "author": "Decentrys Labs",
package/src/client.ts CHANGED
@@ -20,7 +20,14 @@ import type {
20
20
  Alert, AlertSeverity, MonitoringRule, MonitoringTarget, RuleAction, RuleTestResult, TargetType,
21
21
  } from './model';
22
22
 
23
- export const SDK_VERSION = '0.1.0';
23
+ /**
24
+ * Sent in the user-agent on every request.
25
+ *
26
+ * Kept in step with package.json by hand — it drifted once already, and a
27
+ * stale value here silently under-reports the real version in server-side
28
+ * telemetry rather than failing in any visible way.
29
+ */
30
+ export const SDK_VERSION = '0.1.2';
24
31
 
25
32
  const DEFAULT_BASE_URL = 'https://api.decentrys.com';
26
33
  const DEFAULT_TIMEOUT_MS = 10_000;
package/src/from-audit.ts CHANGED
@@ -28,7 +28,14 @@ import type { CreateRuleInput } from './client';
28
28
 
29
29
  /** What an audit observed about a contract, in the shape Protect reports it. */
30
30
  export interface AuditCapability {
31
- /** e.g. UPGRADEABLE, MINT_AUTHORITY, PAUSABLE, BLACKLIST, FEE_CONTROL. */
31
+ /**
32
+ * e.g. UPGRADEABLE, MINT_AUTHORITY, PAUSABLE, ACCOUNT_FREEZE.
33
+ *
34
+ * Not every capability maps to a rule. `FEE_CONTROL` and `ORACLE_SETTER`
35
+ * are deliberately unmapped — a fee change has no single response, and a
36
+ * rule nobody can act on trains a team to close alerts unread.
37
+ * `unmappedCapabilities()` reports them rather than dropping them silently.
38
+ */
32
39
  type: string;
33
40
  statement?: string;
34
41
  /** The function, role or slot that grants it, when known. */
@@ -50,7 +57,13 @@ export interface AuditHandoverInput {
50
57
  treasuryThresholdUsd?: number;
51
58
  }
52
59
 
53
- interface Generated {
60
+ /**
61
+ * One generated rule, paired with the capability that produced it.
62
+ *
63
+ * Exported because it is the element type of `rulesFromAudit`'s return value —
64
+ * without it a consumer can destructure the result but cannot name its type.
65
+ */
66
+ export interface Generated {
54
67
  capability: string;
55
68
  rule: CreateRuleInput;
56
69
  }