@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.
- package/dist/TitanShield.d.ts +25 -0
- package/dist/TitanShield.d.ts.map +1 -1
- package/dist/TitanShield.js +63 -0
- package/dist/TitanShield.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TitanShield.ts +73 -0
- package/src/types.ts +2 -0
package/dist/TitanShield.d.ts
CHANGED
|
@@ -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;
|
|
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;IAwC/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;IAazB;;;;;;;;;;;;;;OAcG;IACG,OAAO,CAAC,GAAG,EAAE;QACf,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,GAAG,OAAO,CAAC,IAAI,CAAC;CA+CpB"}
|
package/dist/TitanShield.js
CHANGED
|
@@ -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
|
package/dist/TitanShield.js.map
CHANGED
|
@@ -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 {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/TitanShield.ts
CHANGED
|
@@ -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 ─────────────────────────────────────────────────────────────────────
|