- Shipped
- October 12, 2026 at 10:00 AM UTC
- Author
- Kamo
- Commit
- a729b86
reports_list reads SecurityService's report library on the caller's session: the reports they may run, the measurable metrics of those reports and, for an SI caller, its measurable activity metrics; with a key, the report's definition read with recordRecent=false (parameters with at most 50 options, columns, views, its metrics); reporting switched off is an empty library with "Reports are not switched on in your organization." reports_run maps params by the definition's types (a date range is a preset or YYYY-MM-DD/YYYY-MM-DD, a multi-select comma-separated, anything else text; an undeclared, repeated or unreadable parameter and a column the report does not group by are INVALID_ARGUMENTS before anything runs), runs the report and answers its totals, KPIs, at most 50 groups and limit rows (no _href, ids as strings, offset-less UTC times as instants), the whole result one source **************** a run 400 is INVALID_ARGUMENTS with its message, and a report the caller may not run answers as one that does not exist. metrics_get asks kamoai-service's metric facade (MetricsClient: X-Internal-Auth, 2 s connect, 10 s read) for the caller in their zone: OK is one source, its sourceRef; any other status its sentence and no figures; a failure UNAVAILABLE. All three are READ, audience ALL, charterSwitch("WATCH", true): an AUDIT org's SI without a watch keeps a byte-identical tool list. ContentReadTools: reports_run and metrics_get LABELED (root), reports_list NOT_CONTENT. ToolRegistry: prefix reports_, and metrics_get named outside its pack.
