type Cloudflare = {
token: string;
email: string;
key: string;
};
/**
* Update a Zero Trust Gateway rule
* Updates a configured Zero Trust Gateway rule.
*/
export async function main(
auth: Cloudflare,
uuid: string,
identifier: string,
body: {
action:
| "on"
| "off"
| "allow"
| "block"
| "scan"
| "noscan"
| "safesearch"
| "ytrestricted"
| "isolate"
| "noisolate"
| "override"
| "l4_override"
| "egress"
| "audit_ssh";
description?: string;
device_posture?: string;
enabled?: boolean;
filters?: ("http" | "dns" | "l4" | "egress")[];
identity?: string;
name: string;
precedence?: number;
rule_settings?: {
add_headers?: { [k: string]: unknown };
allow_child_bypass?: boolean;
audit_ssh?: { command_logging?: boolean; [k: string]: unknown };
biso_admin_controls?: {
dcp?: boolean;
dd?: boolean;
dk?: boolean;
dp?: boolean;
du?: boolean;
[k: string]: unknown;
};
block_page_enabled?: boolean;
block_reason?: string;
bypass_parent_rule?: boolean;
check_session?: {
duration?: string;
enforce?: boolean;
[k: string]: unknown;
};
dns_resolvers?: {
ipv4?: {
ip: string;
port?: number;
route_through_private_network?: boolean;
vnet_id?: string;
[k: string]: unknown;
}[];
ipv6?: {
ip: string;
port?: number;
route_through_private_network?: boolean;
vnet_id?: string;
[k: string]: unknown;
}[];
[k: string]: unknown;
};
egress?: {
ipv4?: string;
ipv4_fallback?: string;
ipv6?: string;
[k: string]: unknown;
};
insecure_disable_dnssec_validation?: boolean;
ip_categories?: boolean;
ip_indicator_feeds?: boolean;
l4override?: { ip?: string; port?: number; [k: string]: unknown };
override_host?: string;
override_ips?: string[];
payload_log?: { enabled?: boolean; [k: string]: unknown };
resolve_dns_through_cloudflare?: boolean;
untrusted_cert?: {
action?: "pass_through" | "block" | "error";
[k: string]: unknown;
};
[k: string]: unknown;
};
schedule?: {
fri?: string;
mon?: string;
sat?: string;
sun?: string;
thu?: string;
time_zone?: string;
tue?: string;
wed?: string;
[k: string]: unknown;
};
traffic?: string;
[k: string]: unknown;
}
) {
const url = new URL(
`https://api.cloudflare.com/client/v4/accounts/${identifier}/gateway/rules/${uuid}`
);
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 a Zero Trust Gateway rule
* Updates a configured Zero Trust Gateway rule.
*/
export async function main(
auth: Cloudflare,
uuid: string,
identifier: string,
body: {
action:
| "on"
| "off"
| "allow"
| "block"
| "scan"
| "noscan"
| "safesearch"
| "ytrestricted"
| "isolate"
| "noisolate"
| "override"
| "l4_override"
| "egress"
| "audit_ssh";
description?: string;
device_posture?: string;
enabled?: boolean;
filters?: ("http" | "dns" | "l4" | "egress")[];
identity?: string;
name: string;
precedence?: number;
rule_settings?: {
add_headers?: { [k: string]: unknown };
allow_child_bypass?: boolean;
audit_ssh?: { command_logging?: boolean; [k: string]: unknown };
biso_admin_controls?: {
dcp?: boolean;
dd?: boolean;
dk?: boolean;
dp?: boolean;
du?: boolean;
[k: string]: unknown;
};
block_page_enabled?: boolean;
block_reason?: string;
bypass_parent_rule?: boolean;
check_session?: {
duration?: string;
enforce?: boolean;
[k: string]: unknown;
};
dns_resolvers?: {
ipv4?: {
ip: string;
port?: number;
route_through_private_network?: boolean;
vnet_id?: string;
[k: string]: unknown;
}[];
ipv6?: {
ip: string;
port?: number;
route_through_private_network?: boolean;
vnet_id?: string;
[k: string]: unknown;
}[];
[k: string]: unknown;
};
egress?: {
ipv4?: string;
ipv4_fallback?: string;
ipv6?: string;
[k: string]: unknown;
};
insecure_disable_dnssec_validation?: boolean;
ip_categories?: boolean;
ip_indicator_feeds?: boolean;
l4override?: { ip?: string; port?: number; [k: string]: unknown };
override_host?: string;
override_ips?: string[];
payload_log?: { enabled?: boolean; [k: string]: unknown };
resolve_dns_through_cloudflare?: boolean;
untrusted_cert?: {
action?: "pass_through" | "block" | "error";
[k: string]: unknown;
};
[k: string]: unknown;
};
schedule?: {
fri?: string;
mon?: string;
sat?: string;
sun?: string;
thu?: string;
time_zone?: string;
tue?: string;
wed?: string;
[k: string]: unknown;
};
traffic?: string;
[k: string]: unknown;
}
) {
const url = new URL(
`https://api.cloudflare.com/client/v4/accounts/${identifier}/gateway/rules/${uuid}`
);
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