Add access source drivers
Add Driver interface and implementations for Google Workspace, Linear, Slack, 1Password, HubSpot, DocuSign, Notion, Brex, Tally, Cloudflare, CSV, Probo memberships, Sentry, OpenAI, Supabase, GitHub, Intercom, and Resend. Include name resolvers, VCR test infrastructure with cassettes, and RFC 5988 link header parser. Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
42
pkg/accessreview/drivers/testdata/brex.yaml
vendored
Normal file
42
pkg/accessreview/drivers/testdata/brex.yaml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: platform.brexapis.com
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Content-Type:
|
||||
- application/json
|
||||
url: https://platform.brexapis.com/v2/users
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"items":[{"id":"cuuser_000000000000000000000001","first_name":"Alice","last_name":"Martin","email":"alice@example.com","status":"ACTIVE","manager_id":"cuuser_000000000000000000000006","user_role":"EMPLOYEE"},{"id":"cuuser_000000000000000000000002","first_name":"Bob","last_name":"Wilson","email":"bob@example.com","status":"ACTIVE","manager_id":"cuuser_000000000000000000000005","user_role":"EMPLOYEE"},{"id":"cuuser_000000000000000000000003","first_name":"Charlie","last_name":"Brown","email":"charlie@example.com","status":"ACTIVE","manager_id":"cuuser_000000000000000000000006","user_role":"EMPLOYEE"},{"id":"cuuser_000000000000000000000004","first_name":"Dana","last_name":"Contractor","email":"dana@contractor.example.com","status":"ACTIVE","user_role":"BOOKKEEPER"},{"id":"cuuser_000000000000000000000005","first_name":"John","last_name":"Smith","email":"john@example.com","status":"ACTIVE","user_role":"ACCOUNT_ADMIN"},{"id":"cuuser_000000000000000000000006","first_name":"Jane","last_name":"Doe","email":"jane@example.com","status":"ACTIVE","user_role":"ACCOUNT_ADMIN"}]}'
|
||||
headers:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:04 GMT
|
||||
Server:
|
||||
- istio-envoy
|
||||
X-Brex-Parent-Id:
|
||||
- "2660134401200686227"
|
||||
X-Brex-Sampling-Priority:
|
||||
- "1"
|
||||
X-Brex-Trace-Id:
|
||||
- "17144222899071086561"
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- "590"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 1.095966125s
|
||||
130
pkg/accessreview/drivers/testdata/cloudflare.yaml
vendored
Normal file
130
pkg/accessreview/drivers/testdata/cloudflare.yaml
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.cloudflare.com
|
||||
form:
|
||||
page:
|
||||
- "1"
|
||||
per_page:
|
||||
- "50"
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Content-Type:
|
||||
- application/json
|
||||
url: https://api.cloudflare.com/client/v4/accounts?page=1&per_page=50
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"result":[{"id":"a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0","name":"Acme Corp Account","type":"standard","settings":{"enforce_twofactor":false,"api_access_enabled":null,"access_approval_expiry":null,"abuse_contact_email":null},"legacy_flags":{"enterprise_zone_quota":{"maximum":0,"current":0,"available":0}},"created_on":"2024-08-01T13:33:08.703547Z"}],"result_info":{"page":1,"per_page":50,"total_pages":1,"count":1,"total_count":1},"success":true,"errors":[],"messages":[]}'
|
||||
headers:
|
||||
Api-Version:
|
||||
- "2026-03-26"
|
||||
Cache-Control:
|
||||
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
||||
Cf-Auditlog-Id:
|
||||
- 019d2a35-91c4-7736-896b-b006409d7e6f
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264d55fea00272-CDG
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:08 GMT
|
||||
Expires:
|
||||
- Sun, 25 Jan 1981 05:00:00 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Ratelimit:
|
||||
- '"default";r=1199;t=1'
|
||||
Ratelimit-Policy:
|
||||
- '"default";q=1200;w=300'
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cflb=04dTob1Z8hkaUxg6DoHNs8KRCyeFsheZBgh4Z4g8w7; SameSite=Lax; path=/; expires=Thu, 26-Mar-26 15:24:09 GMT; HttpOnly
|
||||
- __cf_bm=LyuTKDqNQ5tvh.PHF8_9EdNmXMvJqY4R5hcWPgVvMzU-1774529647.0347695-1.0.1.1-UnR7cgawFlfSt.v3DMn.2_k9YyICl.HC97ZYLn4wz_18Abz7sbBAHiVmjrFTui2_2Yv6xMPC5aQHLne9dkWG9AEfHjgOciGnCcIxV_5R3cU9fx1I.X6S2ULi.g02JOhT; HttpOnly; Secure; Path=/; Domain=api.cloudflare.com; Expires=Thu, 26 Mar 2026 13:24:08 GMT
|
||||
- _cfuvid=RPBCBz3UI_HliU0tQFxDPvA0iEo4L.Sl9rAKMd.y6gk-1774529647.0347695-1.0.1.1-pURMyXvOZFChPV9dMfEZBk7C500xxDGyZbysJ0p1SlM; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.cloudflare.com
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 1.137052667s
|
||||
- id: 1
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.cloudflare.com
|
||||
form:
|
||||
page:
|
||||
- "1"
|
||||
per_page:
|
||||
- "50"
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Content-Type:
|
||||
- application/json
|
||||
url: https://api.cloudflare.com/client/v4/accounts/a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0/members?page=1&per_page=50
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: |
|
||||
{"result":[{"id":"b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0","email":"john@example.com","user":{"id":"c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0","first_name":null,"last_name":null,"email":"john@example.com","two_factor_authentication_enabled":true},"status":"accepted","api_access_enabled":null,"policies":[{"id":"94f6cdbcf2914b68b69a1c6ccb407ff2","access":"allow","permission_groups":[{"id":"8e23b19e4e0d44c29d239c5688ba8cbb","name":"Super Administrator - All Privileges","meta":{"category":"general","description":"Can edit any Cloudflare setting, make purchases, update billing, and manage memberships. Super Administrators can revoke the access of other Super Administrators.","editable":"false","label":"all_privileges","scopes":"com.cloudflare.api.account"}}],"resource_groups":[{"id":"4a190dd8042e46bfb5c86663050c37bb","name":"com.cloudflare.api.account.a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0","meta":{"editable":"false"},"scope":{"key":"com.cloudflare.api.account.a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0","objects":[{"key":"*"}]}}]}],"roles":[{"id":"33666b9c79b9a5273fc7344ff42f953d","name":"Super Administrator - All Privileges","description":"Can edit any Cloudflare setting, make purchases, update billing, and manage memberships. Super Administrators can revoke the access of other Super Administrators.","permissions":{"access":{"edit":true,"read":true},"analytics":{"edit":false,"read":true},"api_gateway":{"edit":true,"read":true},"app":{"edit":true,"read":false},"auditlogs":{"edit":false,"read":true},"billing":{"edit":true,"read":true},"blocks":{"edit":true,"read":true},"cache_purge":{"edit":true,"read":false},"casb":{"edit":true,"read":true},"cds":{"edit":true,"read":true},"cds_compute_account":{"edit":true,"read":true},"ces_analytics":{"edit":false,"read":true},"ces_integration":{"edit":true,"read":true},"ces_phishguard":{"edit":false,"read":true},"ces_policies":{"edit":true,"read":true},"ces_pra_report":{"edit":true,"read":true},"ces_search":{"action":true,"edit":false,"preview":true,"raw":true,"read":true,"trace":true},"ces_settings":{"edit":true,"read":true},"ces_submissions":{"edit":true,"read":true},"cf1_integration":{"casb":true,"ces":true,"edit":true,"read":true},"d1":{"edit":true,"read":false},"dash_sso":{"edit":true,"read":true},"dex":{"edit":true,"read":true},"dns_records":{"edit":true,"read":true},"domain":{"edit":false,"read":true},"fbm":{"edit":true,"read":true},"fbm_acc":{"edit":true,"read":false},"healthchecks":{"edit":true,"read":true},"http_applications":{"edit":true,"read":true},"image":{"edit":true,"read":true},"integration":{"edit":true,"install":true,"read":true},"lb":{"edit":true,"read":true},"legal":{"edit":true,"read":true},"logs":{"edit":true,"read":true},"magic":{"edit":true,"read":true},"member":{"edit":true,"read":true},"organization":{"edit":true,"read":true},"page_shield":{"edit":true,"read":true},"query_cache":{"edit":true,"read":true},"r2_bucket":{"edit":true,"read":true},"r2_bucket_item":{"edit":true,"read":true},"r2_bucket_warehouse":{"edit":true,"read":true},"r2_bucket_warehouse_sql":{"edit":false,"read":true},"resilience":{"edit":true,"read":true},"ssl":{"edit":true,"read":true},"stream":{"edit":true,"read":true},"subscription":{"edit":true,"read":true},"teams":{"edit":true,"pii":true,"read":true,"report":true},"teams_device":{"edit":false,"read":true},"vectorize":{"edit":true,"read":true},"waf":{"edit":true,"read":true},"waitingroom":{"edit":true,"read":true},"web3":{"edit":true,"read":true},"worker":{"edit":true,"read":true},"zaraz":{"edit":true,"publish":true,"read":true},"zone":{"edit":true,"read":true},"zone_settings":{"edit":true,"read":true},"zone_versioning":{"edit":true,"read":true}}}]}],"result_info":{"page":1,"per_page":50,"total_pages":1,"count":1,"total_count":1},"success":true,"errors":[],"messages":[]}
|
||||
headers:
|
||||
Allow:
|
||||
- GET, POST
|
||||
Api-Version:
|
||||
- "2026-03-26"
|
||||
Cache-Control:
|
||||
- private,no-cache,no-store
|
||||
Cf-Auditlog-Id:
|
||||
- 019d2a35-9614-75cb-bdee-bd4b7032bff2
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264d5cdd890272-CDG
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:08 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Ratelimit:
|
||||
- '"default";r=1199;t=1'
|
||||
Ratelimit-Policy:
|
||||
- '"default";q=1200;w=300'
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cflb=04dTob1Z8hkaUxg6DoHNs8KRCyeFsheZMPN5MtAkCd; SameSite=Lax; path=/; expires=Thu, 26-Mar-26 15:24:09 GMT; HttpOnly
|
||||
- __cf_bm=wb_wrUP01dJHoUzazZm1.uiyEnIDd9T4FfBjy0TCTA8-1774529648.1355844-1.0.1.1-U1ANV4vetzyj.IHgptRMPsZRo425I1beWBhJj9Sk6fTCNbehiJ5wQyZfEXPnzaLii5IkN8TZ0e.I7RGjjZof01_fwKAA46tNZ17xG032QXlmKnnmU4DrxL8cvpogHIFL; HttpOnly; Secure; Path=/; Domain=api.cloudflare.com; Expires=Thu, 26 Mar 2026 13:24:08 GMT
|
||||
- _cfuvid=sUYD5zj5lijQFwgMQsqTkqNzvzAH20wbHjXkOak6_V0-1774529648.1355844-1.0.1.1-b3hM8gyNj.5d_wxoQiozNeDeAi_pUUdL6KSJTAHjBSU; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.cloudflare.com
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 739.361791ms
|
||||
296
pkg/accessreview/drivers/testdata/github.yaml
vendored
Normal file
296
pkg/accessreview/drivers/testdata/github.yaml
vendored
Normal file
@@ -0,0 +1,296 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.github.com
|
||||
form:
|
||||
per_page:
|
||||
- "100"
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github+json
|
||||
url: https://api.github.com/orgs/acme-corp/members?per_page=100
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '[{"login":"jdoe","id":100001,"node_id":"XYZQ6VXNlcjEwMDAw","avatar_url":"","gravatar_id":"","url":"https://api.github.com/users/jdoe","html_url":"https://github.com/jdoe","followers_url":"https://api.github.com/users/jdoe/followers","following_url":"https://api.github.com/users/jdoe/following{/other_user}","gists_url":"https://api.github.com/users/jdoe/gists{/gist_id}","starred_url":"https://api.github.com/users/jdoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdoe/subscriptions","organizations_url":"https://api.github.com/users/jdoe/orgs","repos_url":"https://api.github.com/users/jdoe/repos","events_url":"https://api.github.com/users/jdoe/events{/privacy}","received_events_url":"https://api.github.com/users/jdoe/received_events","type":"User","user_view_type":"public","site_admin":false}]'
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
|
||||
Cache-Control:
|
||||
- private, max-age=60, s-maxage=60
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:20:24 GMT
|
||||
Etag:
|
||||
- W/"ff2048ab2918047a22ee474a92af74dff9570f18dc6b59556889b02a90e5291f"
|
||||
Github-Authentication-Token-Expiration:
|
||||
- 2026-04-25 13:21:33 +0200
|
||||
Referrer-Policy:
|
||||
- origin-when-cross-origin, strict-origin-when-cross-origin
|
||||
Server:
|
||||
- github.com
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
Vary:
|
||||
- Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With
|
||||
X-Accepted-Github-Permissions:
|
||||
- members=read
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Github-Api-Version-Selected:
|
||||
- "2022-11-28"
|
||||
X-Github-Media-Type:
|
||||
- github.v3; format=json
|
||||
X-Github-Request-Id:
|
||||
- E712:31AC1B:623D7E5:56C7B3B:69C53298
|
||||
X-Ratelimit-Limit:
|
||||
- "5000"
|
||||
X-Ratelimit-Remaining:
|
||||
- "4999"
|
||||
X-Ratelimit-Reset:
|
||||
- "1774534824"
|
||||
X-Ratelimit-Resource:
|
||||
- core
|
||||
X-Ratelimit-Used:
|
||||
- "1"
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 282.34525ms
|
||||
- id: 1
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.github.com
|
||||
form:
|
||||
filter:
|
||||
- 2fa_disabled
|
||||
per_page:
|
||||
- "100"
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github+json
|
||||
url: https://api.github.com/orgs/acme-corp/members?filter=2fa_disabled&per_page=100
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: 2
|
||||
body: '[]'
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
|
||||
Cache-Control:
|
||||
- private, max-age=60, s-maxage=60
|
||||
Content-Length:
|
||||
- "2"
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:20:24 GMT
|
||||
Etag:
|
||||
- '"66d4a6c8d79df8b01adad18bc0608ce26f32b16b3bf0d61ec689cc3a8cda2c37"'
|
||||
Github-Authentication-Token-Expiration:
|
||||
- 2026-04-25 13:21:33 +0200
|
||||
Referrer-Policy:
|
||||
- origin-when-cross-origin, strict-origin-when-cross-origin
|
||||
Server:
|
||||
- github.com
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
Vary:
|
||||
- Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With
|
||||
X-Accepted-Github-Permissions:
|
||||
- members=read
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Github-Api-Version-Selected:
|
||||
- "2022-11-28"
|
||||
X-Github-Media-Type:
|
||||
- github.v3; format=json
|
||||
X-Github-Request-Id:
|
||||
- E712:31AC1B:623DA14:56C7D1F:69C53298
|
||||
X-Ratelimit-Limit:
|
||||
- "5000"
|
||||
X-Ratelimit-Remaining:
|
||||
- "4998"
|
||||
X-Ratelimit-Reset:
|
||||
- "1774534824"
|
||||
X-Ratelimit-Resource:
|
||||
- core
|
||||
X-Ratelimit-Used:
|
||||
- "2"
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 222.556791ms
|
||||
- id: 2
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.github.com
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github+json
|
||||
url: https://api.github.com/orgs/acme-corp/memberships/jdoe
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"url":"https://api.github.com/orgs/acme-corp/memberships/jdoe","state":"active","role":"admin","organization_url":"https://api.github.com/orgs/acme-corp","user":{"login":"jdoe","id":100001,"node_id":"XYZQ6VXNlcjEwMDAw","avatar_url":"","gravatar_id":"","url":"https://api.github.com/users/jdoe","html_url":"https://github.com/jdoe","followers_url":"https://api.github.com/users/jdoe/followers","following_url":"https://api.github.com/users/jdoe/following{/other_user}","gists_url":"https://api.github.com/users/jdoe/gists{/gist_id}","starred_url":"https://api.github.com/users/jdoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdoe/subscriptions","organizations_url":"https://api.github.com/users/jdoe/orgs","repos_url":"https://api.github.com/users/jdoe/repos","events_url":"https://api.github.com/users/jdoe/events{/privacy}","received_events_url":"https://api.github.com/users/jdoe/received_events","type":"User","user_view_type":"public","site_admin":false},"direct_membership":true,"enterprise_teams_providing_indirect_membership":[],"organization":{"login":"acme-corp","id":100002,"node_id":"O_kgDOFake0Rg","url":"https://api.github.com/orgs/acme-corp","repos_url":"https://api.github.com/orgs/acme-corp/repos","events_url":"https://api.github.com/orgs/acme-corp/events","hooks_url":"https://api.github.com/orgs/acme-corp/hooks","issues_url":"https://api.github.com/orgs/acme-corp/issues","members_url":"https://api.github.com/orgs/acme-corp/members{/member}","public_members_url":"https://api.github.com/orgs/acme-corp/public_members{/member}","avatar_url":"","description":""}}'
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
|
||||
Cache-Control:
|
||||
- private, max-age=60, s-maxage=60
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:20:25 GMT
|
||||
Etag:
|
||||
- W/"5f52c04e58dd224bb535f57f82fa45937ab13a419b2fafa841ee9392cc8dc444"
|
||||
Github-Authentication-Token-Expiration:
|
||||
- 2026-04-25 13:21:33 +0200
|
||||
Referrer-Policy:
|
||||
- origin-when-cross-origin, strict-origin-when-cross-origin
|
||||
Server:
|
||||
- github.com
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
Vary:
|
||||
- Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With
|
||||
X-Accepted-Github-Permissions:
|
||||
- members=read
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Github-Api-Version-Selected:
|
||||
- "2022-11-28"
|
||||
X-Github-Media-Type:
|
||||
- github.v3; format=json
|
||||
X-Github-Request-Id:
|
||||
- E712:31AC1B:623DC2B:56C7EF5:69C53298
|
||||
X-Ratelimit-Limit:
|
||||
- "5000"
|
||||
X-Ratelimit-Remaining:
|
||||
- "4997"
|
||||
X-Ratelimit-Reset:
|
||||
- "1774534824"
|
||||
X-Ratelimit-Resource:
|
||||
- core
|
||||
X-Ratelimit-Used:
|
||||
- "3"
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 207.5905ms
|
||||
- id: 3
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.github.com
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github+json
|
||||
url: https://api.github.com/users/jdoe
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"login":"jdoe","id":100001,"node_id":"XYZQ6VXNlcjEwMDAw","avatar_url":"","gravatar_id":"","url":"https://api.github.com/users/jdoe","html_url":"https://github.com/jdoe","followers_url":"https://api.github.com/users/jdoe/followers","following_url":"https://api.github.com/users/jdoe/following{/other_user}","gists_url":"https://api.github.com/users/jdoe/gists{/gist_id}","starred_url":"https://api.github.com/users/jdoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdoe/subscriptions","organizations_url":"https://api.github.com/users/jdoe/orgs","repos_url":"https://api.github.com/users/jdoe/repos","events_url":"https://api.github.com/users/jdoe/events{/privacy}","received_events_url":"https://api.github.com/users/jdoe/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Jane Doe","company":null,"blog":"","location":"","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":12,"public_gists":3,"followers":10,"following":5,"created_at":"2009-05-06T20:34:11Z","updated_at":"2026-02-24T10:26:18Z"}'
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
|
||||
Cache-Control:
|
||||
- private, max-age=60, s-maxage=60
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:20:25 GMT
|
||||
Etag:
|
||||
- W/"c747d94dd20c979144fc5f2bdd4e88145cf97bb5c5386d56c1c779e980671332"
|
||||
Github-Authentication-Token-Expiration:
|
||||
- 2026-04-25 13:21:33 +0200
|
||||
Last-Modified:
|
||||
- Tue, 24 Feb 2026 10:26:18 GMT
|
||||
Referrer-Policy:
|
||||
- origin-when-cross-origin, strict-origin-when-cross-origin
|
||||
Server:
|
||||
- github.com
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
Vary:
|
||||
- Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Github-Api-Version-Selected:
|
||||
- "2022-11-28"
|
||||
X-Github-Media-Type:
|
||||
- github.v3; format=json
|
||||
X-Github-Request-Id:
|
||||
- E712:31AC1B:623DE37:56C80BC:69C53299
|
||||
X-Ratelimit-Limit:
|
||||
- "5000"
|
||||
X-Ratelimit-Remaining:
|
||||
- "4996"
|
||||
X-Ratelimit-Reset:
|
||||
- "1774534824"
|
||||
X-Ratelimit-Resource:
|
||||
- core
|
||||
X-Ratelimit-Used:
|
||||
- "4"
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 190.346042ms
|
||||
59
pkg/accessreview/drivers/testdata/google_workspace.yaml
vendored
Normal file
59
pkg/accessreview/drivers/testdata/google_workspace.yaml
vendored
Normal file
File diff suppressed because one or more lines are too long
137
pkg/accessreview/drivers/testdata/hubspot.yaml
vendored
Normal file
137
pkg/accessreview/drivers/testdata/hubspot.yaml
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.hubapi.com
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.hubapi.com/settings/v3/users/roles
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: 153
|
||||
body: '{"status":"error","message":"Account doesn''t have access to roles.","correlationId":"019d2a35-7d8f-7ae2-bbf6-6342ceb0b095","category":"VALIDATION_ERROR"}'
|
||||
headers:
|
||||
Access-Control-Allow-Credentials:
|
||||
- "false"
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264d34984eef36-CDG
|
||||
Content-Length:
|
||||
- "153"
|
||||
Content-Type:
|
||||
- application/json;charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:01 GMT
|
||||
Nel:
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=AQJsKvuHIV2QL3QAbod63rryJIMLkiSMUEWj9GIPyGtL0x2nmDjJTT2jTK5wZhmW%2BbrKrp7%2BGNHq5GAesRD%2F%2Bm%2FQb02pCiKGoMf%2BaJDy9IrNH249nETyQPjc58vdXA%2FJ"}],"group":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Server-Timing:
|
||||
- hcid;desc="019d2a35-7d8f-7ae2-bbf6-6342ceb0b095", cfr;desc="9e264d357357ef36-CDG"
|
||||
Set-Cookie:
|
||||
- __cf_bm=4RLJK.6JUyiG8B7tN3fIH7ZsNHaHg7.NT4d45o29LdQ-1774529641-1.0.1.1-ci1VEnqgpmPAVxsm.Wfu6qz01Wk70GNl3tX5MYFIbnvwmVi1heY0S0T_19KVQa_TJUawOFrHHmuOhUkBMaoIFtLB9PpI0zIry.4Lfx6Pmps; path=/; expires=Thu, 26-Mar-26 13:24:01 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
Vary:
|
||||
- origin, Accept-Encoding
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Hubspot-Correlation-Id:
|
||||
- 019d2a35-7d8f-7ae2-bbf6-6342ceb0b095
|
||||
X-Hubspot-Ratelimit-Daily:
|
||||
- "250000"
|
||||
X-Hubspot-Ratelimit-Daily-Remaining:
|
||||
- "249999"
|
||||
X-Hubspot-Ratelimit-Interval-Milliseconds:
|
||||
- "10000"
|
||||
X-Hubspot-Ratelimit-Max:
|
||||
- "100"
|
||||
X-Hubspot-Ratelimit-Remaining:
|
||||
- "99"
|
||||
X-Hubspot-Ratelimit-Secondly:
|
||||
- "10"
|
||||
X-Hubspot-Ratelimit-Secondly-Remaining:
|
||||
- "9"
|
||||
status: 400 Bad Request
|
||||
code: 400
|
||||
duration: 260.217958ms
|
||||
- id: 1
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.hubapi.com
|
||||
form:
|
||||
limit:
|
||||
- "100"
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.hubapi.com/settings/v3/users?limit=100
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"results":[{"id":"10000001","email":"john@example.com","firstName":"John","lastName":"Smith","roleIds":[],"superAdmin":true},{"id":"10000002","email":"jane@example.com","firstName":"Jane","lastName":"Doe","roleIds":[],"superAdmin":true}]}'
|
||||
headers:
|
||||
Access-Control-Allow-Credentials:
|
||||
- "false"
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264d35eb14ef36-CDG
|
||||
Content-Type:
|
||||
- application/json;charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:02 GMT
|
||||
Nel:
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=80JrXPVKlK%2FOAlE%2FWZDhkwEsCPYQItel9E9qSgo%2BqSi8R5j7hnJLtXpH%2BBffnffkPQZoF5lX6qLfTBh65dNj8v1usNa%2Fz%2FMN33nOy4vjJBWW2LUwqQdb84tL5Ibm2Ji6"}],"group":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Server-Timing:
|
||||
- hcid;desc="019d2a35-7e38-7d81-a93c-7babb6730cf2", cfr;desc="9e264d36a3eeef36-CDG"
|
||||
Set-Cookie:
|
||||
- __cf_bm=S9t6TJ6fbQ40SO.aEIBymxjviee3C3rcHuiTajw_cr4-1774529642-1.0.1.1-tOR6PEVlUL.2ttF4.l9IsAS11oSsHi8IFgeXmDCgipjPPY.ztKXNvEE1p26R25qVs8jfiUZbRmbRcuOEn64SLXUX6uDGgsetl2X2.JoiLmg; path=/; expires=Thu, 26-Mar-26 13:24:02 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
Vary:
|
||||
- origin, Accept-Encoding
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Hubspot-Correlation-Id:
|
||||
- 019d2a35-7e38-7d81-a93c-7babb6730cf2
|
||||
X-Hubspot-Ratelimit-Daily:
|
||||
- "250000"
|
||||
X-Hubspot-Ratelimit-Daily-Remaining:
|
||||
- "249998"
|
||||
X-Hubspot-Ratelimit-Interval-Milliseconds:
|
||||
- "10000"
|
||||
X-Hubspot-Ratelimit-Max:
|
||||
- "100"
|
||||
X-Hubspot-Ratelimit-Remaining:
|
||||
- "98"
|
||||
X-Hubspot-Ratelimit-Secondly:
|
||||
- "10"
|
||||
X-Hubspot-Ratelimit-Secondly-Remaining:
|
||||
- "9"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 212.332792ms
|
||||
65
pkg/accessreview/drivers/testdata/intercom.yaml
vendored
Normal file
65
pkg/accessreview/drivers/testdata/intercom.yaml
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.intercom.io
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Intercom-Version:
|
||||
- "2.11"
|
||||
url: https://api.intercom.io/admins
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"type":"admin.list","admins":[{"type":"admin","email":"john@example.com","id":"1000001","name":"John Smith","away_mode_enabled":false,"away_mode_reassign":false,"has_inbox_seat":true,"team_ids":[],"team_priority_level":{}},{"type":"admin","email":"operator+abc12345@intercom.io","id":"1000002","name":"Fin","away_mode_enabled":false,"away_mode_reassign":false,"has_inbox_seat":false,"team_ids":[],"team_priority_level":{}},{"type":"admin","email":"jane@example.com","id":"1000003","name":"Jane Doe","away_mode_enabled":false,"away_mode_reassign":false,"has_inbox_seat":false,"team_ids":[],"team_priority_level":{}},{"type":"admin","email":"alice@example.com","id":"1000004","name":"Alice Martin","away_mode_enabled":false,"away_mode_reassign":false,"has_inbox_seat":true,"team_ids":[],"team_priority_level":{}},{"type":"admin","email":"bob@example.com","id":"1000005","name":"Bob Wilson","away_mode_enabled":false,"away_mode_reassign":false,"has_inbox_seat":true,"team_ids":[],"team_priority_level":{}}]}'
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:52 GMT
|
||||
Etag:
|
||||
- W/"30ffa246aba4cabfe8d217fabf428f69"
|
||||
Intercom-Version:
|
||||
- "2.11"
|
||||
Referrer-Policy:
|
||||
- strict-origin-when-cross-origin
|
||||
Server:
|
||||
- nginx
|
||||
Status:
|
||||
- 200 OK
|
||||
Strict-Transport-Security:
|
||||
- max-age=31556952; includeSubDomains; preload
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
- Accept
|
||||
X-Ami-Version:
|
||||
- ami-050d1869df3666e48
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
X-Intercom-Version:
|
||||
- 84c7300b1acdba8bde4ff55a5b497e18b5f93395
|
||||
X-Request-Id:
|
||||
- 003s581hrq58akdvapk0
|
||||
X-Request-Queueing:
|
||||
- "0"
|
||||
X-Runtime:
|
||||
- "0.150437"
|
||||
X-Xss-Protection:
|
||||
- 1; mode=block
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 430.684583ms
|
||||
66
pkg/accessreview/drivers/testdata/linear.yaml
vendored
Normal file
66
pkg/accessreview/drivers/testdata/linear.yaml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 323
|
||||
host: api.linear.app
|
||||
body: '{"query":"\nquery AccessReviewLinearUsers($after: String) {\n users(first: 100, after: $after) {\n nodes {\n id\n email\n name\n active\n admin\n guest\n lastSeen\n createdAt\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n","variables":{"after":null}}'
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Content-Type:
|
||||
- application/json
|
||||
url: https://api.linear.app/graphql
|
||||
method: POST
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: |
|
||||
{"data":{"users":{"nodes":[{"id":"00000001-0000-0000-0000-000000000001","email":"bot-integration@linear.linear.app","name":"Linear","active":true,"admin":false,"guest":false,"lastSeen":"2026-03-24T17:27:44.095Z","createdAt":"2026-03-24T17:27:43.979Z"},{"id":"00000001-0000-0000-0000-000000000002","email":"bot-cursor@oauthapp.linear.app","name":"Cursor","active":true,"admin":false,"guest":false,"lastSeen":"2026-03-17T14:02:50.975Z","createdAt":"2026-03-17T14:02:50.855Z"},{"id":"00000001-0000-0000-0000-000000000003","email":"jane@example.com","name":"Jane Doe","active":true,"admin":false,"guest":false,"lastSeen":"2026-03-09T12:49:53.331Z","createdAt":"2025-01-20T09:12:11.959Z"},{"id":"00000001-0000-0000-0000-000000000004","email":"john@example.com","name":"John Smith","active":true,"admin":true,"guest":false,"lastSeen":"2026-03-26T12:33:50.957Z","createdAt":"2024-07-01T13:19:57.427Z"}],"pageInfo":{"hasNextPage":false,"endCursor":"00000001-0000-0000-0000-000000000004"}}}}
|
||||
headers:
|
||||
Alt-Svc:
|
||||
- h3=":443"; ma=86400
|
||||
Cache-Control:
|
||||
- no-store
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264c7e18b111f4-CDG
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:53:32 GMT
|
||||
Etag:
|
||||
- W/"41d-Oqy6gPJu1qx5Quzm0QLcNk/BcEY"
|
||||
Server:
|
||||
- cloudflare
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
Via:
|
||||
- 1.1 google
|
||||
X-Complexity:
|
||||
- "300"
|
||||
X-Ratelimit-Complexity-Limit:
|
||||
- "3000000"
|
||||
X-Ratelimit-Complexity-Remaining:
|
||||
- "2999700"
|
||||
X-Ratelimit-Complexity-Reset:
|
||||
- "1774533212671"
|
||||
X-Ratelimit-Requests-Limit:
|
||||
- "5000"
|
||||
X-Ratelimit-Requests-Remaining:
|
||||
- "4999"
|
||||
X-Ratelimit-Requests-Reset:
|
||||
- "1774533212671"
|
||||
X-Request-Id:
|
||||
- 9e264c7f056511f4-CDG
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 240.856ms
|
||||
69
pkg/accessreview/drivers/testdata/notion.yaml
vendored
Normal file
69
pkg/accessreview/drivers/testdata/notion.yaml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.notion.com
|
||||
form:
|
||||
page_size:
|
||||
- "100"
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Notion-Version:
|
||||
- "2022-06-28"
|
||||
url: https://api.notion.com/v1/users?page_size=100
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"object":"list","results":[{"object":"user","id":"00000001-0000-0000-0000-000000000001","name":"Alice Martin","avatar_url":null,"type":"person","person":{"email":"alice@example.com"}},{"object":"user","id":"00000001-0000-0000-0000-000000000002","name":"Carol Davis","avatar_url":null,"type":"person","person":{"email":"carol@example.com"}},{"object":"user","id":"00000001-0000-0000-0000-000000000003","name":"John Smith","avatar_url":"","type":"person","person":{"email":"john@example.com"}},{"object":"user","id":"00000001-0000-0000-0000-000000000004","name":"Jane Doe","avatar_url":"","type":"person","person":{"email":"jane@example.com"}},{"object":"user","id":"00000001-0000-0000-0000-000000000005","name":"Acme-integration","avatar_url":"","type":"bot","bot":{}},{"object":"user","id":"00000001-0000-0000-0000-000000000006","name":"n8n","avatar_url":null,"type":"bot","bot":{"owner":{"type":"workspace","workspace":true},"workspace_name":"Acme Corp","workspace_id":"00000001-0000-0000-0000-000000000007","workspace_limits":{"max_file_upload_size_in_bytes":5368709120}}},{"object":"user","id":"00000001-0000-0000-0000-000000000008","name":"Notion MCP","avatar_url":"","type":"bot","bot":{}}],"next_cursor":null,"has_more":false,"type":"user","user":{},"request_id":"d5d5c5a0-f878-4ef7-bd30-adb4487ffc7c"}'
|
||||
headers:
|
||||
Alt-Svc:
|
||||
- h3=":443"; ma=86400
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e266c0798647a6e-CDG
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:15:04 GMT
|
||||
Etag:
|
||||
- W/"6f0-og1hHr9nu7Wa4h56JWNgxaLRfmE"
|
||||
Referrer-Policy:
|
||||
- strict-origin-when-cross-origin
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=PVMwsYfB62uKcpEsG3V1HzbE.xOqBPReNn8aOFie8AA-1774530904.25279-1.0.1.1-ldfHtUZ4_QqMrAC2dGUWQqZHhJw0IAYehliPDKVCxokJqrAyLXX5WrKl3MSte2nb2RU3gmcBIWbzehtXpQtGl6O3sZDuu8kxj8HULQxfyoaF9ObyS_ak5KdaxQw60WQf; HttpOnly; Secure; Path=/; Domain=notion.com; Expires=Thu, 26 Mar 2026 13:45:04 GMT
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Dns-Prefetch-Control:
|
||||
- "off"
|
||||
X-Download-Options:
|
||||
- noopen
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
X-Notion-Request-Id:
|
||||
- d5d5c5a0-f878-4ef7-bd30-adb4487ffc7c
|
||||
X-Permitted-Cross-Domain-Policies:
|
||||
- none
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 401.460042ms
|
||||
83
pkg/accessreview/drivers/testdata/openai.yaml
vendored
Normal file
83
pkg/accessreview/drivers/testdata/openai.yaml
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.openai.com
|
||||
form:
|
||||
limit:
|
||||
- "100"
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.openai.com/v1/organization/users?limit=100
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: |-
|
||||
{
|
||||
"object": "list",
|
||||
"data": [
|
||||
{
|
||||
"id": "user-aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"object": "organization.user",
|
||||
"added_at": 1670256043,
|
||||
"email": "john@example.com",
|
||||
"name": "John Smith",
|
||||
"role": "owner"
|
||||
},
|
||||
{
|
||||
"id": "user-bbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"object": "organization.user",
|
||||
"added_at": 1734424828,
|
||||
"email": "jane@example.com",
|
||||
"name": "Jane Doe",
|
||||
"role": "reader"
|
||||
}
|
||||
],
|
||||
"first_id": "user-aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"has_more": false,
|
||||
"last_id": "user-bbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
}
|
||||
headers:
|
||||
Alt-Svc:
|
||||
- h3=":443"; ma=86400
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264eaaae05343a-CDG
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:55:02 GMT
|
||||
Openai-Organization:
|
||||
- acme-corp
|
||||
Openai-Processing-Ms:
|
||||
- "349"
|
||||
Openai-Project:
|
||||
- proj_aaaabbbbccccddddeeeeeeee
|
||||
Openai-Version:
|
||||
- "2020-10-01"
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=OJPi1FQ3aQDosdow4APC.IrgvoFoniXhs7yLPvcgzEw-1774529701.5408235-1.0.1.1-1yRB5GUWfOrogA6r7_dfUryKqwAVzgcuryL2S2fsII1iUganS7LKKhscf9JADsEDaIn6UHXk9hxfH8P3Ue0ixIaVDSlZWf30CEPCJDI6nuiN.1YHejTkmH3llHLkfuLp; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 26 Mar 2026 13:25:02 GMT
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Openai-Proxy-Wasm:
|
||||
- v0.1
|
||||
X-Request-Id:
|
||||
- 097c2db1-ecaa-44fe-a7bc-3b2b528acae4
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 529.968583ms
|
||||
58
pkg/accessreview/drivers/testdata/resend.yaml
vendored
Normal file
58
pkg/accessreview/drivers/testdata/resend.yaml
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.resend.com
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.resend.com/api-keys
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '{"object":"list","has_more":false,"data":[{"id":"00000001-0000-0000-0000-000000000001","name":"test_key","created_at":"2026-03-26 12:18:58.314592+00","last_used_at":null},{"id":"00000001-0000-0000-0000-000000000002","name":"production","created_at":"2025-11-03 12:33:51.313755+00","last_used_at":"2026-03-05 18:57:57.73093+00"}]}'
|
||||
headers:
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e264e7a8c8a024f-CDG
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'; frame-ancestors 'none'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:54:53 GMT
|
||||
Etag:
|
||||
- W/"146-DfTVyEh9Ui32i8/Mql/EiL8sQdI"
|
||||
Permissions-Policy:
|
||||
- camera=(), microphone=(), geolocation=(), payment=()
|
||||
Ratelimit-Limit:
|
||||
- "5"
|
||||
Ratelimit-Policy:
|
||||
- 5;w=1
|
||||
Ratelimit-Remaining:
|
||||
- "4"
|
||||
Ratelimit-Reset:
|
||||
- "1"
|
||||
Referrer-Policy:
|
||||
- strict-origin-when-cross-origin
|
||||
Server:
|
||||
- cloudflare
|
||||
Strict-Transport-Security:
|
||||
- max-age=63072000; includeSubDomains
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- DENY
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 192.141167ms
|
||||
81
pkg/accessreview/drivers/testdata/sentry.yaml
vendored
Normal file
81
pkg/accessreview/drivers/testdata/sentry.yaml
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: sentry.io
|
||||
url: https://sentry.io/api/0/organizations/acme-corp/members/
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '[{"id":"100001","email":"john@example.com","name":"john@example.com","user":{"id":"1000001","name":"john@example.com","username":"john@example.com","email":"john@example.com","avatarUrl":"","isActive":true,"hasPasswordAuth":false,"isManaged":false,"dateJoined":"2024-10-18T09:11:59.290806Z","lastLogin":"2026-03-16T11:30:17.761122Z","has2fa":false,"lastActive":"2026-03-26T12:13:40.025328Z","isSuperuser":false,"isStaff":false,"emails":[],"experiments":{},"avatar":{"avatarType":"letter_avatar","avatarUuid":null,"avatarUrl":null}},"orgRole":"owner","pending":false,"expired":false,"flags":{"idp:provisioned":false,"idp:role-restricted":false,"sso:linked":false,"sso:invalid":false,"member-limit:restricted":false,"partnership:restricted":false},"dateCreated":"2024-10-18T09:12:00.476934Z","inviteStatus":"approved","inviterName":null,"role":"owner","roleName":"Owner"},{"id":"100002","email":"jane@example.com","name":"Jane Doe","user":{"id":"1000002","name":"Jane Doe","username":"jane@example.com","email":"jane@example.com","avatarUrl":"","isActive":true,"hasPasswordAuth":true,"isManaged":false,"dateJoined":"2025-04-01T16:34:31.237067Z","lastLogin":"2025-11-27T16:37:09.123872Z","has2fa":false,"lastActive":"2025-11-28T14:28:23.938416Z","isSuperuser":false,"isStaff":false,"emails":[],"experiments":{},"avatar":{"avatarType":"letter_avatar","avatarUuid":null,"avatarUrl":null}},"orgRole":"member","pending":false,"expired":false,"flags":{"idp:provisioned":false,"idp:role-restricted":false,"sso:linked":false,"sso:invalid":false,"member-limit:restricted":false,"partnership:restricted":false},"dateCreated":"2025-11-07T14:54:57.672332Z","inviteStatus":"approved","inviterName":"john@example.com","role":"member","roleName":"Member"}]'
|
||||
headers:
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken
|
||||
Access-Control-Allow-Methods:
|
||||
- GET, POST, HEAD, OPTIONS
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- X-Sentry-Error, X-Sentry-Direct-Hit, X-Hits, X-Max-Hits, Endpoint, Retry-After, Link
|
||||
Allow:
|
||||
- GET, POST, HEAD, OPTIONS
|
||||
Alt-Svc:
|
||||
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
||||
Content-Language:
|
||||
- en
|
||||
Content-Security-Policy:
|
||||
- 'base-uri ''none''; style-src * ''unsafe-inline''; frame-ancestors ''self'' *.sentry.io; font-src * data:; connect-src ''self'' *.algolia.net *.algolianet.com *.algolia.io sentry.io *.sentry.io s1.sentry-cdn.com o1.ingest.sentry.io api2.amplitude.com app.pendo.io data.pendo.io reload.getsentry.net t687h3m0nh65.statuspage.io sentry.zendesk.com ekr.zdassets.com maps.googleapis.com; object-src ''none''; frame-src app.pendo.io demo.arcade.software js.stripe.com sentry.io ''self''; script-src ''self'' ''unsafe-inline'' ''report-sample'' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com ''strict-dynamic'' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; media-src *; default-src ''none''; img-src * blob: data:; worker-src blob:; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=8bd10e6776717c63689632c2a4b7de878fbfe6c2'
|
||||
Content-Type:
|
||||
- application/json
|
||||
Cross-Origin-Opener-Policy-Report-Only:
|
||||
- same-origin; report-to="coop-endpoint"
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 12:53:44 GMT
|
||||
Link:
|
||||
- <https://sentry.io/api/0/organizations/acme-corp/members/?&cursor=100:-1:1>; rel="previous"; results="false"; cursor="100:-1:1", <https://sentry.io/api/0/organizations/acme-corp/members/?&cursor=100:1:0>; rel="next"; results="false"; cursor="100:1:0"
|
||||
Report-To:
|
||||
- '{"group":"coop-endpoint","max_age":86400,"endpoints":[{"url":"https://sentry-coop-302178938983.us-central1.run.app/coop"}]}'
|
||||
Server:
|
||||
- nginx
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
Vary:
|
||||
- Accept-Encoding,Accept-Language, Cookie
|
||||
Via:
|
||||
- 1.1 google
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Envoy-Attempt-Count:
|
||||
- "1"
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- "861"
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Sentry-Proxy-Url:
|
||||
- http://sentry-rpc-de.psc.control.sentry.internal:8999/api/0/organizations/acme-corp/members/
|
||||
X-Sentry-Rate-Limit-Concurrentlimit:
|
||||
- "25"
|
||||
X-Sentry-Rate-Limit-Concurrentremaining:
|
||||
- "24"
|
||||
X-Sentry-Rate-Limit-Limit:
|
||||
- "40"
|
||||
X-Sentry-Rate-Limit-Remaining:
|
||||
- "39"
|
||||
X-Sentry-Rate-Limit-Reset:
|
||||
- "1774529624"
|
||||
X-Served-By:
|
||||
- frontend-default-694c567cbb-w99ht
|
||||
X-Xss-Protection:
|
||||
- 1; mode=block
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 1.024781959s
|
||||
84
pkg/accessreview/drivers/testdata/slack.yaml
vendored
Normal file
84
pkg/accessreview/drivers/testdata/slack.yaml
vendored
Normal file
File diff suppressed because one or more lines are too long
56
pkg/accessreview/drivers/testdata/supabase.yaml
vendored
Normal file
56
pkg/accessreview/drivers/testdata/supabase.yaml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.supabase.com
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.supabase.com/v1/organizations/acme-corp/members
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '[{"user_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","user_name":"jdoe","email":"jdoe@example.com","role_name":"Owner","mfa_enabled":false}]'
|
||||
headers:
|
||||
Access-Control-Allow-Credentials:
|
||||
- "true"
|
||||
Access-Control-Expose-Headers:
|
||||
- x-connection-encrypted,x-forwarded-for,user-agent,CF-Connecting-IP,Retry-After
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 000000000000000000-XXX
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:18:24 GMT
|
||||
Etag:
|
||||
- W/"94-2d3haQkIE5319yeX5GL6PU8Mh2o"
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=REDACTED; HttpOnly; Secure; Path=/; Domain=supabase.com; Expires=Thu, 26 Mar 2026 13:48:24 GMT
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
Vary:
|
||||
- Origin
|
||||
X-Powered-By:
|
||||
- Express
|
||||
X-Ratelimit-Limit:
|
||||
- "120"
|
||||
X-Ratelimit-Remaining:
|
||||
- "119"
|
||||
X-Ratelimit-Reset:
|
||||
- "60"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 156.602041ms
|
||||
154
pkg/accessreview/drivers/testdata/tally.yaml
vendored
Normal file
154
pkg/accessreview/drivers/testdata/tally.yaml
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
---
|
||||
version: 2
|
||||
interactions:
|
||||
- id: 0
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.tally.so
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.tally.so/organizations/wvBzxD/users
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: -1
|
||||
uncompressed: true
|
||||
body: '[{"id":"xA1bCD","firstName":"Alice","lastName":"Johnson","email":"alice@example.com","avatarUrl":"","isBlocked":false,"isDeleted":false,"timezone":"Europe/Paris","isUnknownDeviceVerificationDisabled":false,"createdAt":"2025-10-24T14:51:36.000Z","updatedAt":"2026-03-26T13:54:30.000Z","organizationId":"org001","fullName":"Alice Johnson","ssoIsConnectedWithGoogle":true,"ssoIsConnectedWithApple":false,"hasPasswordSet":true,"authenticationMethodsCount":2,"hasTwoFactorEnabled":true,"emailDomain":null},{"id":"yB2cDE","firstName":"Bob","lastName":"Smith","email":"bob@example.com","avatarUrl":"","isBlocked":false,"isDeleted":false,"timezone":"Europe/Paris","isUnknownDeviceVerificationDisabled":false,"createdAt":"2025-10-25T16:48:52.000Z","updatedAt":"2026-03-23T11:42:00.000Z","organizationId":"org001","fullName":"Bob Smith","ssoIsConnectedWithGoogle":true,"ssoIsConnectedWithApple":false,"hasPasswordSet":false,"authenticationMethodsCount":1,"hasTwoFactorEnabled":false,"emailDomain":null},{"id":"zC3dEF","firstName":"Carol","lastName":"Williams","email":"carol@example.com","avatarUrl":"","isBlocked":false,"isDeleted":false,"timezone":"Europe/Paris","isUnknownDeviceVerificationDisabled":false,"createdAt":"2025-12-01T13:38:59.000Z","updatedAt":"2026-03-06T09:47:20.000Z","organizationId":"org001","fullName":"Carol Williams","ssoIsConnectedWithGoogle":true,"ssoIsConnectedWithApple":false,"hasPasswordSet":false,"authenticationMethodsCount":1,"hasTwoFactorEnabled":false,"emailDomain":null}]'
|
||||
headers:
|
||||
Access-Control-Allow-Credentials:
|
||||
- "true"
|
||||
Access-Control-Expose-Headers:
|
||||
- Mcp-Session-Id
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e26a8307c916f02-CDG
|
||||
Content-Security-Policy:
|
||||
- 'default-src ''self'';base-uri ''self'';font-src ''self'' https: data:;form-action ''self'';frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Cross-Origin-Opener-Policy:
|
||||
- same-origin
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:56:08 GMT
|
||||
Etag:
|
||||
- W/"f19-hbZ8t5Tve+qpDeG+/EcW1dXDiZM"
|
||||
Nel:
|
||||
- '{"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}'
|
||||
Origin-Agent-Cluster:
|
||||
- ?1
|
||||
Referrer-Policy:
|
||||
- no-referrer
|
||||
Report-To:
|
||||
- '{"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CocRUYJt6j9oAYgflV089%2BvXAR3wD10c6qleEoXbEMs%2FxN1a1DYwTeJ08xXieR%2F0nRHSBKZVVCUQLGiMHYrKJbCjfkSUlWLf%2BTR%2BW9a4V%2FhvMBzLQXaQsRb1ii1SIg%3D%3D"}]}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains
|
||||
Vary:
|
||||
- Origin
|
||||
X-Cloud-Trace-Context:
|
||||
- 7337a79cb9f6d2c654df69076505ff5a
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Dns-Prefetch-Control:
|
||||
- "off"
|
||||
X-Download-Options:
|
||||
- noopen
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
X-Permitted-Cross-Domain-Policies:
|
||||
- none
|
||||
X-Ratelimit-Limit:
|
||||
- "100"
|
||||
X-Ratelimit-Remaining:
|
||||
- "95"
|
||||
X-Ratelimit-Reset:
|
||||
- "1774533375"
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 77.593208ms
|
||||
- id: 1
|
||||
request:
|
||||
proto: HTTP/1.1
|
||||
proto_major: 1
|
||||
proto_minor: 1
|
||||
content_length: 0
|
||||
host: api.tally.so
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
url: https://api.tally.so/organizations/wvBzxD/invites
|
||||
method: GET
|
||||
response:
|
||||
proto: HTTP/2.0
|
||||
proto_major: 2
|
||||
proto_minor: 0
|
||||
content_length: 2
|
||||
body: '[]'
|
||||
headers:
|
||||
Access-Control-Allow-Credentials:
|
||||
- "true"
|
||||
Access-Control-Expose-Headers:
|
||||
- Mcp-Session-Id
|
||||
Cf-Cache-Status:
|
||||
- DYNAMIC
|
||||
Cf-Ray:
|
||||
- 9e26a830cccb6f02-CDG
|
||||
Content-Length:
|
||||
- "2"
|
||||
Content-Security-Policy:
|
||||
- 'default-src ''self'';base-uri ''self'';font-src ''self'' https: data:;form-action ''self'';frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Cross-Origin-Opener-Policy:
|
||||
- same-origin
|
||||
Date:
|
||||
- Thu, 26 Mar 2026 13:56:08 GMT
|
||||
Etag:
|
||||
- W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"
|
||||
Nel:
|
||||
- '{"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}'
|
||||
Origin-Agent-Cluster:
|
||||
- ?1
|
||||
Referrer-Policy:
|
||||
- no-referrer
|
||||
Report-To:
|
||||
- '{"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=vfTMmGB%2FitCP4gkTcfhy9vOYzJZbTYp4a0km1df34sZL3TfZ17vXbuv4kl5nEwXSPgHv1si5IF8qaUW1z70vzxLUnCqaF0A7%2Fi6DgBVz1Xv%2BwAGOIUHAA6uyq2%2B76A%3D%3D"}]}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains
|
||||
Vary:
|
||||
- Origin
|
||||
X-Cloud-Trace-Context:
|
||||
- 38b42db0f009bb00781397cecba8b838
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Dns-Prefetch-Control:
|
||||
- "off"
|
||||
X-Download-Options:
|
||||
- noopen
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
X-Permitted-Cross-Domain-Policies:
|
||||
- none
|
||||
X-Ratelimit-Limit:
|
||||
- "100"
|
||||
X-Ratelimit-Remaining:
|
||||
- "94"
|
||||
X-Ratelimit-Reset:
|
||||
- "1774533375"
|
||||
X-Xss-Protection:
|
||||
- "0"
|
||||
status: 200 OK
|
||||
code: 200
|
||||
duration: 48.255292ms
|
||||
Reference in New Issue
Block a user