ktx/packages/context/src/scan/credentials.ts

51 lines
1.4 KiB
TypeScript
Raw Normal View History

2026-05-10 23:12:26 +02:00
import {
2026-05-10 23:51:24 +02:00
redactKtxSensitiveMetadata,
redactKtxSensitiveText,
redactKtxSensitiveValue,
REDACTED_KTX_CREDENTIAL_VALUE,
2026-05-10 23:12:26 +02:00
} from '../core/redaction.js';
2026-05-10 23:51:24 +02:00
import type { KtxCredentialEnvelope, KtxScanReport, KtxScanWarning } from './types.js';
2026-05-10 23:12:26 +02:00
2026-05-10 23:51:24 +02:00
export { REDACTED_KTX_CREDENTIAL_VALUE };
2026-05-10 23:12:26 +02:00
2026-05-10 23:51:24 +02:00
export function redactKtxCredentialValue(key: string, value: unknown): unknown {
return redactKtxSensitiveValue(key, value);
2026-05-10 23:12:26 +02:00
}
2026-05-10 23:51:24 +02:00
export function redactKtxScanMetadata(metadata: Record<string, unknown>): Record<string, unknown> {
return redactKtxSensitiveMetadata(metadata);
2026-05-10 23:12:26 +02:00
}
2026-05-10 23:51:24 +02:00
export function redactKtxCredentialEnvelope(envelope: KtxCredentialEnvelope): KtxCredentialEnvelope {
2026-05-10 23:12:26 +02:00
if (envelope.kind !== 'resolved') {
return envelope;
}
return {
kind: 'resolved',
source: envelope.source,
redacted: true,
2026-05-10 23:51:24 +02:00
values: redactKtxScanMetadata(envelope.values),
2026-05-10 23:12:26 +02:00
};
}
2026-05-10 23:51:24 +02:00
export function redactKtxScanWarning(warning: KtxScanWarning): KtxScanWarning {
2026-05-10 23:12:26 +02:00
if (!warning.metadata) {
return {
...warning,
2026-05-10 23:51:24 +02:00
message: redactKtxSensitiveText(warning.message),
2026-05-10 23:12:26 +02:00
};
}
return {
...warning,
2026-05-10 23:51:24 +02:00
message: redactKtxSensitiveText(warning.message),
metadata: redactKtxScanMetadata(warning.metadata),
2026-05-10 23:12:26 +02:00
};
}
2026-05-10 23:51:24 +02:00
export function redactKtxScanReport(report: KtxScanReport): KtxScanReport {
2026-05-10 23:12:26 +02:00
return {
...report,
2026-05-10 23:51:24 +02:00
warnings: report.warnings.map((warning) => redactKtxScanWarning(warning)),
2026-05-10 23:12:26 +02:00
};
}