1 | |
2 |
|
3 | |
4 | * List Policies |
5 | * List the policies of a given type in your org. `type` is required (e.g. OKTA_SIGN_ON, PASSWORD, MFA_ENROLL, ACCESS_POLICY). Optionally narrow by `status` (ACTIVE / INACTIVE) and page with `limit` and the `after` cursor from the previous response's Link header. |
6 | */ |
7 | export async function main( |
8 | auth: RT.Okta, |
9 | type: |
10 | | "OKTA_SIGN_ON" |
11 | | "PASSWORD" |
12 | | "MFA_ENROLL" |
13 | | "IDP_DISCOVERY" |
14 | | "ACCESS_POLICY" |
15 | | "PROFILE_ENROLLMENT" |
16 | | "POST_AUTH_SESSION" |
17 | | "ENTITY_RISK" |
18 | | "DEVICE_SIGNAL_COLLECTION" |
19 | | "SESSION_VIOLATION_DETECTION" |
20 | | "CLIENT_UPDATE" |
21 | | "IDENTITY_CLAIM_SOURCING", |
22 | status: "ACTIVE" | "INACTIVE" | undefined, |
23 | limit: number | undefined, |
24 | after: string | undefined |
25 | ) { |
26 | const url = new URL(`${auth.org_url}/api/v1/policies`) |
27 | url.searchParams.append("type", type) |
28 | if (status !== undefined) url.searchParams.append("status", status) |
29 | if (limit !== undefined) url.searchParams.append("limit", String(limit)) |
30 | if (after !== undefined && after !== "") |
31 | url.searchParams.append("after", after) |
32 |
|
33 | const response = await fetch(url, { |
34 | method: "GET", |
35 | headers: { |
36 | Authorization: `SSWS ${auth.token}`, |
37 | Accept: "application/json", |
38 | }, |
39 | }) |
40 |
|
41 | if (!response.ok) { |
42 | throw new Error(`${response.status} ${await response.text()}`) |
43 | } |
44 |
|
45 | return await response.json() |
46 | } |
47 |
|