autotel
Version:
Write Once, Observe Anywhere
69 lines (67 loc) • 2.45 kB
JavaScript
;
// src/security-schema.ts
var SECURITY_SEVERITIES = [
"info",
"warning",
"error",
"critical"
];
var SECURITY_SEVERITY_RANK = {
info: 0,
warning: 1,
error: 2,
critical: 3
};
function parseSecuritySeverity(value, fallback = "info") {
return typeof value === "string" && value in SECURITY_SEVERITY_RANK ? value : fallback;
}
function securitySeverityAtLeast(severity, min) {
return SECURITY_SEVERITY_RANK[severity] >= SECURITY_SEVERITY_RANK[min];
}
function escalateSecuritySeverity(severity, floor) {
return SECURITY_SEVERITY_RANK[severity] >= SECURITY_SEVERITY_RANK[floor] ? severity : floor;
}
var SECURITY_ATTR = {
/** Marker set on every span carrying a security event. */
marker: "autotel.security",
/** Set when the event was force-kept through tail sampling. */
forceKeep: "autotel.security.force_keep",
event: "security.event",
category: "security.category",
outcome: "security.outcome",
severity: "security.severity",
actorId: "security.actor_id",
targetType: "security.target_type",
targetId: "security.target_id",
tenantId: "security.tenant_id",
reason: "security.reason",
/** Custom metadata keys dropped because they looked credential-shaped. */
droppedKeys: "security.dropped_keys",
/** Set by the signal processor on suspicious request paths. */
suspiciousRequest: "security.suspicious_request",
/** Pattern name that flagged a suspicious request, e.g. `path_traversal`. */
signal: "security.signal"
};
var SECURITY_METRICS = {
events: "autotel.security.events",
httpSuspicious: "autotel.security.http.suspicious",
httpDenied: "autotel.security.http.denied",
anomaly: "autotel.security.anomaly",
heartbeat: "autotel.security.heartbeat"
};
var SECURITY_DENIED_STATUSES = [401, 403, 429];
var HTTP_STATUS_ATTRIBUTES = [
"http.response.status_code",
"http.status_code"
];
exports.HTTP_STATUS_ATTRIBUTES = HTTP_STATUS_ATTRIBUTES;
exports.SECURITY_ATTR = SECURITY_ATTR;
exports.SECURITY_DENIED_STATUSES = SECURITY_DENIED_STATUSES;
exports.SECURITY_METRICS = SECURITY_METRICS;
exports.SECURITY_SEVERITIES = SECURITY_SEVERITIES;
exports.SECURITY_SEVERITY_RANK = SECURITY_SEVERITY_RANK;
exports.escalateSecuritySeverity = escalateSecuritySeverity;
exports.parseSecuritySeverity = parseSecuritySeverity;
exports.securitySeverityAtLeast = securitySeverityAtLeast;
//# sourceMappingURL=security-schema.cjs.map
//# sourceMappingURL=security-schema.cjs.map