type Cloudflare = {
token: string;
email: string;
key: string;
};
/**
* Update an Access application
* Updates an Access application.
*/
export async function main(
auth: Cloudflare,
app_id: string,
identifier: string,
body:
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & {
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
cors_headers?: {
allow_all_headers?: boolean;
allow_all_methods?: boolean;
allow_all_origins?: boolean;
allow_credentials?: boolean;
allowed_headers?: unknown[];
allowed_methods?: (
| "GET"
| "POST"
| "HEAD"
| "PUT"
| "DELETE"
| "CONNECT"
| "OPTIONS"
| "TRACE"
| "PATCH"
)[];
allowed_origins?: unknown[];
max_age?: number;
[k: string]: unknown;
};
custom_deny_message?: string;
custom_deny_url?: string;
domain: string;
enable_binding_cookie?: boolean;
http_only_cookie_attribute?: boolean;
logo_url?: string;
name?: string;
same_site_cookie_attribute?: string;
service_auth_401_redirect?: boolean;
session_duration?: string;
skip_interstitial?: boolean;
type: string;
[k: string]: unknown;
})
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & {
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
logo_url?: string;
name?: string;
saas_app?: {
consumer_service_url?: string;
created_at?: string;
custom_attributes?: {
name?: string;
name_format?:
| "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
| "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
| "urn:oasis:names:tc:SAML:2.0:attrname-format:uri";
source?: { name?: string; [k: string]: unknown };
[k: string]: unknown;
};
idp_entity_id?: string;
name_id_format?: "id" | "email";
public_key?: string;
sp_entity_id?: string;
sso_endpoint?: string;
updated_at?: string;
[k: string]: unknown;
};
type?: string;
[k: string]: unknown;
})
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
cors_headers?: {
allow_all_headers?: boolean;
allow_all_methods?: boolean;
allow_all_origins?: boolean;
allow_credentials?: boolean;
allowed_headers?: unknown[];
allowed_methods?: (
| "GET"
| "POST"
| "HEAD"
| "PUT"
| "DELETE"
| "CONNECT"
| "OPTIONS"
| "TRACE"
| "PATCH"
)[];
allowed_origins?: unknown[];
max_age?: number;
[k: string]: unknown;
};
custom_deny_message?: string;
custom_deny_url?: string;
domain: string;
enable_binding_cookie?: boolean;
http_only_cookie_attribute?: boolean;
logo_url?: string;
name?: string;
same_site_cookie_attribute?: string;
service_auth_401_redirect?: boolean;
session_duration?: string;
skip_interstitial?: boolean;
type: string;
[k: string]: unknown;
} & { type?: string; [k: string]: unknown }))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
cors_headers?: {
allow_all_headers?: boolean;
allow_all_methods?: boolean;
allow_all_origins?: boolean;
allow_credentials?: boolean;
allowed_headers?: unknown[];
allowed_methods?: (
| "GET"
| "POST"
| "HEAD"
| "PUT"
| "DELETE"
| "CONNECT"
| "OPTIONS"
| "TRACE"
| "PATCH"
)[];
allowed_origins?: unknown[];
max_age?: number;
[k: string]: unknown;
};
custom_deny_message?: string;
custom_deny_url?: string;
domain: string;
enable_binding_cookie?: boolean;
http_only_cookie_attribute?: boolean;
logo_url?: string;
name?: string;
same_site_cookie_attribute?: string;
service_auth_401_redirect?: boolean;
session_duration?: string;
skip_interstitial?: boolean;
type: string;
[k: string]: unknown;
} & { type?: string; [k: string]: unknown }))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
auto_redirect_to_identity?: boolean;
domain?: string;
name?: string;
session_duration?: string;
type:
| "self_hosted"
| "saas"
| "ssh"
| "vnc"
| "app_launcher"
| "warp"
| "biso"
| "bookmark"
| "dash_sso";
[k: string]: unknown;
} & {
domain?: { [k: string]: unknown };
name?: string;
type?: string;
[k: string]: unknown;
}))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
auto_redirect_to_identity?: boolean;
domain?: string;
name?: string;
session_duration?: string;
type:
| "self_hosted"
| "saas"
| "ssh"
| "vnc"
| "app_launcher"
| "warp"
| "biso"
| "bookmark"
| "dash_sso";
[k: string]: unknown;
} & {
domain?: { [k: string]: unknown };
name?: string;
type?: string;
[k: string]: unknown;
}))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
auto_redirect_to_identity?: boolean;
domain?: string;
name?: string;
session_duration?: string;
type:
| "self_hosted"
| "saas"
| "ssh"
| "vnc"
| "app_launcher"
| "warp"
| "biso"
| "bookmark"
| "dash_sso";
[k: string]: unknown;
} & {
domain?: { [k: string]: unknown };
name?: string;
type?: string;
[k: string]: unknown;
}))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & {
app_launcher_visible?: boolean;
domain: { [k: string]: unknown };
logo_url?: string;
name?: string;
type: string;
[k: string]: unknown;
})
) {
const url = new URL(
`https://api.cloudflare.com/client/v4/zones/${identifier}/access/apps/${app_id}`
);
const response = await fetch(url, {
method: "PUT",
headers: {
"X-AUTH-EMAIL": auth.email,
"X-AUTH-KEY": auth.key,
"Content-Type": "application/json",
Authorization: "Bearer " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 383 days ago
type Cloudflare = {
token: string;
email: string;
key: string;
};
/**
* Update an Access application
* Updates an Access application.
*/
export async function main(
auth: Cloudflare,
app_id: string,
identifier: string,
body:
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & {
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
cors_headers?: {
allow_all_headers?: boolean;
allow_all_methods?: boolean;
allow_all_origins?: boolean;
allow_credentials?: boolean;
allowed_headers?: unknown[];
allowed_methods?: (
| "GET"
| "POST"
| "HEAD"
| "PUT"
| "DELETE"
| "CONNECT"
| "OPTIONS"
| "TRACE"
| "PATCH"
)[];
allowed_origins?: unknown[];
max_age?: number;
[k: string]: unknown;
};
custom_deny_message?: string;
custom_deny_url?: string;
domain: string;
enable_binding_cookie?: boolean;
http_only_cookie_attribute?: boolean;
logo_url?: string;
name?: string;
same_site_cookie_attribute?: string;
service_auth_401_redirect?: boolean;
session_duration?: string;
skip_interstitial?: boolean;
type: string;
[k: string]: unknown;
})
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & {
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
logo_url?: string;
name?: string;
saas_app?: {
consumer_service_url?: string;
created_at?: string;
custom_attributes?: {
name?: string;
name_format?:
| "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
| "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
| "urn:oasis:names:tc:SAML:2.0:attrname-format:uri";
source?: { name?: string; [k: string]: unknown };
[k: string]: unknown;
};
idp_entity_id?: string;
name_id_format?: "id" | "email";
public_key?: string;
sp_entity_id?: string;
sso_endpoint?: string;
updated_at?: string;
[k: string]: unknown;
};
type?: string;
[k: string]: unknown;
})
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
cors_headers?: {
allow_all_headers?: boolean;
allow_all_methods?: boolean;
allow_all_origins?: boolean;
allow_credentials?: boolean;
allowed_headers?: unknown[];
allowed_methods?: (
| "GET"
| "POST"
| "HEAD"
| "PUT"
| "DELETE"
| "CONNECT"
| "OPTIONS"
| "TRACE"
| "PATCH"
)[];
allowed_origins?: unknown[];
max_age?: number;
[k: string]: unknown;
};
custom_deny_message?: string;
custom_deny_url?: string;
domain: string;
enable_binding_cookie?: boolean;
http_only_cookie_attribute?: boolean;
logo_url?: string;
name?: string;
same_site_cookie_attribute?: string;
service_auth_401_redirect?: boolean;
session_duration?: string;
skip_interstitial?: boolean;
type: string;
[k: string]: unknown;
} & { type?: string; [k: string]: unknown }))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
app_launcher_visible?: boolean;
auto_redirect_to_identity?: boolean;
cors_headers?: {
allow_all_headers?: boolean;
allow_all_methods?: boolean;
allow_all_origins?: boolean;
allow_credentials?: boolean;
allowed_headers?: unknown[];
allowed_methods?: (
| "GET"
| "POST"
| "HEAD"
| "PUT"
| "DELETE"
| "CONNECT"
| "OPTIONS"
| "TRACE"
| "PATCH"
)[];
allowed_origins?: unknown[];
max_age?: number;
[k: string]: unknown;
};
custom_deny_message?: string;
custom_deny_url?: string;
domain: string;
enable_binding_cookie?: boolean;
http_only_cookie_attribute?: boolean;
logo_url?: string;
name?: string;
same_site_cookie_attribute?: string;
service_auth_401_redirect?: boolean;
session_duration?: string;
skip_interstitial?: boolean;
type: string;
[k: string]: unknown;
} & { type?: string; [k: string]: unknown }))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
auto_redirect_to_identity?: boolean;
domain?: string;
name?: string;
session_duration?: string;
type:
| "self_hosted"
| "saas"
| "ssh"
| "vnc"
| "app_launcher"
| "warp"
| "biso"
| "bookmark"
| "dash_sso";
[k: string]: unknown;
} & {
domain?: { [k: string]: unknown };
name?: string;
type?: string;
[k: string]: unknown;
}))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
auto_redirect_to_identity?: boolean;
domain?: string;
name?: string;
session_duration?: string;
type:
| "self_hosted"
| "saas"
| "ssh"
| "vnc"
| "app_launcher"
| "warp"
| "biso"
| "bookmark"
| "dash_sso";
[k: string]: unknown;
} & {
domain?: { [k: string]: unknown };
name?: string;
type?: string;
[k: string]: unknown;
}))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & ({
allowed_idps?: string[];
auto_redirect_to_identity?: boolean;
domain?: string;
name?: string;
session_duration?: string;
type:
| "self_hosted"
| "saas"
| "ssh"
| "vnc"
| "app_launcher"
| "warp"
| "biso"
| "bookmark"
| "dash_sso";
[k: string]: unknown;
} & {
domain?: { [k: string]: unknown };
name?: string;
type?: string;
[k: string]: unknown;
}))
| ({
aud?: string;
created_at?: string;
id?: string;
updated_at?: string;
[k: string]: unknown;
} & {
app_launcher_visible?: boolean;
domain: { [k: string]: unknown };
logo_url?: string;
name?: string;
type: string;
[k: string]: unknown;
})
) {
const url = new URL(
`https://api.cloudflare.com/client/v4/zones/${identifier}/access/apps/${app_id}`
);
const response = await fetch(url, {
method: "PUT",
headers: {
"X-AUTH-EMAIL": auth.email,
"X-AUTH-KEY": auth.key,
"Content-Type": "application/json",
Authorization: "Bearer " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 920 days ago