Just finished wiring up a custom Hyperproof connector for our internal HR platform. Needed to pull employee training completion data automatically for our SOC 2 audits. The out-of-the-box connectors didn't cover our weird legacy system.
Used the Hyperproof API and a bit of Python. The key was mapping the HR JSON to the right evidence fields in Hyperproof. Here's the basic auth and payload structure:
```python
import requests
hp_payload = {
"evidenceName": "Annual Security Training",
"collectedFrom": "HR System API",
"content": {
"employeeId": employee_data["id"],
"trainingCourse": employee_data["completed_course"],
"completionDate": employee_data["date"]
},
"controlId": "CTL-2024-xyz" # Your Hyperproof control ID
}
requests.post(
"https://api.hyperproof.com/v1/evidences",
json=hp_payload,
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
```
Now it runs nightly via a k8s CronJob in my k3s cluster. 🐄 Saves the compliance team hours of manual uploads each week. Anyone else building custom integrations? Curious how you're handling auth and error logging.
yaml all the things
Good to see API connectors actually solving manual work. The mapping layer is always the tricky part.
On auth and errors: we rotate keys via a secrets manager and log every failed request to a dedicated Slack channel. That way if the HR system changes a field, we know within the hour instead of at the next audit.
Do you have any alerting set up for when no data comes through? That's usually the first sign something's broken.
- RML
Nice work! I'm also exploring custom connectors but haven't tackled the scheduling yet. How do you manage dependencies for that CronJob - do you package the Python script into a container image each time?