Files
probo/pkg/accessreview/drivers/testdata/zendesk.yaml
Aurélien Sibiril dbd920dc24 Add Zendesk access-review connector
Zendesk is a multi-tenant OAuth connector keyed by the customer
subdomain. The customer enters it at connect time; it rides the signed
state to the callback, is re-validated, and is stored on the connector
settings to build the API host.

List staff (agents and admins) via GET /api/v2/users.json with cursor
pagination, mapping role, active/suspended, and 2FA status; end-users
are excluded. The subdomain is validated as a single DNS label at every
trust boundary to close the SSRF vector, and the data client keeps the
SSRF-protected transport.

Zendesk OAuth across customer subdomains requires a Zendesk-approved
global OAuth client; the connector goes live once those credentials are
supplied via bootstrap.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-06-04 20:55:48 +02:00

83 lines
2.4 KiB
YAML

---
version: 2
interactions:
- id: 0
request:
proto: HTTP/1.1
proto_major: 1
proto_minor: 1
content_length: 0
transfer_encoding: []
trailer: {}
host: acme.zendesk.com
remote_addr: ""
request_uri: ""
body: ""
form:
page[size]:
- "100"
role[]:
- agent
- admin
headers:
Accept:
- application/json
url: https://acme.zendesk.com/api/v2/users.json?page%5Bsize%5D=100&role%5B%5D=agent&role%5B%5D=admin
method: GET
response:
proto: HTTP/2.0
proto_major: 2
proto_minor: 0
transfer_encoding: []
trailer: {}
content_length: -1
uncompressed: true
body: |
{
"users": [
{
"id": 12345,
"email": "alice@example.com",
"name": "Alice Example",
"role": "admin",
"suspended": false,
"active": true,
"two_factor_auth_enabled": true,
"last_login_at": "2025-06-01T10:00:00Z",
"created_at": "2025-01-02T03:04:05Z"
},
{
"id": 67890,
"email": "bob@example.com",
"name": "Bob Example",
"role": "agent",
"suspended": false,
"active": true,
"two_factor_auth_enabled": false,
"last_login_at": null,
"created_at": "2025-02-01T00:00:00Z"
},
{
"id": 99999,
"email": "carol@example.com",
"name": "Carol Customer",
"role": "end-user",
"suspended": false,
"active": true,
"two_factor_auth_enabled": false,
"last_login_at": null,
"created_at": "2025-03-01T00:00:00Z"
}
],
"meta": {
"has_more": false,
"after_cursor": null
}
}
headers:
Content-Type:
- application/json
status: 200 OK
code: 200
duration: 1ms