Commit b99905e
feat(admin): capture and surface the CSP report sample/detail (#69)
The /admin/stats Reports table showed type, path, directive, blocked, and
disposition but not the one field that names the offending Trusted Types
policy (or the blocked inline snippet): the CSP report's `sample`.
reports.ts only populated blob6 from `message`/`reason`, which CSP violation
bodies never carry — so the detail was being dropped at write time. Pick
`sample` (Reporting API) / `script-sample` (legacy csp-report) as a fallback,
and add a "detail" column to the dashboard's recent-reports table so the
policy name shows up. Privacy policy updated to disclose the new field.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent d188519 commit b99905e
3 files changed
Lines changed: 26 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
| 184 | + | |
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| |||
853 | 853 | | |
854 | 854 | | |
855 | 855 | | |
856 | | - | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
857 | 865 | | |
858 | 866 | | |
859 | 867 | | |
860 | 868 | | |
861 | 869 | | |
862 | 870 | | |
| 871 | + | |
863 | 872 | | |
864 | 873 | | |
865 | 874 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
128 | 135 | | |
129 | 136 | | |
130 | 137 | | |
| |||
134 | 141 | | |
135 | 142 | | |
136 | 143 | | |
137 | | - | |
| 144 | + | |
138 | 145 | | |
139 | 146 | | |
140 | 147 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
| |||
0 commit comments