autotel
Version:
Write Once, Observe Anywhere
59 lines (58 loc) • 2.16 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"
];
export { HTTP_STATUS_ATTRIBUTES, SECURITY_ATTR, SECURITY_DENIED_STATUSES, SECURITY_METRICS, SECURITY_SEVERITIES, SECURITY_SEVERITY_RANK, escalateSecuritySeverity, parseSecuritySeverity, securitySeverityAtLeast };
//# sourceMappingURL=security-schema.js.map
//# sourceMappingURL=security-schema.js.map