@secondlayer/shared 13.7.1 → 13.9.0
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/src/archive/range-digest.d.ts +5 -0
- package/dist/src/archive/semantic-digest-builder.d.ts +5 -0
- package/dist/src/coverage/index.d.ts +5 -0
- package/dist/src/db/index.d.ts +5 -0
- package/dist/src/db/queries/chain-reorgs.d.ts +5 -0
- package/dist/src/db/queries/contracts.d.ts +5 -0
- package/dist/src/db/queries/instance.d.ts +5 -0
- package/dist/src/db/queries/integrity.d.ts +5 -0
- package/dist/src/db/queries/subgraph-gaps.d.ts +5 -0
- package/dist/src/db/queries/subgraph-operations.d.ts +5 -0
- package/dist/src/db/queries/subgraphs.d.ts +5 -0
- package/dist/src/db/queries/sync-scope.d.ts +5 -0
- package/dist/src/db/queries/webhooks.d.ts +5 -0
- package/dist/src/db/schema.d.ts +5 -0
- package/dist/src/error-envelope.d.ts +1 -0
- package/dist/src/error-envelope.js.map +2 -2
- package/dist/src/errors.d.ts +7 -1
- package/dist/src/errors.js +12 -1
- package/dist/src/errors.js.map +3 -3
- package/dist/src/index.d.ts +17 -8
- package/dist/src/index.js +86 -35
- package/dist/src/index.js.map +6 -5
- package/dist/src/insights/index.d.ts +13 -2
- package/dist/src/insights/index.js +15 -7
- package/dist/src/insights/index.js.map +4 -4
- package/dist/src/insights/thresholds.d.ts +6 -1
- package/dist/src/insights/thresholds.js +5 -1
- package/dist/src/insights/thresholds.js.map +3 -3
- package/dist/src/node/local-client.d.ts +5 -0
- package/dist/src/schemas/chain-triggers.d.ts +7 -0
- package/dist/src/schemas/chain-triggers.js +78 -0
- package/dist/src/schemas/chain-triggers.js.map +10 -0
- package/dist/src/schemas/index.d.ts +5 -7
- package/dist/src/schemas/index.js +75 -35
- package/dist/src/schemas/index.js.map +5 -4
- package/dist/src/schemas/webhooks.d.ts +6 -8
- package/dist/src/schemas/webhooks.js +75 -35
- package/dist/src/schemas/webhooks.js.map +5 -4
- package/migrations/0174_internal_accounts.ts +21 -0
- package/migrations/0175_failed_request_key_id.ts +23 -0
- package/package.json +5 -1
|
@@ -122,6 +122,8 @@ declare const POLLING_MIN_DURATION_MS = 36e5;
|
|
|
122
122
|
declare const POLLING_MIN_REQUESTS = 5;
|
|
123
123
|
declare const POLLING_LOOKBACK_MS: number;
|
|
124
124
|
declare const POLLING_MAX_STDDEV_RATIO = .2;
|
|
125
|
+
/** A request this soon after the previous one is a cursor-follow page of the same poll. */
|
|
126
|
+
declare const POLLING_FOLLOW_GAP_MS = 1e4;
|
|
125
127
|
declare const POLLING_MIN_EMPTY_RATIO = .8;
|
|
126
128
|
declare const SERVER_ERRORS_MIN_5XX = 3;
|
|
127
129
|
declare const BACKFILL_DAY_SHARE = .25;
|
|
@@ -131,6 +133,9 @@ declare const BACKFILL_MIN_DAY_ROWS = 1e5;
|
|
|
131
133
|
declare const CREDITS_RUNWAY_WARN_DAYS = 7;
|
|
132
134
|
/** An account key idle this many days (or unused since creation) is flagged. */
|
|
133
135
|
declare const KEY_UNUSED_DAYS = 30;
|
|
136
|
+
/** A revoked key called within this long is still in use; older calls only
|
|
137
|
+
* count toward the 24h evidence, so the insight clears once calls stop. */
|
|
138
|
+
declare const REVOKED_KEY_ACTIVE_MS = 36e5;
|
|
134
139
|
/** A resolved insight stays visible as "recovered" for this long. */
|
|
135
140
|
declare const RECOVERED_VISIBLE_MS: number;
|
|
136
141
|
/** Consecutive clean evaluations before an open insight resolves. */
|
|
@@ -474,6 +479,9 @@ interface AccountsTable {
|
|
|
474
479
|
email: string | null;
|
|
475
480
|
/** True for anonymous self-serve accounts until claimed via magic link. */
|
|
476
481
|
ghost: Generated<boolean>;
|
|
482
|
+
/** First-party service account: usage priced at $0, never gated on
|
|
483
|
+
* credits. Set by ops only. */
|
|
484
|
+
internal: Generated<boolean>;
|
|
477
485
|
/** Stacks principal owning a wallet-ghost account. */
|
|
478
486
|
wallet_principal: string | null;
|
|
479
487
|
display_name: string | null;
|
|
@@ -1364,6 +1372,8 @@ interface ApiFailedRequestsTable {
|
|
|
1364
1372
|
message: Generated<string>;
|
|
1365
1373
|
query: Record<string, unknown>;
|
|
1366
1374
|
origin: string | null;
|
|
1375
|
+
/** Revoked account key the request presented (`KEY_REVOKED` only). */
|
|
1376
|
+
api_key_id: string | null;
|
|
1367
1377
|
created_at: Generated<Date>;
|
|
1368
1378
|
}
|
|
1369
1379
|
/**
|
|
@@ -1448,7 +1458,8 @@ declare function listOpenResources(db: Kysely<Database>, scope: InsightScope): P
|
|
|
1448
1458
|
}[]>;
|
|
1449
1459
|
/**
|
|
1450
1460
|
* Open rows plus rows resolved within `RECOVERED_VISIBLE_MS`, minus dismissed
|
|
1451
|
-
* and muted ones. Resolved rows come back as `recovered`.
|
|
1461
|
+
* and muted ones. Resolved rows come back as `recovered`. One row per
|
|
1462
|
+
* (resource, rule): the open incident, else the latest recovered one. Ranked.
|
|
1452
1463
|
*/
|
|
1453
1464
|
declare function listInsights(db: Kysely<Database>, scope: InsightScope, now?: Date, filter?: {
|
|
1454
1465
|
kind?: string
|
|
@@ -1570,4 +1581,4 @@ interface TenantEvaluateDeps extends Omit<LabelDeps, "now"> {
|
|
|
1570
1581
|
* exist resolve through the normal two-pass clear.
|
|
1571
1582
|
*/
|
|
1572
1583
|
declare function evaluateTenantInsights(db: Kysely3<Database>, deps?: TenantEvaluateDeps): Promise<void>;
|
|
1573
|
-
export { BACKFILL_DAY_SHARE, BACKFILL_FULL_PAGE_RATIO, BACKFILL_MIN_DAY_ROWS, CLEAR_STREAK_TO_RESOLVE, CREDITS_RUNWAY_WARN_DAYS, DEAD_LETTER_DELETE_AGE_DAYS, DEAD_LETTER_WARN_AGE_DAYS, DOWN_MIN_CONSECUTIVE, DUPLICATE_READS_LOOKBACK_MS, DUPLICATE_READS_MIN_PAGES, DUPLICATE_READS_WINDOW_MS, DetectedInsight, EvaluatedKey, HANDLER_ERRORS_MIN_24H, InsightRule, InsightScope, KEY_UNUSED_DAYS, LAG_MIN_SAMPLES, LAG_THRESHOLD_MS, LAG_WINDOW, LOGIN_WALL_MIN_CONSECUTIVE, LOGIN_WALL_MIN_PRIOR, LOGIN_WALL_PRIOR_JSON_RATIO, PAGE_CAP_ROWS, POLLING_LOOKBACK_MS, POLLING_MAX_STDDEV_RATIO, POLLING_MIN_DURATION_MS, POLLING_MIN_EMPTY_RATIO, POLLING_MIN_REQUESTS, RATE_LIMITED_MIN_ATTEMPTS, RATE_LIMITED_MIN_RATIO, RECOVERED_VISIBLE_MS, REJECTS_MIN_CONSECUTIVE, SERVER_ERRORS_MIN_5XX, SLOWING_DAYS, SLOWING_MIN_R2, SLOWING_MIN_RISING_DAYS, SLOW_MIN_SAMPLES, SLOW_TIMEOUT_RATIO, SLOW_WINDOW, SUBGRAPH_LAG_BLOCKS, SUBGRAPH_LAG_LOSING_BLOCKS, SUBGRAPH_LAG_SNAPSHOTS, TEST_ENDPOINT_MIN_AGE_DAYS, TLS_WARN_DAYS, TenantEvaluateDeps, dismissInsight, evaluateTenantInsights, handoffPrompt, hostOf, listInsights, listOpenResources, maybeLabel, muteRule, plainSnippet, plural, purgeResolved, rankInsights, recordEvaluation, runRules, unmuteRule, utcDateTime, utcDay, utcTime };
|
|
1584
|
+
export { BACKFILL_DAY_SHARE, BACKFILL_FULL_PAGE_RATIO, BACKFILL_MIN_DAY_ROWS, CLEAR_STREAK_TO_RESOLVE, CREDITS_RUNWAY_WARN_DAYS, DEAD_LETTER_DELETE_AGE_DAYS, DEAD_LETTER_WARN_AGE_DAYS, DOWN_MIN_CONSECUTIVE, DUPLICATE_READS_LOOKBACK_MS, DUPLICATE_READS_MIN_PAGES, DUPLICATE_READS_WINDOW_MS, DetectedInsight, EvaluatedKey, HANDLER_ERRORS_MIN_24H, InsightRule, InsightScope, KEY_UNUSED_DAYS, LAG_MIN_SAMPLES, LAG_THRESHOLD_MS, LAG_WINDOW, LOGIN_WALL_MIN_CONSECUTIVE, LOGIN_WALL_MIN_PRIOR, LOGIN_WALL_PRIOR_JSON_RATIO, PAGE_CAP_ROWS, POLLING_FOLLOW_GAP_MS, POLLING_LOOKBACK_MS, POLLING_MAX_STDDEV_RATIO, POLLING_MIN_DURATION_MS, POLLING_MIN_EMPTY_RATIO, POLLING_MIN_REQUESTS, RATE_LIMITED_MIN_ATTEMPTS, RATE_LIMITED_MIN_RATIO, RECOVERED_VISIBLE_MS, REJECTS_MIN_CONSECUTIVE, REVOKED_KEY_ACTIVE_MS, SERVER_ERRORS_MIN_5XX, SLOWING_DAYS, SLOWING_MIN_R2, SLOWING_MIN_RISING_DAYS, SLOW_MIN_SAMPLES, SLOW_TIMEOUT_RATIO, SLOW_WINDOW, SUBGRAPH_LAG_BLOCKS, SUBGRAPH_LAG_LOSING_BLOCKS, SUBGRAPH_LAG_SNAPSHOTS, TEST_ENDPOINT_MIN_AGE_DAYS, TLS_WARN_DAYS, TenantEvaluateDeps, dismissInsight, evaluateTenantInsights, handoffPrompt, hostOf, listInsights, listOpenResources, maybeLabel, muteRule, plainSnippet, plural, purgeResolved, rankInsights, recordEvaluation, runRules, unmuteRule, utcDateTime, utcDay, utcTime };
|
|
@@ -122,6 +122,7 @@ var POLLING_MIN_DURATION_MS = 3600000;
|
|
|
122
122
|
var POLLING_MIN_REQUESTS = 5;
|
|
123
123
|
var POLLING_LOOKBACK_MS = 6 * 3600000;
|
|
124
124
|
var POLLING_MAX_STDDEV_RATIO = 0.2;
|
|
125
|
+
var POLLING_FOLLOW_GAP_MS = 1e4;
|
|
125
126
|
var POLLING_MIN_EMPTY_RATIO = 0.8;
|
|
126
127
|
var SERVER_ERRORS_MIN_5XX = 3;
|
|
127
128
|
var BACKFILL_DAY_SHARE = 0.25;
|
|
@@ -129,6 +130,7 @@ var BACKFILL_FULL_PAGE_RATIO = 0.9;
|
|
|
129
130
|
var BACKFILL_MIN_DAY_ROWS = 1e5;
|
|
130
131
|
var CREDITS_RUNWAY_WARN_DAYS = 7;
|
|
131
132
|
var KEY_UNUSED_DAYS = 30;
|
|
133
|
+
var REVOKED_KEY_ACTIVE_MS = 3600000;
|
|
132
134
|
var RECOVERED_VISIBLE_MS = 24 * 3600000;
|
|
133
135
|
var CLEAR_STREAK_TO_RESOLVE = 2;
|
|
134
136
|
// src/insights/prompt.ts
|
|
@@ -275,12 +277,16 @@ async function listInsights(db, scope, now = new Date, filter = {}) {
|
|
|
275
277
|
const since = new Date(now.getTime() - RECOVERED_VISIBLE_MS);
|
|
276
278
|
const { rows } = await sql2`
|
|
277
279
|
SELECT i.id, i.rule, i.severity, i.impact, i.payload, i.first_seen_at, i.resolved_at
|
|
278
|
-
FROM
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
280
|
+
FROM (
|
|
281
|
+
SELECT DISTINCT ON (resource_kind, resource_id, rule) *
|
|
282
|
+
FROM insights
|
|
283
|
+
WHERE ${scopeWhere(scope)}
|
|
284
|
+
AND (resolved_at IS NULL OR resolved_at > ${since})
|
|
285
|
+
${filter.kind ? sql2`AND resource_kind = ${filter.kind}` : sql2``}
|
|
286
|
+
${filter.id ? sql2`AND resource_id = ${filter.id}` : sql2``}
|
|
287
|
+
ORDER BY resource_kind, resource_id, rule, resolved_at DESC NULLS FIRST
|
|
288
|
+
) i
|
|
289
|
+
WHERE i.dismissed_at IS NULL
|
|
284
290
|
AND NOT EXISTS (
|
|
285
291
|
SELECT 1 FROM insight_mutes m
|
|
286
292
|
WHERE ${scopeWhere(scope, sql2.ref("m.account_id"))}
|
|
@@ -2241,6 +2247,7 @@ export {
|
|
|
2241
2247
|
LOGIN_WALL_MIN_PRIOR,
|
|
2242
2248
|
LOGIN_WALL_PRIOR_JSON_RATIO,
|
|
2243
2249
|
PAGE_CAP_ROWS,
|
|
2250
|
+
POLLING_FOLLOW_GAP_MS,
|
|
2244
2251
|
POLLING_LOOKBACK_MS,
|
|
2245
2252
|
POLLING_MAX_STDDEV_RATIO,
|
|
2246
2253
|
POLLING_MIN_DURATION_MS,
|
|
@@ -2250,6 +2257,7 @@ export {
|
|
|
2250
2257
|
RATE_LIMITED_MIN_RATIO,
|
|
2251
2258
|
RECOVERED_VISIBLE_MS,
|
|
2252
2259
|
REJECTS_MIN_CONSECUTIVE,
|
|
2260
|
+
REVOKED_KEY_ACTIVE_MS,
|
|
2253
2261
|
SERVER_ERRORS_MIN_5XX,
|
|
2254
2262
|
SLOWING_DAYS,
|
|
2255
2263
|
SLOWING_MIN_R2,
|
|
@@ -2282,5 +2290,5 @@ export {
|
|
|
2282
2290
|
utcTime
|
|
2283
2291
|
};
|
|
2284
2292
|
|
|
2285
|
-
//# debugId=
|
|
2293
|
+
//# debugId=E9A0F04B4CC704E864756E2164756E21
|
|
2286
2294
|
//# sourceMappingURL=index.js.map
|