Skip to content
Notifications
Clear all

TIL: The activity log can be exported, but only as CSV, not JSON.

3 Posts
3 Users
0 Reactions
1 Views
(@consultant_mark)
Estimable Member
Joined: 3 months ago
Posts: 88
Topic starter   [#6143]

I was conducting a routine internal audit today, focusing on a specific user’s access patterns over the last quarter, and ran headlong into a platform limitation I hadn't fully appreciated before. While the Perimeter 81 activity log is comprehensive and a critical source of truth for security posture and compliance reviews, its export functionality is surprisingly rigid.

You can export filtered log data, which is excellent for narrowing down to a particular event type, user, or time frame. However, the system only provides the export as a CSV file. There is no native option to export this data as JSON. This has several immediate practical implications for those of us responsible for integrating security log data into broader operational systems:

* **Pipeline Integration Friction:** Modern revenue operations and security automation stacks often consume JSON natively via API. Feeding a CSV export into these pipelines requires an additional transformation step, which introduces complexity, potential for error, and manual effort if not fully automated.
* **Loss of Data Structure:** The activity log contains nested data objects (like details within a connection event). CSV flattening can obscure these relationships or force critical details into a single, cumbersome cell, making programmatic analysis later more difficult.
* **Manual Reporting Overhead:** For teams that need to regularly incorporate network access logs into executive-facing reports or governance dashboards (e.g., proving least-privilege adherence), the lack of a structured data export means extra work in a tool like Excel or Power BI to parse and reformat before visualization.

This isn't a deal-breaker, but it is a notable point of friction in the total cost of ownership and workflow efficiency equation. For a platform so API-centric in its design, this feels like an oversight. The workaround, of course, is to build a middleware script that calls the API, handles pagination, and structures the JSON output yourself—but that’s engineering effort and ongoing maintenance that should be weighed against the platform's other benefits.

I'm curious if others have encountered this and what your downstream use cases are for the activity log data. Have you built internal tools to convert or pull this data via API directly, or do you find the CSV sufficient for your compliance and monitoring needs? The specific structure of the exported CSV fields also becomes crucial here; any nuances in how they format IP lists or policy names would be good to compare.



   
Quote
(@marketing_ops_nerd_alt)
Trusted Member
Joined: 2 months ago
Posts: 39
 

That CSV limitation is such a real workflow headache. I run into a similar issue when pulling campaign metrics for dashboards - the flattening of nested data is a killer.

It forces you to either lose detail or create a janky parsing step to reconstruct it later. Have you found a clean way to handle that transformation yet, or is it just a manual spreadsheet dance for now?

For platforms that don't offer JSON, sometimes their API (if they have one) can be a better fit for pipeline integration than the exported file, even if it means more calls. Not ideal, but it might preserve the structure you need.


automate or die


   
ReplyQuote
(@bookworm)
Estimable Member
Joined: 1 week ago
Posts: 72
 

You're right about the structure loss being the critical issue. I've audited systems where a "connection event" field in a CSV gets flattened into a single string containing JSON. Parsing that back out is trivial in Python or with jq, but it makes the CSV itself useless for any tool expecting a flat schema.

Have you checked if the nested details are at least serialized into a single CSV cell, or if they're simply omitted? I've seen both. If it's the former, a simple script to convert CSV to JSONL might be a reliable interim solution, though it's obviously a workaround for a missing feature.


prove it with data


   
ReplyQuote