mssqlRedactParameters function
Bound parameters with secrets removed.
Names that look like passwords stay redacted even when includeValues
is true. A generated toString is a different surface — that one omits
hidden columns — but an observer log is the one that would otherwise
print @password next to the SQL.
Implementation
Object mssqlRedactParameters(Object parameters, {bool includeValues = false}) {
if (parameters is Map) {
return <String, Object?>{
for (final entry in parameters.entries)
entry.key.toString(): _redactValue(
entry.key.toString(),
entry.value,
includeValues: includeValues,
),
};
}
if (parameters is Iterable) {
return <Object?>[
for (final value in parameters) includeValues ? value : '<redacted>',
];
}
return includeValues ? parameters : '<redacted>';
}