Add CompanyName and Department to the results CSV
Add-PersonaRunResult now optionally accepts the normalized UserRecord and pulls CompanyName/Department from it for the results.csv row, via TryGetValue rather than the Properties dictionary indexer so a record built without those keys doesn't throw. Kept off the PersonaDecisionResult/audit contract on purpose - this is CSV-only, not a widening of what gets logged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -57,7 +57,7 @@ property-only rules.
|
||||
| --- | --- | --- | --- |
|
||||
| `destination` | no | `both` | `file`, `stream`, `both`, or `none`. `stream` writes records to the PowerShell Information stream. |
|
||||
| `path` | no | `<current-directory>/logs/persona-engine-audit.ndjson` | NDJSON output file. One record per line. |
|
||||
| `resultsFileName` | no | `results.csv` | Per-account results CSV, written next to `path`'s directory. Lists `AccountObjectId`, `UserPrincipalName`, `PersonaStatus` for every account processed so far. Overwritten on every summary, interim and final. |
|
||||
| `resultsFileName` | no | `results.csv` | Per-account results CSV, written next to `path`'s directory. Lists `AccountObjectId`, `UserPrincipalName`, `PersonaStatus`, `CompanyName`, `Department` for every account processed so far. Overwritten on every summary, interim and final. |
|
||||
| `traceConditionValues` | no | `false` | Writes evaluated attribute values into audit records. |
|
||||
| `acknowledgeConditionTracing` | no | `false` | **Required whenever `traceConditionValues` is true** (VR-003). |
|
||||
|
||||
|
||||
+4
-3
@@ -42,9 +42,10 @@ or the warning that matters is buried in the noise it generates.
|
||||
|
||||
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.
|
||||
persona for `Matched` accounts, otherwise `Unclassified` or `EvaluationError`), `CompanyName`, and
|
||||
`Department` (as retrieved from the directory, blank when absent). 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:
|
||||
|
||||
@@ -47,8 +47,8 @@ configuration look identical if zero-match rules are omitted, and that distincti
|
||||
you are looking for. Its header shows elapsed wall-clock time since the run started.
|
||||
|
||||
Each summary also (re)writes `logging.resultsFileName` (default `results.csv`, next to the audit log)
|
||||
with one row per account processed so far — Object ID, UPN, and assigned persona/status — for an
|
||||
operator who wants the current population breakdown without parsing NDJSON.
|
||||
with one row per account processed so far — Object ID, UPN, assigned persona/status, company name,
|
||||
and department — for an operator who wants the current population breakdown without parsing NDJSON.
|
||||
|
||||
## Exit codes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user