Add elapsed run time, per-account results CSV, and a default config path
Summaries now show elapsed wall-clock time since the run started, and every summary (interim and final) overwrites a results.csv (Object ID, UPN, persona/status) next to the audit log, so an operator has a plain export without parsing NDJSON. ConfigPath also now defaults to ./config/persona-engine.json instead of requiring -ConfigPath every run. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,19 @@ warning, **once** per run, and processing continues.
|
||||
Once, not once per user: a run over five thousand accounts with a locked log file should warn once,
|
||||
or the warning that matters is buried in the noise it generates.
|
||||
|
||||
## Results CSV
|
||||
|
||||
Alongside the NDJSON audit log, every summary — interim and final — (re)writes a plain CSV listing
|
||||
every account processed so far: `AccountObjectId`, `UserPrincipalName`, `PersonaStatus` (the assigned
|
||||
persona for `Matched` accounts, otherwise `Unclassified` or `EvaluationError`). It is overwritten in
|
||||
full each time, not appended, so it always reflects the whole run to that point rather than only the
|
||||
accounts since the last summary.
|
||||
|
||||
It is written next to the audit log — same directory as `logging.path` — under `logging.resultsFileName`
|
||||
(default `results.csv`). Export failure never ends a run, for the same reason a sink failure doesn't:
|
||||
a locked file or full disk is an operational problem, not a reason to abandon a classification run
|
||||
mid-population.
|
||||
|
||||
## Record types
|
||||
|
||||
| Type | When | Carries |
|
||||
|
||||
Reference in New Issue
Block a user