0

List Policies

by
Published 4 days ago

List policies of a given type (e.g. OKTA_SIGN_ON, PASSWORD, MFA_ENROLL, ACCESS_POLICY) in your org.

Script okta Verified

The script

Submitted by hugo989 Typescript (fetch-only)
Verified 5 days ago
1
//native
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