@titanshield/core 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.
@@ -103,5 +103,30 @@ export declare class TitanShield extends EventEmitter {
103
103
  topEventTypes: [string, number][];
104
104
  };
105
105
  private sendWebhook;
106
+ /**
107
+ * Analyze a request and send it to your TitanShieldAI dashboard.
108
+ * Drop this one line into any Express/Cloud Function/Next.js route.
109
+ * Non-blocking — never affects your app's performance or uptime.
110
+ *
111
+ * @example
112
+ * // Express:
113
+ * app.use(async (req, res, next) => { await shield.analyze(req); next(); });
114
+ *
115
+ * // Cloud Functions:
116
+ * export const myFn = onRequest(async (req, res) => {
117
+ * await shield.analyze(req); // ← 1 line
118
+ * // ... your existing code
119
+ * });
120
+ */
121
+ analyze(req: {
122
+ ip?: string;
123
+ method?: string;
124
+ url?: string;
125
+ path?: string;
126
+ headers?: Record<string, string | string[] | undefined>;
127
+ socket?: {
128
+ remoteAddress?: string;
129
+ };
130
+ }): Promise<void>;
106
131
  }
107
132
  //# sourceMappingURL=TitanShield.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TitanShield.d.ts","sourceRoot":"","sources":["../src/TitanShield.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAKlC,OAAO,EACH,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAE7B,KAAK,gBAAgB,EACnD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACR,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EAEf,gBAAgB,EACnB,MAAM,YAAY,CAAC;AAOpB,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,OAAO,CAA+B;IAG9C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAG7C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBAE3B,MAAM,EAAE,WAAW;IAsC/B;;;;;;OAMG;IACG,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoDvD;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAKjF;;;;;;;OAOG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;;;;;;IAcjD,sDAAsD;IACtD,qBAAqB,CAAC,UAAU,EAAE,MAAM;IAIxC,gEAAgE;IAChE,eAAe,CAAC,UAAU,EAAE,MAAM;;;;;IAKlC;;;;;;OAMG;IACH,yBAAyB,CAAC,MAAM,CAAC,EAAE,gBAAgB;IAInD;;;;;;OAMG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB;IAY9C;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAM,EAAE,QAAQ,SAAS,GAAG,OAAO;IAkBrE,8BAA8B;IAC9B,SAAS,CAAC,KAAK,SAAM,GAAG,gBAAgB,EAAE;IAI1C,+BAA+B;IAC/B,SAAS,CAAC,iBAAiB,UAAQ,GAAG,WAAW,EAAE;IAInD,6BAA6B;IAC7B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOtC,oDAAoD;IAC9C,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;IAKjD,KAAK;;;;;;;YAiBS,WAAW;CAW5B"}
1
+ {"version":3,"file":"TitanShield.d.ts","sourceRoot":"","sources":["../src/TitanShield.ts"],"names":[],"mappings":"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"}
@@ -28,9 +28,11 @@ class TitanShield extends events_1.default {
28
28
  this.rateMap = new Map(); // key → [timestamps]
29
29
  this.config = {
30
30
  env: 'production',
31
+ mode: 'observe',
31
32
  geminiApiKey: '',
32
33
  firestoreCredentials: {},
33
34
  webhookUrl: '',
35
+ ingestionUrl: 'https://us-central1-titanshield-ai.cloudfunctions.net/ingestEvent',
34
36
  ...config,
35
37
  };
36
38
  this.threatEngine = new threats_js_1.ThreatEngine(this.config.geminiApiKey || undefined);
@@ -243,6 +245,67 @@ class TitanShield extends events_1.default {
243
245
  body,
244
246
  });
245
247
  }
248
+ // ── analyze() — PRIMARY INTEGRATION POINT ─────────────────────────────────
249
+ /**
250
+ * Analyze a request and send it to your TitanShieldAI dashboard.
251
+ * Drop this one line into any Express/Cloud Function/Next.js route.
252
+ * Non-blocking — never affects your app's performance or uptime.
253
+ *
254
+ * @example
255
+ * // Express:
256
+ * app.use(async (req, res, next) => { await shield.analyze(req); next(); });
257
+ *
258
+ * // Cloud Functions:
259
+ * export const myFn = onRequest(async (req, res) => {
260
+ * await shield.analyze(req); // ← 1 line
261
+ * // ... your existing code
262
+ * });
263
+ */
264
+ async analyze(req) {
265
+ try {
266
+ // Extract request metadata
267
+ const ip = req.headers?.['x-forwarded-for']?.split(',')[0]?.trim()
268
+ || req.ip
269
+ || req.socket?.remoteAddress
270
+ || 'unknown';
271
+ const url = req.url || req.path || '/';
272
+ const method = (req.method || 'GET').toUpperCase();
273
+ const userAgent = req.headers?.['user-agent'] || '';
274
+ // Feed into local DNA profiler (learns your app's normal patterns)
275
+ this.dna.learn({
276
+ eventType: 'api.request',
277
+ ip,
278
+ userAgent,
279
+ timestamp: new Date(),
280
+ });
281
+ // POST to TitanShield ingestion endpoint (non-blocking)
282
+ const ingestionUrl = this.config.ingestionUrl;
283
+ if (!ingestionUrl || !this.config.apiKey || this.config.apiKey === 'ts_test_placeholder') {
284
+ return; // Skip if no valid key configured
285
+ }
286
+ await fetch(ingestionUrl, {
287
+ method: 'POST',
288
+ headers: {
289
+ 'Content-Type': 'application/json',
290
+ 'Authorization': `Bearer ${this.config.apiKey}`,
291
+ },
292
+ body: JSON.stringify({
293
+ type: 'api.request',
294
+ ip,
295
+ url: url.slice(0, 500),
296
+ method,
297
+ userAgent: userAgent.slice(0, 200),
298
+ blocked: false,
299
+ severity: 'low',
300
+ timestamp: Date.now(),
301
+ }),
302
+ signal: AbortSignal.timeout?.(3000), // 3s max — never block the caller
303
+ });
304
+ }
305
+ catch {
306
+ // TitanShield is NEVER a single point of failure — always silent on error
307
+ }
308
+ }
246
309
  }
247
310
  exports.TitanShield = TitanShield;
248
311
  //# sourceMappingURL=TitanShield.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TitanShield.js","sourceRoot":"","sources":["../src/TitanShield.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TitanShield.js","sourceRoot":"","sources":["../src/TitanShield.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  export interface TitanConfig {
2
2
  apiKey: string;
3
3
  project: string;
4
+ mode?: 'observe' | 'enforce';
4
5
  env?: 'development' | 'staging' | 'production';
5
6
  geminiApiKey?: string;
6
7
  firestoreCredentials?: object;
7
8
  webhookUrl?: string;
9
+ ingestionUrl?: string;
8
10
  }
9
11
  export type AuditEventType = 'user.login' | 'user.logout' | 'user.login_failed' | 'user.signup' | 'user.password_changed' | 'user.mfa_enabled' | 'user.mfa_disabled' | 'data.read' | 'data.write' | 'data.delete' | 'data.export' | 'admin.settings_changed' | 'admin.user_elevated' | 'admin.user_suspended' | 'api.key_created' | 'api.key_revoked' | 'billing.plan_changed' | 'security.threat_detected' | 'security.ip_blocked' | string;
10
12
  export interface AuditEvent {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@titanshield/core",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "TitanShieldAI core SDK — AI-powered audit logging, threat detection & compliance",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -54,9 +54,11 @@ export class TitanShield extends EventEmitter {
54
54
  super();
55
55
  this.config = {
56
56
  env: 'production',
57
+ mode: 'observe',
57
58
  geminiApiKey: '',
58
59
  firestoreCredentials: {},
59
60
  webhookUrl: '',
61
+ ingestionUrl: 'https://us-central1-titanshield-ai.cloudfunctions.net/ingestEvent',
60
62
  ...config,
61
63
  };
62
64
  this.threatEngine = new ThreatEngine(this.config.geminiApiKey || undefined);
@@ -300,4 +302,75 @@ export class TitanShield extends EventEmitter {
300
302
  body,
301
303
  });
302
304
  }
305
+
306
+ // ── analyze() — PRIMARY INTEGRATION POINT ─────────────────────────────────
307
+ /**
308
+ * Analyze a request and send it to your TitanShieldAI dashboard.
309
+ * Drop this one line into any Express/Cloud Function/Next.js route.
310
+ * Non-blocking — never affects your app's performance or uptime.
311
+ *
312
+ * @example
313
+ * // Express:
314
+ * app.use(async (req, res, next) => { await shield.analyze(req); next(); });
315
+ *
316
+ * // Cloud Functions:
317
+ * export const myFn = onRequest(async (req, res) => {
318
+ * await shield.analyze(req); // ← 1 line
319
+ * // ... your existing code
320
+ * });
321
+ */
322
+ async analyze(req: {
323
+ ip?: string;
324
+ method?: string;
325
+ url?: string;
326
+ path?: string;
327
+ headers?: Record<string, string | string[] | undefined>;
328
+ socket?: { remoteAddress?: string };
329
+ }): Promise<void> {
330
+ try {
331
+ // Extract request metadata
332
+ const ip = (req.headers?.['x-forwarded-for'] as string)?.split(',')[0]?.trim()
333
+ || req.ip
334
+ || req.socket?.remoteAddress
335
+ || 'unknown';
336
+ const url = req.url || req.path || '/';
337
+ const method = (req.method || 'GET').toUpperCase();
338
+ const userAgent = (req.headers?.['user-agent'] as string) || '';
339
+
340
+ // Feed into local DNA profiler (learns your app's normal patterns)
341
+ this.dna.learn({
342
+ eventType: 'api.request',
343
+ ip,
344
+ userAgent,
345
+ timestamp: new Date(),
346
+ });
347
+
348
+ // POST to TitanShield ingestion endpoint (non-blocking)
349
+ const ingestionUrl = this.config.ingestionUrl;
350
+ if (!ingestionUrl || !this.config.apiKey || this.config.apiKey === 'ts_test_placeholder') {
351
+ return; // Skip if no valid key configured
352
+ }
353
+
354
+ await fetch(ingestionUrl, {
355
+ method: 'POST',
356
+ headers: {
357
+ 'Content-Type': 'application/json',
358
+ 'Authorization': `Bearer ${this.config.apiKey}`,
359
+ },
360
+ body: JSON.stringify({
361
+ type: 'api.request',
362
+ ip,
363
+ url: url.slice(0, 500),
364
+ method,
365
+ userAgent: userAgent.slice(0, 200),
366
+ blocked: false,
367
+ severity: 'low',
368
+ timestamp: Date.now(),
369
+ }),
370
+ signal: AbortSignal.timeout?.(3000), // 3s max — never block the caller
371
+ });
372
+ } catch {
373
+ // TitanShield is NEVER a single point of failure — always silent on error
374
+ }
375
+ }
303
376
  }
package/src/types.ts CHANGED
@@ -5,10 +5,12 @@
5
5
  export interface TitanConfig {
6
6
  apiKey: string;
7
7
  project: string;
8
+ mode?: 'observe' | 'enforce'; // observe = log only; enforce = block threats
8
9
  env?: 'development' | 'staging' | 'production';
9
10
  geminiApiKey?: string; // Optional: enables AI threat analysis
10
11
  firestoreCredentials?: object; // Firebase service account JSON
11
12
  webhookUrl?: string; // Slack/Teams/custom alert webhook
13
+ ingestionUrl?: string; // Override default TitanShield ingestion endpoint
12
14
  }
13
15
 
14
16
  // ── Audit ─────────────────────────────────────────────────────────────────────