Implement is_sensitive/2 using configurable application env
authorJay Doane <jaydoane@apache.org>
Sat, 20 Feb 2021 07:03:05 +0000 (23:03 -0800)
committerJay Doane <jay.s.doane@gmail.com>
Tue, 23 Feb 2021 17:14:06 +0000 (09:14 -0800)
commit6937283083c6835339ce226b00d6ecee25a7f525
tree03060e3ffe7b82efae2b033ad3819fb8f6615ead
parentff743536daf2ee71f9c378fe73205bd7456d47d5
Implement is_sensitive/2 using configurable application env

If it exists, consult a file to configure application env. If
`sensitive` env key is found therein, use it to determine which values
to redact from log entries. The value of the `sensitive` key should be
a dict of the form:
```
#{
    Section1 => [Field1, Field2, ...],
    Section2 => all
}
```
where `Section`s are strings that define sections which contain
sensitive fields, and `Field`s are strings. The atom `all` indicates
all fields for that section are sensitive. A typical configuration
might look like:
```
#{
    "admins" => all,
    "replicator" => ["password"]
}
```
meaning that all values in the `[admins]` section, and the `password`
value in the `[replicator]` section will be redacted from the logs.
src/config.app.src.script [moved from src/config.app.src with 72% similarity]
src/config.erl