github TypeScript re-analysis due

devkitshq/notifkit

github

The notification infra of your business

maintainer
devkitshq
license
MIT
first seen
2026-08-24
last seen
2026-09-04
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 46 tools
transport stdio · http counts 46 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_user_contact
  • cancel_notification
  • cancel_workflow_run
  • create_project
  • create_project_key
  • create_workflow
  • delete_dead_letter
  • delete_project
  • delete_project_key
  • delete_template
  • delete_user
  • delete_user_contact
  • get_campaign_stats
  • get_dead_letters
  • get_delivery_logs
  • get_notification
  • get_system_health
  • get_system_metrics
  • get_template
  • get_user
  • get_user_contacts
  • get_user_preferences
  • get_workflow_run
  • ingest_event
  • list_campaigns
  • list_project_keys
  • list_projects
  • list_scheduled
  • list_segments
  • list_suppressions
  • list_templates
  • list_users
  • list_workflows
  • preview_template
  • render_template
  • replay_dead_letter
  • send_campaign
  • send_notification
  • suppress_address
  • trigger_workflow
  • unsuppress_address
  • update_project
  • update_user
  • update_user_preferences
  • upsert_template
  • upsert_user
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 1195a3b · analyzer v33 · 1w ago

skills & prompt files 2

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 141

filesystem 1

  • fs devkitshq-notifkit-1195a3b/src/db/index.ts :57 import fs from "fs";

shell / exec 2

  • shell (weak) devkitshq-notifkit-1195a3b/tests/chaos/crash.test.ts :4 import type { ChildProcess } from "node:child_process";
  • shell (weak) devkitshq-notifkit-1195a3b/tests/chaos/recovery.test.ts :120 const { execSync } = await import("node:child_process");

network 18

  • net devkitshq-notifkit-1195a3b/dashboard/src/app/analytics/page.tsx :30 const res = await fetch(`${apiUrl}/v1/system/metrics`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/dlq/page.tsx :38 const res = await fetch(`${apiUrl}/v1/dlq`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/projects/page.tsx :38 const res = await fetch(`${apiUrl}/v1/projects`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/scheduled/page.tsx :35 const res = await fetch(`${apiUrl}/v1/notifications/scheduled`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/system/page.tsx :46 const res = await fetch(`${apiUrl}/v1/system/health`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/templates/page.tsx :40 const res = await fetch(`${apiUrl}/v1/templates`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/users/page.tsx :45 const res = await fetch(`${apiUrl}/v1/users`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/app/workflows/page.tsx :54 const res = await fetch(`${apiUrl}/v1/workflows`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/components/DashboardHeader.tsx :17 const res = await fetch(`${apiUrl}/v1/system/metrics`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/components/LogsTable.tsx :70 const res = await fetch(`${apiUrl}/v1/notifications/logs?${query.toString()}`, {
  • net devkitshq-notifkit-1195a3b/dashboard/src/hooks/useProjectKey.tsx :26 fetch(`${apiUrl}/v1/projects`, { headers: { Authorization: `Bearer ${adminKey}` } })
  • net (weak) devkitshq-notifkit-1195a3b/examples/basic-usage/index.js :28 const templateRes = await fetch(`${API_BASE}/templates`, {
  • net devkitshq-notifkit-1195a3b/packages/mcp/src/client.ts :57 const res = await fetch(url, {
  • net devkitshq-notifkit-1195a3b/src/client.ts :37 const res = await fetch(url, {
  • net devkitshq-notifkit-1195a3b/src/services/api/handlers.ts :2 import type { IncomingMessage, ServerResponse } from "node:http";
  • net devkitshq-notifkit-1195a3b/src/services/api/http.ts :1 import type { IncomingMessage, ServerResponse } from "node:http";
  • net devkitshq-notifkit-1195a3b/src/services/api/main.ts :1 import { createServer, type IncomingMessage, type ServerResponse } from "node:http";
  • net devkitshq-notifkit-1195a3b/src/services/api/router.ts :1 import type { IncomingMessage, ServerResponse } from "node:http";

secrets 7

  • secrets (weak) devkitshq-notifkit-1195a3b/examples/basic-usage/index.js :14 const API_KEY = process.env.ADMIN_API_KEY || 'my_super_secret_admin_key';
  • secrets (weak) devkitshq-notifkit-1195a3b/examples/load-test/index.js :8 const apiKey = process.env.ADMIN_API_KEY || 'your_admin_api_key';
  • secrets (weak) devkitshq-notifkit-1195a3b/examples/scheduled-notifications/index.js :9 apiKey: process.env.ADMIN_API_KEY || 'your_admin_api_key',
  • secrets (weak) devkitshq-notifkit-1195a3b/examples/workflows/index.js :9 apiKey: process.env.ADMIN_API_KEY || 'your_admin_api_key',
  • secrets devkitshq-notifkit-1195a3b/packages/mcp/src/index.ts :52 const apiKey = process.env["NOTIFKIT_API_KEY"];
  • secrets (weak) devkitshq-notifkit-1195a3b/tests/api-suppressions.test.ts :66 originalSecret = process.env.UNSUBSCRIBE_SECRET;
  • secrets (weak) devkitshq-notifkit-1195a3b/tests/api.integration.test.ts :24 process.env.ADMIN_API_KEY = adminApiKey;

database 5

  • db devkitshq-notifkit-1195a3b/src/redis/index.ts :1 import { Redis, type RedisOptions } from "ioredis";
  • db devkitshq-notifkit-1195a3b/src/services/delivery/throttle.ts :1 import type { Redis } from "ioredis";
  • db (weak) devkitshq-notifkit-1195a3b/tests/chaos/crash.test.ts :10 import { Redis } from "ioredis";
  • db (weak) devkitshq-notifkit-1195a3b/tests/chaos/load.test.ts :8 import { Redis } from "ioredis";
  • db (weak) devkitshq-notifkit-1195a3b/tests/chaos/recovery.test.ts :8 import { Redis } from "ioredis";

tool registrations 46

  • send_notification devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :126
  • send_campaign devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :207
  • list_campaigns devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :321
  • get_campaign_stats devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :372
  • list_suppressions devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :391
  • suppress_address devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :416
  • unsuppress_address devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :437
  • list_segments devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :466
  • list_scheduled devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :478
  • get_delivery_logs devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :507
  • get_notification devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :558
  • cancel_notification devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :576
  • list_templates devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :601
  • get_template devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :627
  • upsert_template devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :639
  • delete_template devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :672
  • preview_template devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :740
  • render_template devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :772
  • list_users devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :801
  • get_user devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :841
  • upsert_user devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :854
  • update_user devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :913
  • delete_user devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :970
  • get_user_contacts devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :992
  • add_user_contact devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1005
  • delete_user_contact devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1025
  • get_user_preferences devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1051
  • update_user_preferences devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1065
  • create_workflow devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1096
  • list_workflows devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1142
  • trigger_workflow devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1167
  • get_workflow_run devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1189
  • cancel_workflow_run devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1204
  • ingest_event devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1226
  • get_system_health devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1247
  • get_dead_letters devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1260
  • replay_dead_letter devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1273
  • delete_dead_letter devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1293
  • get_system_metrics devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1314
  • list_projects devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1327
  • create_project devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1337
  • update_project devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1351
  • delete_project devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1373
  • list_project_keys devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1394
  • create_project_key devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1407
  • delete_project_key devkitshq-notifkit-1195a3b/packages/mcp/src/tools.ts :1428

install hooks 2

  • prepare devkitshq-notifkit-1195a3b/package.json :60 husky
  • prepublishOnly devkitshq-notifkit-1195a3b/package.json :61 npm run typecheck && npm run build

declared dependencies 29

  • ai@^7.0.37
  • dotenv@^16.4.5
  • drizzle-orm@^0.45.2
  • drizzle-zod@^0.8.3
  • ioredis@^5.4.1
  • pino@^9.2.0
  • pino-pretty@^11.0.0
  • postgres@^3.4.4
  • prom-client@^15.1.3
  • zod@^3.23.8
  • @commitlint/cli@^19.3.0
  • @commitlint/config-conventional@^19.2.2
  • @testcontainers/postgresql@^12.0.4
  • @testcontainers/redis@^12.0.4
  • @types/node@^22.0.0
  • @types/supertest@^7.2.1
  • @typescript-eslint/eslint-plugin@^8.0.0
  • @typescript-eslint/parser@^8.0.0
  • @vitest/coverage-v8@^2.0.0
  • drizzle-kit@^0.31.10
  • eslint@^9.0.0
  • husky@^9.0.11
  • lint-staged@^15.2.5
  • prettier@^3.3.0
  • supertest@^7.2.2
  • testcontainers@^12.0.4
  • tsdown@^0.22.14
  • typescript@^5.8.3
  • vitest@^2.0.0