Identity and route boundary
Clerk provides identity and organisation membership. Authenticated product routes are protected at the route boundary, while sensitive services also enforce their own scope.
Trust and safeguards
Team Calendar handles payroll-connected leave and availability data. This page describes the controls implemented today, the systems that process data, and the private path for reporting a vulnerability.
Evidence last reviewed
Access
Clerk provides identity and organisation membership. Authenticated product routes are protected at the route boundary, while sensitive services also enforce their own scope.
A Clerk Organisation is the top-level tenant boundary. Data access applies both the Clerk organisation ID and the selected payroll organisation where required.
Owners and admins administer configuration. Managers are limited to permitted teams and reports. The baseline employee membership is read-only outside that employee’s own leave and availability.
Protection
Xero OAuth tokens use application-level AES-256-GCM encryption. Token operations stay server-side and credentials are not sent to client code.
Feed URLs use signed, revocable tokens. Plaintext tokens are not persisted, while authorised viewers intentionally receive the complete active subscribe URL.
Published events use the stricter of the feed and record privacy modes. A record can be excluded from feeds with include_in_feed. Team Calendar does not expose category or type selectors.
Supported network transport uses HTTPS/TLS. Observability events, breadcrumbs and logs are scrubbed before delivery, and server stack-frame local variables are disabled.
Data flow
This is the implemented path from payroll source to a subscribed calendar.
Payroll people, approved leave and balances enter through the authenticated Xero integration.
Canonical records are processed within Clerk organisation and payroll organisation scope.
Primary records are stored in Neon PostgreSQL. Xero OAuth tokens receive additional application-level encryption.
Eligibility and effective privacy are applied before publication. Published ICS bodies can be cached in configured Redis/KV.
Authorised calendar clients retrieve the resulting ICS feed through its signed, revocable URL.
Vercel, Neon, Clerk, Redis/KV and configured analytics or observability providers participate in processing. Region and replication depend on deployed account configuration. Ask us about a residency requirement.
Response
Procurement and privacy
Discuss your security, privacy or residency requirements with us, or review how the public site handles personal information.
Good-faith research
Use the repository’s private GitHub Security Advisory form. Do not create a public issue. We target acknowledgement within two business days and triage within five business days.
Open private reporting form