alchemy 0.77.5 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/bin/alchemy.js +2414 -323
  2. package/bin/commands/util.ts +234 -315
  3. package/bin/services/execute-alchemy.ts +8 -33
  4. package/lib/cloudflare/assets.js +1 -1
  5. package/lib/cloudflare/assets.js.map +1 -1
  6. package/lib/cloudflare/astro/plugin.d.ts.map +1 -1
  7. package/lib/cloudflare/astro/plugin.js +3 -1
  8. package/lib/cloudflare/astro/plugin.js.map +1 -1
  9. package/lib/cloudflare/auth.d.ts +73 -68
  10. package/lib/cloudflare/auth.d.ts.map +1 -1
  11. package/lib/cloudflare/auth.js +73 -72
  12. package/lib/cloudflare/auth.js.map +1 -1
  13. package/lib/cloudflare/cloudflare-env-proxy.d.ts +1 -1
  14. package/lib/cloudflare/cloudflare-env-proxy.d.ts.map +1 -1
  15. package/lib/cloudflare/cloudflare-env-proxy.js +2 -2
  16. package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
  17. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  18. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  19. package/lib/cloudflare/container.d.ts +0 -3
  20. package/lib/cloudflare/container.d.ts.map +1 -1
  21. package/lib/cloudflare/container.js +10 -4
  22. package/lib/cloudflare/container.js.map +1 -1
  23. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  24. package/lib/cloudflare/d1-database.js +3 -2
  25. package/lib/cloudflare/d1-database.js.map +1 -1
  26. package/lib/cloudflare/index.d.ts +2 -2
  27. package/lib/cloudflare/index.d.ts.map +1 -1
  28. package/lib/cloudflare/index.js +2 -2
  29. package/lib/cloudflare/index.js.map +1 -1
  30. package/lib/cloudflare/permission-groups.d.ts +35 -0
  31. package/lib/cloudflare/permission-groups.d.ts.map +1 -1
  32. package/lib/cloudflare/permission-groups.js +42 -0
  33. package/lib/cloudflare/permission-groups.js.map +1 -1
  34. package/lib/cloudflare/worker-assets.d.ts.map +1 -1
  35. package/lib/cloudflare/worker-assets.js +22 -1
  36. package/lib/cloudflare/worker-assets.js.map +1 -1
  37. package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
  38. package/lib/cloudflare/worker-bundle.js +1 -0
  39. package/lib/cloudflare/worker-bundle.js.map +1 -1
  40. package/lib/cloudflare/worker.d.ts +2 -0
  41. package/lib/cloudflare/worker.d.ts.map +1 -1
  42. package/lib/cloudflare/worker.js.map +1 -1
  43. package/lib/util/detect-node-runtime.d.ts.map +1 -1
  44. package/lib/util/detect-node-runtime.js +0 -2
  45. package/lib/util/detect-node-runtime.js.map +1 -1
  46. package/lib/util/detect-package-manager.d.ts +1 -1
  47. package/lib/util/detect-package-manager.d.ts.map +1 -1
  48. package/lib/util/detect-package-manager.js +11 -8
  49. package/lib/util/detect-package-manager.js.map +1 -1
  50. package/package.json +5 -1
  51. package/src/cloudflare/assets.ts +1 -1
  52. package/src/cloudflare/astro/plugin.ts +8 -1
  53. package/src/cloudflare/auth.ts +94 -75
  54. package/src/cloudflare/cloudflare-env-proxy.ts +5 -1
  55. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  56. package/src/cloudflare/container.ts +10 -7
  57. package/src/cloudflare/d1-database.ts +6 -2
  58. package/src/cloudflare/index.ts +2 -2
  59. package/src/cloudflare/permission-groups.ts +42 -0
  60. package/src/cloudflare/worker-assets.ts +34 -1
  61. package/src/cloudflare/worker-bundle.ts +1 -0
  62. package/src/cloudflare/worker.ts +2 -0
  63. package/src/util/detect-node-runtime.ts +0 -2
  64. package/src/util/detect-package-manager.ts +12 -8
  65. package/templates/tanstack-start/alchemy.run.ts +8 -2
  66. package/templates/tanstack-start/src/routes/demo.start.server-funcs.tsx +11 -16
  67. package/workers/tunnel-proxy.js +1 -1
package/bin/alchemy.js CHANGED
@@ -36823,7 +36823,7 @@ function envPaths(name$1, { suffix = "nodejs" } = {}) {
36823
36823
  //#endregion
36824
36824
  //#region package.json
36825
36825
  var name = "alchemy";
36826
- var version = "0.77.5";
36826
+ var version = "0.78.0";
36827
36827
  var license = "Apache-2.0";
36828
36828
  var author = "Sam Goodwin <sam@alchemy.run>";
36829
36829
  var homepage = "https://alchemy.run";
@@ -36980,6 +36980,10 @@ var exports$1 = {
36980
36980
  "bun": "./src/test/vite.ts",
36981
36981
  "import": "./lib/test/vite.js"
36982
36982
  },
36983
+ "./test/bun": {
36984
+ "bun": "./src/test/bun.ts",
36985
+ "import": "./lib/test/bun.js"
36986
+ },
36983
36987
  "./upstash": {
36984
36988
  "bun": "./src/upstash/index.ts",
36985
36989
  "import": "./lib/upstash/index.js"
@@ -38194,6 +38198,51 @@ const ResourceFQN = Symbol.for("alchemy::ResourceFQN");
38194
38198
  const ResourceKind = Symbol.for("alchemy::ResourceKind");
38195
38199
  const ResourceScope = Symbol.for("alchemy::ResourceScope");
38196
38200
  const ResourceSeq = Symbol.for("alchemy::ResourceSeq");
38201
+ function Resource(type$1, ...args) {
38202
+ const [options, handler] = args.length === 2 ? args : [void 0, args[0]];
38203
+ if (PROVIDERS.has(type$1)) {
38204
+ if (HANDLERS.get(type$1).toString() !== handler.toString()) throw new Error(`Resource ${type$1} already exists`);
38205
+ }
38206
+ HANDLERS.set(type$1, handler);
38207
+ const provider = (async (resourceID, props) => {
38208
+ const scope = Scope.current;
38209
+ if (resourceID.includes(":")) throw new Error(`ID cannot include colons: ${resourceID}`);
38210
+ if (scope.resources.has(resourceID)) {
38211
+ const otherResource = scope.resources.get(resourceID);
38212
+ if (otherResource?.[ResourceKind] !== type$1) {
38213
+ scope.fail();
38214
+ const error$84 = /* @__PURE__ */ new Error(`Resource ${resourceID} already exists in the stack and is of a different type: '${otherResource?.[ResourceKind]}' !== '${type$1}'`);
38215
+ await createAndSendEvent({
38216
+ event: "resource.error",
38217
+ resource: type$1,
38218
+ phase: scope.phase,
38219
+ status: "unknown",
38220
+ duration: 0,
38221
+ replaced: false
38222
+ }, error$84);
38223
+ throw error$84;
38224
+ }
38225
+ }
38226
+ const seq = scope.seq();
38227
+ const meta = {
38228
+ [ResourceKind]: type$1,
38229
+ [ResourceID]: resourceID,
38230
+ [ResourceFQN]: scope.fqn(resourceID),
38231
+ [ResourceSeq]: seq,
38232
+ [ResourceScope]: scope,
38233
+ [DestroyStrategy]: options?.destroyStrategy ?? "sequential"
38234
+ };
38235
+ const promise$3 = apply$2(meta, props, options);
38236
+ const resource = Object.assign(promise$3, meta);
38237
+ scope.resources.set(resourceID, resource);
38238
+ return resource;
38239
+ });
38240
+ provider.type = type$1;
38241
+ provider.handler = handler;
38242
+ provider.options = options;
38243
+ PROVIDERS.set(type$1, provider);
38244
+ return provider;
38245
+ }
38197
38246
 
38198
38247
  //#endregion
38199
38248
  //#region src/destroy.ts
@@ -38412,9 +38461,239 @@ function context({ scope, phase, kind, id, fqn, seq, state, replace, props, isRe
38412
38461
 
38413
38462
  //#endregion
38414
38463
  //#region src/apply.ts
38464
+ function apply$2(resource, props, options) {
38465
+ return _apply(resource, props, options);
38466
+ }
38415
38467
  function isReplacedSignal(error$84) {
38416
38468
  return error$84 instanceof Error && error$84.kind === "ReplacedSignal";
38417
38469
  }
38470
+ var ReplacedSignal = class extends Error {
38471
+ kind = "ReplacedSignal";
38472
+ force;
38473
+ constructor(force$1) {
38474
+ super();
38475
+ this.force = force$1 ?? false;
38476
+ }
38477
+ };
38478
+ async function _apply(resource, props, options) {
38479
+ const scope = resource[ResourceScope];
38480
+ const start = performance.now();
38481
+ validateResourceID(resource[ResourceID], "Resource");
38482
+ try {
38483
+ const quiet = props?.quiet ?? scope.quiet;
38484
+ await scope.init();
38485
+ let state = await scope.state.get(resource[ResourceID]);
38486
+ const provider = PROVIDERS.get(resource[ResourceKind]);
38487
+ if (provider === void 0) throw new Error(`Provider "${resource[ResourceKind]}" not found`);
38488
+ if (scope.phase === "read") {
38489
+ if (state === void 0) if (scope.isSelected === false) {
38490
+ if (process.argv.includes("--destroy")) process.exit(0);
38491
+ state = await waitForConsistentState();
38492
+ } else throw new Error(`Resource "${resource[ResourceFQN]}" not found and running in 'read' phase. Selected(${scope.isSelected})`);
38493
+ else if (scope.isSelected === false) state = await waitForConsistentState();
38494
+ await createAndSendEvent({
38495
+ event: "resource.read",
38496
+ phase: scope.phase,
38497
+ duration: performance.now() - start,
38498
+ status: state.status,
38499
+ resource: resource[ResourceKind],
38500
+ replaced: false
38501
+ });
38502
+ return state.output;
38503
+ async function waitForConsistentState() {
38504
+ let startTime = Date.now();
38505
+ while (true) {
38506
+ if (state === void 0) {} else if (state.status === "creating" || state.status === "updating") {} else if (state.status === "deleted" || state.status === "deleting") throw new Error("Resource is being deleted");
38507
+ else if (await inputsAreEqual(state)) return state;
38508
+ else {
38509
+ const elapsed = Date.now() - startTime;
38510
+ if ((state.status === "created" || state.status === "updated") && elapsed > 1e3) logger.warn(`Resource '${resource[ResourceFQN]}' is not in a stable state after ${elapsed}ms, be sure to check if your input props are deterministic:`, state.props);
38511
+ }
38512
+ const jitter = 100 + Math.random() * 200;
38513
+ await new Promise((resolve$1) => setTimeout(resolve$1, jitter));
38514
+ state = await scope.state.get(resource[ResourceID]);
38515
+ }
38516
+ }
38517
+ async function inputsAreEqual(state$1) {
38518
+ const oldProps = await serialize$1(scope, state$1.props, { encrypt: false });
38519
+ const newProps = await serialize$1(scope, props, { encrypt: false });
38520
+ return JSON.stringify(oldProps) === JSON.stringify(newProps);
38521
+ }
38522
+ }
38523
+ if (state === void 0) {
38524
+ state = {
38525
+ kind: resource[ResourceKind],
38526
+ id: resource[ResourceID],
38527
+ fqn: resource[ResourceFQN],
38528
+ seq: resource[ResourceSeq],
38529
+ status: "creating",
38530
+ data: {},
38531
+ output: {
38532
+ [ResourceID]: resource[ResourceID],
38533
+ [ResourceFQN]: resource[ResourceFQN],
38534
+ [ResourceKind]: resource[ResourceKind],
38535
+ [ResourceScope]: scope,
38536
+ [ResourceSeq]: resource[ResourceSeq],
38537
+ [DestroyStrategy]: provider.options?.destroyStrategy ?? "sequential"
38538
+ },
38539
+ props: {}
38540
+ };
38541
+ await scope.state.set(resource[ResourceID], state);
38542
+ }
38543
+ const oldOutput = state.output;
38544
+ const alwaysUpdate = options?.alwaysUpdate ?? provider.options?.alwaysUpdate ?? false;
38545
+ if (state.status === "created" || state.status === "updated") {
38546
+ const oldProps = await serialize$1(scope, state.props, { encrypt: false });
38547
+ const newProps = await serialize$1(scope, props, { encrypt: false });
38548
+ if (JSON.stringify(oldProps) === JSON.stringify(newProps) && alwaysUpdate !== true && !scope.force) {
38549
+ if (!quiet) logger.task(resource[ResourceFQN], {
38550
+ prefix: "skipped",
38551
+ prefixColor: "yellowBright",
38552
+ resource: formatFQN(resource[ResourceFQN]),
38553
+ message: "Skipped Resource (no changes)",
38554
+ status: "success"
38555
+ });
38556
+ createAndSendEvent({
38557
+ event: "resource.skip",
38558
+ resource: resource[ResourceKind],
38559
+ status: state.status,
38560
+ phase: scope.phase,
38561
+ duration: performance.now() - start,
38562
+ replaced: false
38563
+ });
38564
+ return state.output;
38565
+ }
38566
+ }
38567
+ const phase = state.status === "creating" ? "create" : "update";
38568
+ state.status = phase === "create" ? "creating" : "updating";
38569
+ state.oldProps = state.props;
38570
+ state.props = props;
38571
+ if (!quiet) logger.task(resource[ResourceFQN], {
38572
+ prefix: phase === "create" ? "creating" : "updating",
38573
+ prefixColor: "magenta",
38574
+ resource: formatFQN(resource[ResourceFQN]),
38575
+ message: `${phase === "create" ? "Creating" : "Updating"} Resource...`
38576
+ });
38577
+ createAndSendEvent({
38578
+ event: "resource.start",
38579
+ resource: resource[ResourceKind],
38580
+ status: state.status,
38581
+ phase: scope.phase,
38582
+ duration: performance.now() - start,
38583
+ replaced: false
38584
+ });
38585
+ await scope.state.set(resource[ResourceID], state);
38586
+ let isReplaced = false;
38587
+ const ctx = context({
38588
+ scope,
38589
+ phase,
38590
+ kind: resource[ResourceKind],
38591
+ id: resource[ResourceID],
38592
+ fqn: resource[ResourceFQN],
38593
+ seq: resource[ResourceSeq],
38594
+ props: state.oldProps,
38595
+ state,
38596
+ isReplacement: false,
38597
+ replace: (force$1) => {
38598
+ if (phase === "create") throw new Error(`Resource ${resource[ResourceKind]} ${resource[ResourceFQN]} cannot be replaced in create phase.`);
38599
+ if (isReplaced) logger.warn(`Resource ${resource[ResourceKind]} ${resource[ResourceFQN]} is already marked as REPLACE`);
38600
+ isReplaced = true;
38601
+ throw new ReplacedSignal(force$1);
38602
+ }
38603
+ });
38604
+ let output;
38605
+ try {
38606
+ output = await alchemy.run(resource[ResourceID], {
38607
+ isResource: true,
38608
+ parent: scope,
38609
+ destroyStrategy: provider.options?.destroyStrategy ?? "sequential",
38610
+ noop: options?.noop
38611
+ }, async () => ctx(await provider.handler.bind(ctx)(resource[ResourceID], props)));
38612
+ } catch (error$84) {
38613
+ if (error$84 instanceof ReplacedSignal) {
38614
+ if (error$84.force) await destroy$1(resource, {
38615
+ quiet: scope.quiet,
38616
+ strategy: resource[DestroyStrategy] ?? "sequential",
38617
+ replace: {
38618
+ props: state.oldProps,
38619
+ output: oldOutput
38620
+ },
38621
+ noop: options?.noop
38622
+ });
38623
+ else {
38624
+ if ((scope.children.get(resource[ResourceID])?.children.size ?? 0) > 0) throw new Error(`Resource ${resource[ResourceFQN]} has children and cannot be replaced.`);
38625
+ const pendingDeletions = await scope.get("pendingDeletions") ?? [];
38626
+ pendingDeletions.push({
38627
+ resource: oldOutput,
38628
+ oldProps: state.oldProps
38629
+ });
38630
+ await scope.set("pendingDeletions", pendingDeletions);
38631
+ }
38632
+ output = await alchemy.run(resource[ResourceID], {
38633
+ isResource: true,
38634
+ parent: scope,
38635
+ noop: options?.noop
38636
+ }, async () => {
38637
+ const ctx$1 = context({
38638
+ scope,
38639
+ phase: "create",
38640
+ kind: resource[ResourceKind],
38641
+ id: resource[ResourceID],
38642
+ fqn: resource[ResourceFQN],
38643
+ seq: resource[ResourceSeq],
38644
+ props: state.props,
38645
+ state,
38646
+ isReplacement: true,
38647
+ replace: () => {
38648
+ throw new Error(`Resource ${resource[ResourceKind]} ${resource[ResourceFQN]} cannot be replaced in create phase.`);
38649
+ }
38650
+ });
38651
+ return ctx$1(await provider.handler.bind(ctx$1)(resource[ResourceID], props));
38652
+ });
38653
+ } else throw error$84;
38654
+ }
38655
+ if (!quiet) logger.task(resource[ResourceFQN], {
38656
+ prefix: phase === "create" ? "created" : isReplaced ? "replaced" : "updated",
38657
+ prefixColor: "greenBright",
38658
+ resource: formatFQN(resource[ResourceFQN]),
38659
+ message: `${phase === "create" ? "Created" : isReplaced ? "Replaced" : "Updated"} Resource`,
38660
+ status: "success"
38661
+ });
38662
+ const status = phase === "create" ? "created" : "updated";
38663
+ createAndSendEvent({
38664
+ event: "resource.success",
38665
+ resource: resource[ResourceKind],
38666
+ status,
38667
+ phase: scope.phase,
38668
+ duration: performance.now() - start,
38669
+ replaced: isReplaced
38670
+ });
38671
+ state = await scope.state.get(resource[ResourceID]);
38672
+ await scope.state.set(resource[ResourceID], {
38673
+ kind: resource[ResourceKind],
38674
+ id: resource[ResourceID],
38675
+ fqn: resource[ResourceFQN],
38676
+ seq: resource[ResourceSeq],
38677
+ data: state?.data ?? {},
38678
+ status,
38679
+ output,
38680
+ props
38681
+ });
38682
+ return output;
38683
+ } catch (error$84) {
38684
+ let errorToSend = error$84 instanceof Error ? error$84 : new Error(String(error$84));
38685
+ createAndSendEvent({
38686
+ event: "resource.error",
38687
+ resource: resource[ResourceKind],
38688
+ duration: performance.now() - start,
38689
+ phase: scope.phase,
38690
+ status: "unknown",
38691
+ replaced: false
38692
+ }, errorToSend);
38693
+ scope.fail();
38694
+ throw error$84;
38695
+ }
38696
+ }
38418
38697
 
38419
38698
  //#endregion
38420
38699
  //#region src/env.ts
@@ -39214,74 +39493,78 @@ let CloudflareAuth;
39214
39493
  }
39215
39494
  });
39216
39495
  _CloudflareAuth.ALL_SCOPES = {
39217
- "access:read": "Read Cloudflare Access",
39218
- "access:write": "Write Cloudflare Access",
39219
- "account:read": "See your account info such as account details, analytics, and memberships.",
39220
- "agw:read": "Read API Gateway",
39221
- "agw:run": "Run API Gateway",
39222
- "ai:read": "Read access to Workers AI catalog and assets",
39223
- "ai:write": "See and change Workers AI catalog and assets",
39224
- "aiaudit:read": "Read AI Audit",
39225
- "aiaudit:write": "Write AI Audit",
39226
- "aig:read": "Read AI Gateway",
39227
- "aig:write": "Write AI Gateway",
39228
- "auditlogs:read": "Read audit logs",
39229
- "browser:read": "Read Browser",
39230
- "browser:write": "Write Browser",
39231
- "cfone:read": "Read Cloudflare One",
39232
- "cfone:write": "Write Cloudflare One",
39233
- "cloudchamber:write": "Manage Cloudchamber",
39234
- "constellation:write": "Write Constellation",
39235
- "containers:write": "Manage Workers Containers",
39236
- "d1:write": "See and change D1 Databases.",
39237
- "dex:read": "Read DEX",
39238
- "dex:write": "Write DEX",
39239
- "dns_analytics:read": "Read DNS analytics",
39240
- "dns_records:edit": "Edit DNS records",
39241
- "dns_records:read": "Read DNS records",
39242
- "dns_settings:read": "Read DNS settings",
39243
- "firstpartytags:write": "Write First Party Tags",
39244
- "lb:edit": "Edit Load Balancer",
39245
- "lb:read": "Read Load Balancer",
39246
- "logpush:read": "Read Logpush",
39247
- "logpush:write": "Write Logpush",
39248
- "notification:read": "Read Notifications",
39249
- "notification:write": "Write Notifications",
39250
- "pages:read": "Read access to Pages projects, settings, and deployments.",
39251
- "pages:write": "See and change Pages projects, settings, and deployments.",
39252
- "pipelines:read": "Read access to Pipelines configurations and data",
39253
- "pipelines:setup": "Setup access to Pipelines configurations and data",
39254
- "pipelines:write": "See and change Pipelines configurations and data",
39255
- "query_cache:write": "Write Query Cache",
39256
- "queues:write": "See and change Queues settings and data",
39257
- "r2_catalog:write": "Write R2 Catalog",
39258
- "radar:read": "Read Radar",
39259
- "rag:read": "Read RAG",
39260
- "rag:write": "Write RAG",
39261
- "secrets_store:read": "Read access to secrets + stores within the Secrets Store",
39262
- "secrets_store:write": "See and change secrets + stores within the Secrets Store",
39263
- "sso-connector:read": "Read SSO Connector",
39264
- "sso-connector:write": "Write SSO Connector",
39265
- "ssl_certs:write": "See and manage mTLS certificates for your account",
39266
- "teams:pii": "Read Teams PII",
39267
- "teams:read": "Read Teams",
39268
- "teams:secure_location": "Read Secure Location",
39269
- "teams:write": "Write Teams",
39270
- "url_scanner:read": "Read URL Scanner",
39271
- "url_scanner:write": "Write URL Scanner",
39272
- "user:read": "See your user info such as name, email address, and account memberships.",
39273
- "vectorize:write": "Write Vectorize",
39274
- "workers:write": "See and change Cloudflare Workers data such as zones, KV storage, namespaces, scripts, and routes.",
39275
- "workers_builds:read": "Read Workers Builds",
39276
- "workers_builds:write": "Write Workers Builds",
39277
- "workers_kv:write": "See and change Cloudflare Workers KV Storage data such as keys and namespaces.",
39278
- "workers_observability:read": "Read Workers Observability",
39279
- "workers_observability:write": "Write Workers Observability",
39280
- "workers_observability_telemetry:write": "Write Workers Observability Telemetry",
39281
- "workers_routes:write": "See and change Cloudflare Workers data such as filters and routes.",
39282
- "workers_scripts:write": "See and change Cloudflare Workers scripts, durable objects, subdomains, triggers, and tail data.",
39283
- "workers_tail:read": "See Cloudflare Workers tail and script data.",
39284
- "zone:read": "Grants read level access to account zone."
39496
+ "access:read": "See Cloudflare Access data such as zones, applications, certificates, device postures, groups, identity providers, login counts, organizations, policies, service tokens, and users",
39497
+ "access:write": "See and change Cloudflare Access data such as zones, applications, certificates, device postures, groups, identity providers, login counts, organizations, policies, service tokens, and users",
39498
+ "account:read": "See your account info such as account details, analytics, and memberships",
39499
+ "agw:read": "Grants read level access to Agents Gateway",
39500
+ "agw:run": "Grants run level access to Agents Gateway",
39501
+ "agw:write": "Grants read and write level access to Agents Gateway",
39502
+ "ai:read": "Grants read level access to Workers AI",
39503
+ "ai:write": "Grants write level access to Workers AI",
39504
+ "aiaudit:read": "Grants read level access to AI Audit",
39505
+ "aiaudit:write": "Grants write level access to AI Audit",
39506
+ "aig:read": "Grants read level access to AI Gateway",
39507
+ "aig:write": "Grants write level access to AI Gateway",
39508
+ "auditlogs:read": "View Cloudflare Account Audit Logs",
39509
+ "browser:read": "Grants read level access to Browser Rendering",
39510
+ "browser:write": "Grants write level access to Browser Rendering",
39511
+ "cfone:read": "Grants read level access to Cloudforce One data",
39512
+ "cfone:write": "Grants write level access to Cloudforce One data",
39513
+ "cloudchamber:write": "See and make changes to Cloudchamber",
39514
+ "connectivity:admin": "See, change, and bind to Connectivity Directory services, including creating services targeting Cloudflare Tunnel",
39515
+ "connectivity:bind": "read, list, and bind to Connectivity Directory services, as well as read and list Cloudflare Tunnels",
39516
+ "connectivity:read": "See Connectivity Directory services and Cloudflare Tunnels",
39517
+ "constellation:write": "Grants write access to Constellation configuration and models",
39518
+ "containers:write": "See and make changes to Workers Containers",
39519
+ "d1:write": "See and make changes to D1",
39520
+ "dex:read": "Grants read level access to Cloudflare DEX",
39521
+ "dex:write": "Grants write level access to Cloudflare DEX",
39522
+ "dns_analytics:read": "Grants read level access to Cloudflare DNS Analytics",
39523
+ "dns_records:edit": "Grants edit level access to dns records",
39524
+ "dns_records:read": "Grants read level access to dns records",
39525
+ "dns_settings:read": "Grants read level access to Cloudflare DNS Settings",
39526
+ "firstpartytags:write": "Can see, edit and publish Google tag gateway configuration.",
39527
+ "lb:edit": "Grants edit level access to lb and lb pools",
39528
+ "lb:read": "Grants read level access to lb and lb pools",
39529
+ "logpush:read": "See Cloudflare Logpush data",
39530
+ "logpush:write": "See and change Cloudflare Logpush data",
39531
+ "notification:read": "View Cloudflare Notifications",
39532
+ "notification:write": "View and Modify Cloudflare Notifications",
39533
+ "pages:read": "See Cloudflare Pages projects, settings and deployments",
39534
+ "pages:write": "See and change Cloudflare Pages projects, settings and deployments",
39535
+ "pipelines:read": "Grants read level access to Cloudflare Pipelines",
39536
+ "pipelines:setup": "Grants permission to generate R2 tokens for Workers Pipelines",
39537
+ "pipelines:write": "Grants write level access to Cloudflare Pipelines",
39538
+ "query_cache:write": "See and make changes to Hyperdrive",
39539
+ "queues:write": "See and change Cloudflare Queues settings and data",
39540
+ "r2_catalog:write": "Grants write level access to R2 Data Catalog",
39541
+ "radar:read": "Grants access to read Cloudflare Radar data",
39542
+ "rag:read": "Grants read level access to Auto Rag",
39543
+ "rag:write": "Grants write level access to Auto Rag",
39544
+ "secrets_store:read": "Grants read level access to Secrets Store",
39545
+ "secrets_store:write": "Grants write level access to Secrets Store",
39546
+ "ssl_certs:write": "Grants read and write access to SSL MTLS certificates or Certificate Store",
39547
+ "sso-connector:read": "See Cloudflare SSO connectors",
39548
+ "sso-connector:write": "See Cloudflare SSO connectors to toggle activation and deactivation of SSO",
39549
+ "teams:pii": "See personally identifiable Cloudflare Teams data",
39550
+ "teams:read": "See Cloudflare Teams data such as zones, gateway, and argo tunnel details",
39551
+ "teams:secure_location": "See all DNS Location data but can only change secure DNS Locations",
39552
+ "teams:write": "See and change Cloudflare Teams data such as zones, gateway, and argo tunnel details",
39553
+ "url_scanner:read": "Grants read level access to URL Scanner",
39554
+ "url_scanner:write": "Grants write level access to URL Scanner",
39555
+ "user:read": "See your user info such as name, email address, and account memberships",
39556
+ "vectorize:write": "See and make changes to Vectorize",
39557
+ "workers:read": "See Cloudflare Workers data such as zones, KV storage, R2 storage, scripts, and routes",
39558
+ "workers:write": "See and change Cloudflare Workers data such as zones, KV storage, R2 storage, scripts, and routes",
39559
+ "workers_builds:read": "See Cloudflare Workers Builds data such as builds, build configuration, and build logs",
39560
+ "workers_builds:write": "See and change Cloudflare Workers Builds data such as builds, build configuration, and build logs",
39561
+ "workers_kv:write": "See and change Cloudflare Workers KV Storage data such as keys and namespaces",
39562
+ "workers_observability:read": "Grants read access to Cloudflare Workers Observability",
39563
+ "workers_observability_telemetry:write": "Grants write access to Cloudflare Workers Observability Telemetry API",
39564
+ "workers_routes:write": "See and change Cloudflare Workers data such as filters and routes",
39565
+ "workers_scripts:write": "See and change Cloudflare Workers scripts, durable objects, subdomains, triggers, and tail data",
39566
+ "workers_tail:read": "See Cloudflare Workers tail and script data",
39567
+ "zone:read": "Grants read level access to account zone"
39285
39568
  };
39286
39569
  _CloudflareAuth.DEFAULT_SCOPES = [
39287
39570
  "account:read",
@@ -39301,7 +39584,8 @@ let CloudflareAuth;
39301
39584
  "secrets_store:write",
39302
39585
  "containers:write",
39303
39586
  "cloudchamber:write",
39304
- "vectorize:write"
39587
+ "vectorize:write",
39588
+ "connectivity:admin"
39305
39589
  ];
39306
39590
  _CloudflareAuth.formatHeadersWithRefresh = async (input) => {
39307
39591
  if (!Credentials.isOAuthExpired(input.credentials)) return formatHeaders(input.credentials);
@@ -42005,15 +42289,52 @@ async function exists(path$32) {
42005
42289
  }
42006
42290
  }
42007
42291
 
42292
+ //#endregion
42293
+ //#region src/util/find-workspace-root.ts
42294
+ async function findWorkspaceRoot(directory = process.cwd()) {
42295
+ if ((await Promise.all(Object.entries(predicates).map(async ([file$2, predicate]) => {
42296
+ return await check(path$1.join(directory, file$2), predicate);
42297
+ }))).includes(true)) return directory;
42298
+ const parent = path$1.resolve(directory, "..");
42299
+ if (parent === directory) return directory;
42300
+ return await findWorkspaceRoot(parent);
42301
+ }
42302
+ async function check(filePath, predicate) {
42303
+ if (!await exists(filePath)) return false;
42304
+ if (typeof predicate === "function") try {
42305
+ const value = await fs$1.readFile(filePath, "utf-8");
42306
+ return predicate(JSON.parse(value));
42307
+ } catch {
42308
+ return false;
42309
+ }
42310
+ else return true;
42311
+ }
42312
+ const predicates = {
42313
+ "bun.lock": true,
42314
+ "bun.lockb": true,
42315
+ ".git": true,
42316
+ "lerna.json": true,
42317
+ "package.json": (value) => "workspaces" in value,
42318
+ "package-lock.json": true,
42319
+ "nx.json": true,
42320
+ "pnpm-lock.yaml": true,
42321
+ "pnpm-workspace.yaml": true,
42322
+ "pnpm-workspace.yml": true,
42323
+ "rush.json": true,
42324
+ "turbo.json": (value) => !("extends" in value),
42325
+ "yarn.lock": true
42326
+ };
42327
+
42008
42328
  //#endregion
42009
42329
  //#region src/util/detect-package-manager.ts
42010
- async function detectPackageManager(path$32 = process.cwd()) {
42011
- if (await exists(`${path$32}/deno.lock`)) return "deno";
42012
- if (await exists(`${path$32}/deno.json`) || await exists(`${path$32}/deno.jsonc`)) return "deno";
42013
- if (await exists(`${path$32}/bun.lockb`)) return "bun";
42014
- if (await exists(`${path$32}/bun.lock`)) return "bun";
42015
- if (await exists(`${path$32}/pnpm-lock.yaml`)) return "pnpm";
42016
- if (await exists(`${path$32}/yarn.lock`)) return "yarn";
42330
+ async function detectPackageManager(root = process.cwd()) {
42331
+ root = await findWorkspaceRoot(root);
42332
+ if (await exists(path$1.resolve(root, "deno.lock"))) return "deno";
42333
+ if (await exists(path$1.resolve(root, "deno.json")) || await exists(path$1.resolve(root, "deno.jsonc"))) return "deno";
42334
+ if (await exists(path$1.resolve(root, "bun.lockb"))) return "bun";
42335
+ if (await exists(path$1.resolve(root, "bun.lock"))) return "bun";
42336
+ if (await exists(path$1.resolve(root, "pnpm-lock.yaml"))) return "pnpm";
42337
+ if (await exists(path$1.resolve(root, "yarn.lock"))) return "yarn";
42017
42338
  if (process.env.npm_execpath?.includes("bun")) return "bun";
42018
42339
  if (process.env.DENO) return "deno";
42019
42340
  const userAgent = process.env.npm_config_user_agent;
@@ -55215,46 +55536,9 @@ function handleError(error$84) {
55215
55536
  function detectRuntime() {
55216
55537
  if (typeof Bun !== "undefined" && Bun !== null) return "bun";
55217
55538
  if (typeof Deno !== "undefined" && Deno !== null) return "deno";
55218
- if (typeof process !== "undefined" && process.release?.name === "node") return "node";
55219
55539
  return "node";
55220
55540
  }
55221
55541
 
55222
- //#endregion
55223
- //#region src/util/find-workspace-root.ts
55224
- async function findWorkspaceRoot(directory = process.cwd()) {
55225
- if ((await Promise.all(Object.entries(predicates).map(async ([file$2, predicate]) => {
55226
- return await check(path$1.join(directory, file$2), predicate);
55227
- }))).includes(true)) return directory;
55228
- const parent = path$1.resolve(directory, "..");
55229
- if (parent === directory) return directory;
55230
- return await findWorkspaceRoot(parent);
55231
- }
55232
- async function check(filePath, predicate) {
55233
- if (!await exists(filePath)) return false;
55234
- if (typeof predicate === "function") try {
55235
- const value = await fs$1.readFile(filePath, "utf-8");
55236
- return predicate(JSON.parse(value));
55237
- } catch {
55238
- return false;
55239
- }
55240
- else return true;
55241
- }
55242
- const predicates = {
55243
- "bun.lock": true,
55244
- "bun.lockb": true,
55245
- ".git": true,
55246
- "lerna.json": true,
55247
- "package.json": (value) => "workspaces" in value,
55248
- "package-lock.json": true,
55249
- "nx.json": true,
55250
- "pnpm-lock.yaml": true,
55251
- "pnpm-workspace.yaml": true,
55252
- "pnpm-workspace.yml": true,
55253
- "rush.json": true,
55254
- "turbo.json": (value) => !("extends" in value),
55255
- "yarn.lock": true
55256
- };
55257
-
55258
55542
  //#endregion
55259
55543
  //#region src/util/find-open-port.ts
55260
55544
  async function findOpenPort(min = 1337, max = 65535) {
@@ -55509,33 +55793,12 @@ async function execAlchemy(main, { cwd: cwd$1 = process.cwd(), quiet, force: for
55509
55793
  const runtime$1 = detectRuntime();
55510
55794
  const argsString = args.join(" ");
55511
55795
  const execArgsString = execArgs$1.join(" ");
55512
- let command;
55513
- const isTypeScript = main.endsWith("ts");
55514
- switch (packageManager) {
55515
- case "bun":
55516
- command = `bun ${execArgsString} ${main} ${argsString}`;
55517
- break;
55518
- case "deno":
55519
- command = `deno run -A ${execArgsString} ${main} ${argsString}`;
55520
- break;
55521
- case "pnpm":
55522
- command = isTypeScript ? `pnpm dlx tsx ${execArgsString} ${main} ${argsString}` : `pnpm node ${execArgsString} ${main} ${argsString}`;
55523
- break;
55524
- case "yarn":
55525
- command = isTypeScript ? `yarn tsx ${execArgsString} ${main} ${argsString}` : `yarn node ${execArgsString} ${main} ${argsString}`;
55526
- break;
55527
- default: switch (runtime$1) {
55528
- case "bun":
55529
- command = `bun ${execArgsString} ${main} ${argsString}`;
55530
- break;
55531
- case "deno":
55532
- command = `deno run -A ${execArgsString} ${main} ${argsString}`;
55533
- break;
55534
- case "node":
55535
- command = isTypeScript ? `npx tsx ${execArgsString} ${main} ${argsString}` : `node ${execArgsString} ${main} ${argsString}`;
55536
- break;
55537
- }
55538
- }
55796
+ const node = main.endsWith("ts") ? `npx tsx ${execArgsString} ${main} ${argsString}` : `node ${execArgsString} ${main} ${argsString}`;
55797
+ const commands = {
55798
+ bun: `bun ${execArgsString} ${main} ${argsString}`,
55799
+ deno: `deno run -A ${execArgsString} ${main} ${argsString}`
55800
+ };
55801
+ const command = commands[packageManager] ?? commands[runtime$1] ?? node;
55539
55802
  const childRuntime = command.split(" ")[0];
55540
55803
  const { promise: inspectorUrlPromise, resolve: resolveInspectorUrl } = promiseWithResolvers();
55541
55804
  process.on("SIGINT", async () => {
@@ -230730,6 +230993,1839 @@ const telemetry = t.router({
230730
230993
  })
230731
230994
  });
230732
230995
 
230996
+ //#endregion
230997
+ //#region src/cloudflare/permission-groups.ts
230998
+ Resource("cloudflare::PermissionGroups", async function() {
230999
+ if (this.phase === "delete") return this.destroy();
231000
+ throw new Error("Not implemented");
231001
+ });
231002
+ const PERMISSION_GROUPS = [
231003
+ {
231004
+ id: "19637fbb73d242c0a92845d8db0b95b1",
231005
+ name: "AI Audit Read",
231006
+ description: "Grants access to reading AI Audit",
231007
+ scopes: ["com.cloudflare.api.account.zone"]
231008
+ },
231009
+ {
231010
+ id: "1ba6ab4cacdb454b913bbb93e1b8cb8c",
231011
+ name: "AI Audit Write",
231012
+ description: "Grants access to reading and editing AI Audit",
231013
+ scopes: ["com.cloudflare.api.account.zone"]
231014
+ },
231015
+ {
231016
+ id: "4dc8917b4b40457d88d3035d5dadb054",
231017
+ name: "AI Gateway Read",
231018
+ description: "Grants access to reading AI Gateways",
231019
+ scopes: ["com.cloudflare.api.account"]
231020
+ },
231021
+ {
231022
+ id: "644535f4ed854494a59cb289d634b257",
231023
+ name: "AI Gateway Run",
231024
+ description: "Grants access to run AI Gateways",
231025
+ scopes: ["com.cloudflare.api.account"]
231026
+ },
231027
+ {
231028
+ id: "6c8a3737f07f46369c1ea1f22138daaf",
231029
+ name: "AI Gateway Write",
231030
+ description: "Grants access to reading and editing AI Gateways",
231031
+ scopes: ["com.cloudflare.api.account"]
231032
+ },
231033
+ {
231034
+ id: "eb258a38ea634c86a0c89da6b27cb6b6",
231035
+ name: "Access: Apps and Policies Read",
231036
+ description: "Grants read access to Cloudflare Access zone resources",
231037
+ scopes: ["com.cloudflare.api.account.zone"]
231038
+ },
231039
+ {
231040
+ id: "7ea222f6d5064cfa89ea366d7c1fee89",
231041
+ name: "Access: Apps and Policies Read",
231042
+ description: "Grants read access to Cloudflare Access applications and policies",
231043
+ scopes: ["com.cloudflare.api.account"]
231044
+ },
231045
+ {
231046
+ id: "6db4e222e21248ac96a3f4c2a81e3b41",
231047
+ name: "Access: Apps and Policies Revoke",
231048
+ description: "Grants ability to revoke all tokens to Cloudflare Access zone resources",
231049
+ scopes: ["com.cloudflare.api.account.zone"]
231050
+ },
231051
+ {
231052
+ id: "6c9d1cfcfc6840a987d1b5bfb880a841",
231053
+ name: "Access: Apps and Policies Revoke",
231054
+ description: "Grants ability to revoke Cloudflare Access application tokens",
231055
+ scopes: ["com.cloudflare.api.account"]
231056
+ },
231057
+ {
231058
+ id: "959972745952452f8be2452be8cbb9f2",
231059
+ name: "Access: Apps and Policies Write",
231060
+ description: "Grants write access to Cloudflare Access zone resources",
231061
+ scopes: ["com.cloudflare.api.account.zone"]
231062
+ },
231063
+ {
231064
+ id: "1e13c5124ca64b72b1969a67e8829049",
231065
+ name: "Access: Apps and Policies Write",
231066
+ description: "Grants write access to Cloudflare Access applications and policies",
231067
+ scopes: ["com.cloudflare.api.account"]
231068
+ },
231069
+ {
231070
+ id: "b05b28e839c54467a7d6cba5d3abb5a3",
231071
+ name: "Access: Audit Logs Read",
231072
+ description: "Grants read access to Cloudflare Access audit logs",
231073
+ scopes: ["com.cloudflare.api.account"]
231074
+ },
231075
+ {
231076
+ id: "08e61dabe81a422dab0dea6fdef1a98a",
231077
+ name: "Access: Custom Pages Read",
231078
+ description: "Grants read access to Cloudflare Access Custom Pages",
231079
+ scopes: ["com.cloudflare.api.account"]
231080
+ },
231081
+ {
231082
+ id: "4e5fd8ac327b4a358e48c66fcbeb856d",
231083
+ name: "Access: Custom Pages Write",
231084
+ description: "Grants write access to Cloudflare Access Custom Pages",
231085
+ scopes: ["com.cloudflare.api.account"]
231086
+ },
231087
+ {
231088
+ id: "0f4841f80adb4bada5a09493300e7f8d",
231089
+ name: "Access: Device Posture Read",
231090
+ description: "Grants read access to Cloudflare Access Device Posture",
231091
+ scopes: ["com.cloudflare.api.account"]
231092
+ },
231093
+ {
231094
+ id: "2fc1072ee6b743828db668fcb3f9dee7",
231095
+ name: "Access: Device Posture Write",
231096
+ description: "Grants write access to Cloudflare Access Device Posture",
231097
+ scopes: ["com.cloudflare.api.account"]
231098
+ },
231099
+ {
231100
+ id: "4f3196a5c95747b6ad82e34e1d0a694f",
231101
+ name: "Access: Mutual TLS Certificates Read",
231102
+ description: "Grants read access to Cloudflare Access mTLS certificates",
231103
+ scopes: ["com.cloudflare.api.account"]
231104
+ },
231105
+ {
231106
+ id: "29d3afbfd4054af9accdd1118815ed05",
231107
+ name: "Access: Mutual TLS Certificates Write",
231108
+ description: "Grants write access to Cloudflare Access mTLS certificates",
231109
+ scopes: ["com.cloudflare.api.account"]
231110
+ },
231111
+ {
231112
+ id: "26bc23f853634eb4bff59983b9064fde",
231113
+ name: "Access: Organizations, Identity Providers, and Groups Read",
231114
+ description: "Grants read access to Cloudflare Access account resources",
231115
+ scopes: ["com.cloudflare.api.account"]
231116
+ },
231117
+ {
231118
+ id: "7121a0c7e9ed46e3829f9cca2bb572aa",
231119
+ name: "Access: Organizations, Identity Providers, and Groups Revoke",
231120
+ description: "Grants ability to revoke user sessions to Cloudflare Access account resources",
231121
+ scopes: ["com.cloudflare.api.account"]
231122
+ },
231123
+ {
231124
+ id: "bfe0d8686a584fa680f4c53b5eb0de6d",
231125
+ name: "Access: Organizations, Identity Providers, and Groups Write",
231126
+ description: "Grants write access to Cloudflare Access account resources",
231127
+ scopes: ["com.cloudflare.api.account"]
231128
+ },
231129
+ {
231130
+ id: "b8b7514ce5364cd8ac0455f3eb16eb5f",
231131
+ name: "Access: Policy Test Read",
231132
+ description: "Grants read access to Cloudflare Access Policy Tests",
231133
+ scopes: ["com.cloudflare.api.account"]
231134
+ },
231135
+ {
231136
+ id: "6d23f290472f4e6fad5c4398c057c356",
231137
+ name: "Access: Policy Test Write",
231138
+ description: "Grants full access to Cloudflare Access Policy Tests",
231139
+ scopes: ["com.cloudflare.api.account"]
231140
+ },
231141
+ {
231142
+ id: "de99c87e48d642ce8c985d027905b475",
231143
+ name: "Access: Population Read",
231144
+ description: "Grants read access to Cloudflare Access Populations",
231145
+ scopes: ["com.cloudflare.api.account"]
231146
+ },
231147
+ {
231148
+ id: "bc783549a3a741aaa10556faf8b485bb",
231149
+ name: "Access: Population Write",
231150
+ description: "Grants write access to Cloudflare Access Populations",
231151
+ scopes: ["com.cloudflare.api.account"]
231152
+ },
231153
+ {
231154
+ id: "e985ca9351db460faebbe8681c48e560",
231155
+ name: "Access: SCIM logs read",
231156
+ description: "Grants read access to SCIM audit logs",
231157
+ scopes: ["com.cloudflare.api.account"]
231158
+ },
231159
+ {
231160
+ id: "99ff99e4e30247a99d3777a8c4c18541",
231161
+ name: "Access: SSH Auditing Read",
231162
+ description: "Grants read access to Cloudflare Access SSH certificate authorities (CAs)",
231163
+ scopes: ["com.cloudflare.api.account"]
231164
+ },
231165
+ {
231166
+ id: "d30c9ad8b5224e7cb8d41bcb4757effc",
231167
+ name: "Access: SSH Auditing Write",
231168
+ description: "Grants write access to Cloudflare Access SSH certificate authorities (CAs)",
231169
+ scopes: ["com.cloudflare.api.account"]
231170
+ },
231171
+ {
231172
+ id: "91f7ce32fa614d73b7e1fc8f0e78582b",
231173
+ name: "Access: Service Tokens Read",
231174
+ description: "Grants read access to Cloudflare Access Service Tokens",
231175
+ scopes: ["com.cloudflare.api.account"]
231176
+ },
231177
+ {
231178
+ id: "a1c0fec57cf94af79479a6d827fa518c",
231179
+ name: "Access: Service Tokens Write",
231180
+ description: "Grants write access to Cloudflare Access Service Tokens",
231181
+ scopes: ["com.cloudflare.api.account"]
231182
+ },
231183
+ {
231184
+ id: "5e5d3e8efeec49f3afb67bafecbcd511",
231185
+ name: "Account API Gateway",
231186
+ description: "Grants full access to API-Gateway Management (including API Shield) across the whole account",
231187
+ scopes: ["com.cloudflare.api.account"]
231188
+ },
231189
+ {
231190
+ id: "05a2a65760a546439ed29762b163cece",
231191
+ name: "Account API Gateway Read",
231192
+ description: "Grants read access to API-Gateway Management (including API Shield) across the whole account",
231193
+ scopes: ["com.cloudflare.api.account"]
231194
+ },
231195
+ {
231196
+ id: "eb56a6953c034b9d97dd838155666f06",
231197
+ name: "Account API Tokens Read",
231198
+ description: "Grants read access to account API Tokens",
231199
+ scopes: ["com.cloudflare.api.account"]
231200
+ },
231201
+ {
231202
+ id: "5bc3f8b21c554832afc660159ab75fa4",
231203
+ name: "Account API Tokens Write",
231204
+ description: "Grants write access to account API Tokens",
231205
+ scopes: ["com.cloudflare.api.account"]
231206
+ },
231207
+ {
231208
+ id: "b89a480218d04ceb98b4fe57ca29dc1f",
231209
+ name: "Account Analytics Read",
231210
+ description: "Grants read access to analytics",
231211
+ scopes: ["com.cloudflare.api.account"]
231212
+ },
231213
+ {
231214
+ id: "c57ea647ef654b47bc8944fa739b570d",
231215
+ name: "Account Custom Pages Read",
231216
+ description: "Grants read access to account custom pages",
231217
+ scopes: ["com.cloudflare.api.account"]
231218
+ },
231219
+ {
231220
+ id: "8a9d35a7c8504208ad5c3e8d58e6162d",
231221
+ name: "Account Custom Pages Write",
231222
+ description: "Grants write access to account custom pages",
231223
+ scopes: ["com.cloudflare.api.account"]
231224
+ },
231225
+ {
231226
+ id: "cfa964bcdafc4ab39704e7476154e41b",
231227
+ name: "Account DNS Settings Read",
231228
+ description: "Grants read access to Account DNS Settings",
231229
+ scopes: ["com.cloudflare.api.account"]
231230
+ },
231231
+ {
231232
+ id: "dc44f27f48ab405392a5f69fe822bd01",
231233
+ name: "Account DNS Settings Write",
231234
+ description: "Grants write access to Account DNS Settings",
231235
+ scopes: ["com.cloudflare.api.account"]
231236
+ },
231237
+ {
231238
+ id: "de7a688cc47d43bd9ea700b467a09c96",
231239
+ name: "Account Firewall Access Rules Read",
231240
+ description: "Grants read access to account firewall access rules",
231241
+ scopes: ["com.cloudflare.api.account"]
231242
+ },
231243
+ {
231244
+ id: "a416acf9ef5a4af19fb11ed3b96b1fe6",
231245
+ name: "Account Firewall Access Rules Write",
231246
+ description: "Grants write access to account firewall access rules",
231247
+ scopes: ["com.cloudflare.api.account"]
231248
+ },
231249
+ {
231250
+ id: "4f1071168de8466e9808de86febfc516",
231251
+ name: "Account Rule Lists Read",
231252
+ description: "Grants read access to Rule Lists",
231253
+ scopes: ["com.cloudflare.api.account"]
231254
+ },
231255
+ {
231256
+ id: "2edbf20661fd4661b0fe10e9e12f485c",
231257
+ name: "Account Rule Lists Write",
231258
+ description: "Grants write access to Rule Lists",
231259
+ scopes: ["com.cloudflare.api.account"]
231260
+ },
231261
+ {
231262
+ id: "fb39996ee9044d2a8725921e02744b39",
231263
+ name: "Account Rulesets Read",
231264
+ description: "Grants read access to Account Rulesets",
231265
+ scopes: ["com.cloudflare.api.account"]
231266
+ },
231267
+ {
231268
+ id: "56907406c3d548ed902070ec4df0e328",
231269
+ name: "Account Rulesets Write",
231270
+ description: "Grants write access to Account Rulesets",
231271
+ scopes: ["com.cloudflare.api.account"]
231272
+ },
231273
+ {
231274
+ id: "ece81d7757ff406cad61f221a4920d55",
231275
+ name: "Account Security Center Insights Read",
231276
+ description: "Grants read access to Security Center Insights",
231277
+ scopes: ["com.cloudflare.api.account"]
231278
+ },
231279
+ {
231280
+ id: "cfa2e2893226455c9b945914969dff7c",
231281
+ name: "Account Security Center Insights Write",
231282
+ description: "Grants write access to Security Center Insights",
231283
+ scopes: ["com.cloudflare.api.account"]
231284
+ },
231285
+ {
231286
+ id: "c1fde68c7bcc44588cbb6ddbc16d6480",
231287
+ name: "Account Settings Read",
231288
+ description: "Grants read access to Account resources, account membership, and account level features",
231289
+ scopes: ["com.cloudflare.api.account"]
231290
+ },
231291
+ {
231292
+ id: "1af1fa2adc104452b74a9a3364202f20",
231293
+ name: "Account Settings Write",
231294
+ description: "Grants write access to Account resources, account membership, and account level features",
231295
+ scopes: ["com.cloudflare.api.account"]
231296
+ },
231297
+ {
231298
+ id: "56b2af4817c84ad99187911dc3986c23",
231299
+ name: "Account WAF Read",
231300
+ description: "Grants read access to Account WAF",
231301
+ scopes: ["com.cloudflare.api.account"]
231302
+ },
231303
+ {
231304
+ id: "cde8c82463b6414ca06e46b9633f52a6",
231305
+ name: "Account WAF Write",
231306
+ description: "grants write access to account waf",
231307
+ scopes: ["com.cloudflare.api.account"]
231308
+ },
231309
+ {
231310
+ id: "3e4e20ee40b9475dae22201c468fdb70",
231311
+ name: "Account Waiting Rooms Read",
231312
+ description: "Grants read access to Waiting Rooms\n",
231313
+ scopes: ["com.cloudflare.api.account"]
231314
+ },
231315
+ {
231316
+ id: "a7a233f9604845c787d4c8c39ac09c21",
231317
+ name: "Account: SSL and Certificates Read",
231318
+ description: "Grants read access to SSL MTLS certificates or Certificate Store",
231319
+ scopes: ["com.cloudflare.api.account"]
231320
+ },
231321
+ {
231322
+ id: "db37e5f1cb1a4e1aabaef8deaea43575",
231323
+ name: "Account: SSL and Certificates Write",
231324
+ description: "Grants read and write access to SSL MTLS certificates or Certificate Store",
231325
+ scopes: ["com.cloudflare.api.account"]
231326
+ },
231327
+ {
231328
+ id: "d07270cea5484b08ad6440c985af2148",
231329
+ name: "Address Maps Read",
231330
+ description: "Grants read access to Address Maps",
231331
+ scopes: ["com.cloudflare.api.account"]
231332
+ },
231333
+ {
231334
+ id: "6ffe7f4299db4d4cb54f64e0eb12a456",
231335
+ name: "Address Maps Write",
231336
+ description: "Grants write access to Address Maps",
231337
+ scopes: ["com.cloudflare.api.account"]
231338
+ },
231339
+ {
231340
+ id: "151803815e4f47de854c2fb7f8284d57",
231341
+ name: "Agents Gateway Read",
231342
+ description: "Grants access to reading Agents Gateway",
231343
+ scopes: ["com.cloudflare.api.account"]
231344
+ },
231345
+ {
231346
+ id: "82748b814dcd46b9b3e66b8151ba5e95",
231347
+ name: "Agents Gateway Run",
231348
+ description: "Grants access to running Agents Gateway",
231349
+ scopes: ["com.cloudflare.api.account"]
231350
+ },
231351
+ {
231352
+ id: "e84fd345697c4036a14e7810da036e1a",
231353
+ name: "Agents Gateway Write",
231354
+ description: "Grants access to reading and editing Agents Gateway",
231355
+ scopes: ["com.cloudflare.api.account"]
231356
+ },
231357
+ {
231358
+ id: "f3604047d46144d2a3e9cf4ac99d7f16",
231359
+ name: "Allow Request Tracer Read",
231360
+ description: "Allows read access to request tracer API",
231361
+ scopes: ["com.cloudflare.api.account"]
231362
+ },
231363
+ {
231364
+ id: "9c88f9c5bce24ce7af9a958ba9c504db",
231365
+ name: "Analytics Read",
231366
+ description: "Grants read access to analytics",
231367
+ scopes: ["com.cloudflare.api.account.zone"]
231368
+ },
231369
+ {
231370
+ id: "d79c5e2a405b4516a322432287d40c31",
231371
+ name: "Application Security Reports Read",
231372
+ description: "Can read Application Security Reports",
231373
+ scopes: ["com.cloudflare.api.account"]
231374
+ },
231375
+ {
231376
+ id: "094547ab6e77498c8c4dfa87fadd5c51",
231377
+ name: "Apps Write",
231378
+ description: "Grants full access to Cloudflare Apps",
231379
+ scopes: ["com.cloudflare.api.account.zone"]
231380
+ },
231381
+ {
231382
+ id: "d7887c7a417e4cf2a69f1d01c1a1dc3b",
231383
+ name: "Auto Rag Read",
231384
+ description: "Grants access to reading data from Auto Rag",
231385
+ scopes: ["com.cloudflare.api.account"]
231386
+ },
231387
+ {
231388
+ id: "7fb8d27511b34d02994d005b520b679f",
231389
+ name: "Auto Rag Write",
231390
+ description: "Grants access to reading and writing data from Auto Rag",
231391
+ scopes: ["com.cloudflare.api.account"]
231392
+ },
231393
+ {
231394
+ id: "234108c786084936a381bb19b7f4ea65",
231395
+ name: "Auto Rag Write Run Engine",
231396
+ description: "Grants access to run Auto RAG engine",
231397
+ scopes: ["com.cloudflare.api.account"]
231398
+ },
231399
+ {
231400
+ id: "7cf72faf220841aabcfdfab81c43c4f6",
231401
+ name: "Billing Read",
231402
+ description: "Grants read access to billing profile, subscriptions, usage data and access to fetch invoices and entitlements",
231403
+ scopes: ["com.cloudflare.api.account"]
231404
+ },
231405
+ {
231406
+ id: "6c80e02421494afc9ae14414ed442632",
231407
+ name: "Billing Write",
231408
+ description: "Grants write access to billing profile, subscriptions, and access to fetch invoices and entitlements",
231409
+ scopes: ["com.cloudflare.api.account"]
231410
+ },
231411
+ {
231412
+ id: "51be404b56244056868226263a44a632",
231413
+ name: "Bot Management Feedback Report Read",
231414
+ description: "Grants read access to BOT Management Feedback Reports",
231415
+ scopes: ["com.cloudflare.api.account.zone"]
231416
+ },
231417
+ {
231418
+ id: "2002629aaff0454085bf5a201ed70a72",
231419
+ name: "Bot Management Feedback Report Write",
231420
+ description: "Grants write access to BOT Management Feedback Reports",
231421
+ scopes: ["com.cloudflare.api.account.zone"]
231422
+ },
231423
+ {
231424
+ id: "07bea2220b2343fa9fae15656c0d8e88",
231425
+ name: "Bot Management Read",
231426
+ description: "Grants read access to BOT Management",
231427
+ scopes: ["com.cloudflare.api.account.zone"]
231428
+ },
231429
+ {
231430
+ id: "3b94c49258ec4573b06d51d99b6416c0",
231431
+ name: "Bot Management Write",
231432
+ description: "Grants write access to BOT Management",
231433
+ scopes: ["com.cloudflare.api.account.zone"]
231434
+ },
231435
+ {
231436
+ id: "374b03fa229f4eb6b011bb1cd7f235ee",
231437
+ name: "Browser Rendering Read",
231438
+ description: "Grants read access to Browser Rendering API",
231439
+ scopes: ["com.cloudflare.api.account"]
231440
+ },
231441
+ {
231442
+ id: "adddda876faa4a0590f1b23a038976e4",
231443
+ name: "Browser Rendering Write",
231444
+ description: "Grants write access to Browser Rendering API",
231445
+ scopes: ["com.cloudflare.api.account"]
231446
+ },
231447
+ {
231448
+ id: "da5fe84b9c5446a0a5955b673fafa288",
231449
+ name: "CASB Read",
231450
+ description: "Grants read access to Cloudflare CASB",
231451
+ scopes: ["com.cloudflare.api.account"]
231452
+ },
231453
+ {
231454
+ id: "b9ed086b20864ad89c5aac24cdd02365",
231455
+ name: "CASB Write",
231456
+ description: "Grants write access to Cloudflare CASB",
231457
+ scopes: ["com.cloudflare.api.account"]
231458
+ },
231459
+ {
231460
+ id: "47b936e2027140c0a474cac8887b8c29",
231461
+ name: "CF Agents Read",
231462
+ description: "Grants read access to CF Agents",
231463
+ scopes: ["com.cloudflare.api.account"]
231464
+ },
231465
+ {
231466
+ id: "cb142f7fbc3540f0bade0cbe75f606dc",
231467
+ name: "CF Agents Write",
231468
+ description: "Grants write access to CF Agents",
231469
+ scopes: ["com.cloudflare.api.account"]
231470
+ },
231471
+ {
231472
+ id: "e17beae8b8cb423a99b1730f21238bed",
231473
+ name: "Cache Purge",
231474
+ description: "Grants access to purge cache",
231475
+ scopes: ["com.cloudflare.api.account.zone"]
231476
+ },
231477
+ {
231478
+ id: "3245da1cf36c45c3847bb9b483c62f97",
231479
+ name: "Cache Settings Read",
231480
+ description: "Grants read access to cache settings phase",
231481
+ scopes: ["com.cloudflare.api.account.zone"]
231482
+ },
231483
+ {
231484
+ id: "9ff81cbbe65c400b97d92c3c1033cab6",
231485
+ name: "Cache Settings Write",
231486
+ description: "Grants write access to cache settings phase",
231487
+ scopes: ["com.cloudflare.api.account.zone"]
231488
+ },
231489
+ {
231490
+ id: "686ab9a8b3854f25a1474f302d14b68d",
231491
+ name: "Calls Read",
231492
+ description: "Grants read access to Calls configuration",
231493
+ scopes: ["com.cloudflare.api.account"]
231494
+ },
231495
+ {
231496
+ id: "b711942448db4b0aace44d1312f9fdb0",
231497
+ name: "Calls Write",
231498
+ description: "Grants read/write access to Calls configuration",
231499
+ scopes: ["com.cloudflare.api.account"]
231500
+ },
231501
+ {
231502
+ id: "9ade9cfc8f8949bcb2371be2f0ec8db1",
231503
+ name: "China Network Steering Read",
231504
+ description: "Grants read access to China Network Steering",
231505
+ scopes: ["com.cloudflare.api.account"]
231506
+ },
231507
+ {
231508
+ id: "c6f6338ceae545d0b90daaa1fed855e6",
231509
+ name: "China Network Steering Write",
231510
+ description: "Grants write access to China Network Steering",
231511
+ scopes: ["com.cloudflare.api.account"]
231512
+ },
231513
+ {
231514
+ id: "0661ff47aa3a4786beab3b8128e0cd24",
231515
+ name: "Cloud Connector Read",
231516
+ description: "Grants read access to Cloud Connector",
231517
+ scopes: ["com.cloudflare.api.account.zone"]
231518
+ },
231519
+ {
231520
+ id: "eafd71286d0e4fdca404a7b4d203c5c9",
231521
+ name: "Cloud Connector Write",
231522
+ description: "Grants write access to Cloud Connector",
231523
+ scopes: ["com.cloudflare.api.account.zone"]
231524
+ },
231525
+ {
231526
+ id: "9e5a9912439940fca5898b5b8dc6d1a5",
231527
+ name: "Cloud Email Security: Read",
231528
+ description: "Grants read access to Cloudflare Cloud Email Security",
231529
+ scopes: ["com.cloudflare.api.account"]
231530
+ },
231531
+ {
231532
+ id: "a3567c13e074447fb101babac3463566",
231533
+ name: "Cloud Email Security: Write",
231534
+ description: "Grants write access to Cloudflare Cloud Email Security",
231535
+ scopes: ["com.cloudflare.api.account"]
231536
+ },
231537
+ {
231538
+ id: "65ec50cbde3d4c838bbe7500024d5745",
231539
+ name: "Cloudchamber Read",
231540
+ description: "Grants read access to Cloudchamber deployments",
231541
+ scopes: ["com.cloudflare.api.account"]
231542
+ },
231543
+ {
231544
+ id: "26ce6c7d18a346528e7b905d5e269866",
231545
+ name: "Cloudchamber Write",
231546
+ description: "Grants write access to Cloudchamber deployments",
231547
+ scopes: ["com.cloudflare.api.account"]
231548
+ },
231549
+ {
231550
+ id: "00ec19a0d4fa4e4aae23b50bf04c0630",
231551
+ name: "Cloudflare CDS Compute Account Read",
231552
+ description: "Grants read access to Cloudflare CDS compute account resources",
231553
+ scopes: ["com.cloudflare.api.account"]
231554
+ },
231555
+ {
231556
+ id: "9bf884ba0de445dab37ea4a3e1a2c9f1",
231557
+ name: "Cloudflare CDS Compute Account Write",
231558
+ description: "Grants write access to Cloudflare CDS compute account resources",
231559
+ scopes: ["com.cloudflare.api.account"]
231560
+ },
231561
+ {
231562
+ id: "3a1e1ef09dd34271bb44fc4c6a419952",
231563
+ name: "Cloudflare DEX",
231564
+ description: "Grants access to Cloudflare DEX",
231565
+ scopes: ["com.cloudflare.api.account"]
231566
+ },
231567
+ {
231568
+ id: "3b376e0aa52c41cbb6afc9cab945afa8",
231569
+ name: "Cloudflare DEX Read",
231570
+ description: "Grants read access to Cloudflare DEX",
231571
+ scopes: ["com.cloudflare.api.account"]
231572
+ },
231573
+ {
231574
+ id: "92c8dcd551cc42a6a57a54e8f8d3f3e3",
231575
+ name: "Cloudflare DEX Write",
231576
+ description: "Grants full access to Cloudflare DEX",
231577
+ scopes: ["com.cloudflare.api.account"]
231578
+ },
231579
+ {
231580
+ id: "1cd960c063a0448481343372c963d8c7",
231581
+ name: "Cloudflare One Connector: WARP Read",
231582
+ description: "Grants read access to WARP Connectors",
231583
+ scopes: ["com.cloudflare.api.account"]
231584
+ },
231585
+ {
231586
+ id: "5b5c774a5d174ca88d046c8889648b3f",
231587
+ name: "Cloudflare One Connector: WARP Write",
231588
+ description: "Grants write access to WARP Connectors",
231589
+ scopes: ["com.cloudflare.api.account"]
231590
+ },
231591
+ {
231592
+ id: "c1968d31028d4239976ec3bc4750bbf6",
231593
+ name: "Cloudflare One Connector: cloudflared Read",
231594
+ description: "Grants read access to cloudflared connectors",
231595
+ scopes: ["com.cloudflare.api.account"]
231596
+ },
231597
+ {
231598
+ id: "037b9e348b3b42d4b46ea2fcb1cfb3e7",
231599
+ name: "Cloudflare One Connector: cloudflared Write",
231600
+ description: "Grants write access to cloudflared connectors",
231601
+ scopes: ["com.cloudflare.api.account"]
231602
+ },
231603
+ {
231604
+ id: "07cf1c1952a84b13b2cd542f3d2f29ab",
231605
+ name: "Cloudflare One Connectors Read",
231606
+ description: "Grants read access to Cloudflare One connectors",
231607
+ scopes: ["com.cloudflare.api.account"]
231608
+ },
231609
+ {
231610
+ id: "a7030c9c98d544e092d8b099fabb1f06",
231611
+ name: "Cloudflare One Connectors Write",
231612
+ description: "Grants write access to Cloudflare One connectors",
231613
+ scopes: ["com.cloudflare.api.account"]
231614
+ },
231615
+ {
231616
+ id: "4f1276d1e7e34c32a5012bbe02ece86d",
231617
+ name: "Cloudflare One Networks Read",
231618
+ description: "Grants read access to Cloudflare One routes, subnets, and virtual networks",
231619
+ scopes: ["com.cloudflare.api.account"]
231620
+ },
231621
+ {
231622
+ id: "e2980d9241cf4939bbbd74fdc43b9651",
231623
+ name: "Cloudflare One Networks Write",
231624
+ description: "Grants write access to Cloudflare One routes, subnets, and virtual networks",
231625
+ scopes: ["com.cloudflare.api.account"]
231626
+ },
231627
+ {
231628
+ id: "efea2ab8357b47888938f101ae5e053f",
231629
+ name: "Cloudflare Tunnel Read",
231630
+ description: "Grants access to view Cloudflare Tunnels",
231631
+ scopes: ["com.cloudflare.api.account"]
231632
+ },
231633
+ {
231634
+ id: "c07321b023e944ff818fec44d8203567",
231635
+ name: "Cloudflare Tunnel Write",
231636
+ description: "Grants access to create and delete Cloudflare Tunnels",
231637
+ scopes: ["com.cloudflare.api.account"]
231638
+ },
231639
+ {
231640
+ id: "e0e0edfbe8834df3b51424ba4fb7bb5f",
231641
+ name: "Cloudflare Zero Trust Secure DNS Locations Write",
231642
+ description: "Grants access to create and edit secure DNS Locations only in teams (Zero Trust)",
231643
+ scopes: ["com.cloudflare.api.account"]
231644
+ },
231645
+ {
231646
+ id: "cf9353ed7978436e8fb20c03fce26449",
231647
+ name: "Cloudforce One Read",
231648
+ description: "Grants read access to Cloudforce One",
231649
+ scopes: ["com.cloudflare.api.account"]
231650
+ },
231651
+ {
231652
+ id: "677767156f294485b497a8f103172e7d",
231653
+ name: "Cloudforce One Write",
231654
+ description: "Grants read access to Cloudforce One",
231655
+ scopes: ["com.cloudflare.api.account"]
231656
+ },
231657
+ {
231658
+ id: "20e5ea084b2f491c86b8d8d90abff905",
231659
+ name: "Config Settings Read",
231660
+ description: "Grants read access to config settings phase",
231661
+ scopes: ["com.cloudflare.api.account.zone"]
231662
+ },
231663
+ {
231664
+ id: "06f0526e6e464647bd61b63c54935235",
231665
+ name: "Config Settings Write",
231666
+ description: "Grants write access to config settings phase",
231667
+ scopes: ["com.cloudflare.api.account.zone"]
231668
+ },
231669
+ {
231670
+ id: "77efc2c0724d4c4eb94bfd9656247130",
231671
+ name: "Connectivity Directory Admin",
231672
+ description: "Can view, edit, create, and delete Connectivity Directory Services, including the ability to create Services that bind to Cloudflare Tunnel",
231673
+ scopes: ["com.cloudflare.api.account"]
231674
+ },
231675
+ {
231676
+ id: "95fa65ba51fd49c4a6ac4c8c78ebac93",
231677
+ name: "Connectivity Directory Bind",
231678
+ description: "Can read, list, and bind to Connectivity Directory services, as well as read and list Cloudflare Tunnels",
231679
+ scopes: ["com.cloudflare.api.account"]
231680
+ },
231681
+ {
231682
+ id: "8764961c1edb4274be129d630b0b2671",
231683
+ name: "Connectivity Directory Read",
231684
+ description: "Can view Connectivity Directory services and Cloudflare Tunnels",
231685
+ scopes: ["com.cloudflare.api.account"]
231686
+ },
231687
+ {
231688
+ id: "eeffa4d16812430cb4a0ae9e7f46fc24",
231689
+ name: "Constellation Read",
231690
+ description: "Grants read access to Constellation configuration and models",
231691
+ scopes: ["com.cloudflare.api.account"]
231692
+ },
231693
+ {
231694
+ id: "7c81856725af47ce89a790d5fb36f362",
231695
+ name: "Constellation Write",
231696
+ description: "Grants write access to Constellation configuration and models",
231697
+ scopes: ["com.cloudflare.api.account"]
231698
+ },
231699
+ {
231700
+ id: "a2b55cd504d44ef18b7ba6a7f2b8fbb1",
231701
+ name: "Custom Errors Read",
231702
+ description: "Grants read access to custom errors phase",
231703
+ scopes: ["com.cloudflare.api.account.zone"]
231704
+ },
231705
+ {
231706
+ id: "a9dba34cf5814d4ab2007b4ada0045bd",
231707
+ name: "Custom Errors Write",
231708
+ description: "Grants write access to custom errors phase",
231709
+ scopes: ["com.cloudflare.api.account.zone"]
231710
+ },
231711
+ {
231712
+ id: "a2431ca73b7d41f99c53303027392586",
231713
+ name: "Custom Pages Read",
231714
+ description: "Grants read access to custom pages",
231715
+ scopes: ["com.cloudflare.api.account.zone"]
231716
+ },
231717
+ {
231718
+ id: "c244ec076974430a88bda1cdd992d0d9",
231719
+ name: "Custom Pages Write",
231720
+ description: "Grants write access to custom pages",
231721
+ scopes: ["com.cloudflare.api.account.zone"]
231722
+ },
231723
+ {
231724
+ id: "192192df92ee43ac90f2aeeffce67e35",
231725
+ name: "D1 Read",
231726
+ description: "Grants read access to D1 configuration and SQL queries",
231727
+ scopes: ["com.cloudflare.api.account"]
231728
+ },
231729
+ {
231730
+ id: "09b2857d1c31407795e75e3fed8617a1",
231731
+ name: "D1 Write",
231732
+ description: "Grants write access to D1 configuration and SQL queries",
231733
+ scopes: ["com.cloudflare.api.account"]
231734
+ },
231735
+ {
231736
+ id: "dee7c22a57674abea8f942110b094717",
231737
+ name: "DDoS Botnet Feed Read",
231738
+ description: "Grants read access to Botnet Feed reports",
231739
+ scopes: ["com.cloudflare.api.account"]
231740
+ },
231741
+ {
231742
+ id: "0caa90c9b186447397c8b00358d34a76",
231743
+ name: "DDoS Botnet Feed Write",
231744
+ description: "Grants write access to Botnet Feed configuration",
231745
+ scopes: ["com.cloudflare.api.account"]
231746
+ },
231747
+ {
231748
+ id: "af1c363c35ba45b9a8c682ae50eb3f99",
231749
+ name: "DDoS Protection Read",
231750
+ description: "Grants read access to DDoS protection",
231751
+ scopes: ["com.cloudflare.api.account"]
231752
+ },
231753
+ {
231754
+ id: "d44ed14bcc4340b194d3824d60edad3f",
231755
+ name: "DDoS Protection Write",
231756
+ description: "Grants write access to DDoS protection",
231757
+ scopes: ["com.cloudflare.api.account"]
231758
+ },
231759
+ {
231760
+ id: "5f48a472240a4b489a21d43bd19a06e1",
231761
+ name: "DNS Firewall Read",
231762
+ description: "Grants read access to DNS Firewall",
231763
+ scopes: ["com.cloudflare.api.account"]
231764
+ },
231765
+ {
231766
+ id: "da6d2d6f2ec8442eaadda60d13f42bca",
231767
+ name: "DNS Firewall Write",
231768
+ description: "Grants write access to DNS Firewall",
231769
+ scopes: ["com.cloudflare.api.account"]
231770
+ },
231771
+ {
231772
+ id: "82e64a83756745bbbb1c9c2701bf816b",
231773
+ name: "DNS Read",
231774
+ description: "Grants read access to DNS",
231775
+ scopes: ["com.cloudflare.api.account.zone"]
231776
+ },
231777
+ {
231778
+ id: "95d69e8d6d5144bfb0923667355d9f11",
231779
+ name: "DNS View Read",
231780
+ description: "Grants read access to DNS Views",
231781
+ scopes: ["com.cloudflare.api.account"]
231782
+ },
231783
+ {
231784
+ id: "5b7aedd821a548b9bf5a2acabbce98c7",
231785
+ name: "DNS View Write",
231786
+ description: "Grants write access to DNS Views",
231787
+ scopes: ["com.cloudflare.api.account"]
231788
+ },
231789
+ {
231790
+ id: "4755a26eedb94da69e1066d98aa820be",
231791
+ name: "DNS Write",
231792
+ description: "Grants write access to DNS",
231793
+ scopes: ["com.cloudflare.api.account.zone"]
231794
+ },
231795
+ {
231796
+ id: "e199d584e69344eba202452019deafe3",
231797
+ name: "Disable ESC Read",
231798
+ description: "Grants read access to Cloudflare Disable ESC",
231799
+ scopes: ["com.cloudflare.api.account.zone"]
231800
+ },
231801
+ {
231802
+ id: "29eefa0805f94fdfae2b058b5b52f319",
231803
+ name: "Disable ESC Read",
231804
+ description: "Grants read access to Cloudflare Disable ESC",
231805
+ scopes: ["com.cloudflare.api.account"]
231806
+ },
231807
+ {
231808
+ id: "9110d9dd749e464fb9f3961a2064efc5",
231809
+ name: "Disable ESC Write",
231810
+ description: "Grants write access to Cloudflare Disable ESC",
231811
+ scopes: ["com.cloudflare.api.account.zone"]
231812
+ },
231813
+ {
231814
+ id: "18555e39c5ba40d284dde87eda845a90",
231815
+ name: "Disable ESC Write",
231816
+ description: "Grants write access to Cloudflare Disable ESC",
231817
+ scopes: ["com.cloudflare.api.account"]
231818
+ },
231819
+ {
231820
+ id: "f0235726de25444a84f704b7c93afadf",
231821
+ name: "Domain API Gateway",
231822
+ description: "Grants full access to API-Gateway Management (including API Shield)",
231823
+ scopes: ["com.cloudflare.api.account.zone"]
231824
+ },
231825
+ {
231826
+ id: "6ced5d0d69b1422396909a62c38ab41b",
231827
+ name: "Domain API Gateway Read",
231828
+ description: "Grants read access to API-Gateway Management (including API Shield)",
231829
+ scopes: ["com.cloudflare.api.account.zone"]
231830
+ },
231831
+ {
231832
+ id: "6134079371904d8ebd77931c8ca07e50",
231833
+ name: "Domain Page Shield",
231834
+ description: "Grants write access to Page Shield",
231835
+ scopes: ["com.cloudflare.api.account.zone"]
231836
+ },
231837
+ {
231838
+ id: "945315185a8f40518bf3e9e6d0bee126",
231839
+ name: "Domain Page Shield Read",
231840
+ description: "Grants read access to Page Shield",
231841
+ scopes: ["com.cloudflare.api.account.zone"]
231842
+ },
231843
+ {
231844
+ id: "d8e12db741544d1586ec1d6f5d3c7786",
231845
+ name: "Dynamic URL Redirects Read",
231846
+ description: "Grants read access to Dynamic URL Redirect",
231847
+ scopes: ["com.cloudflare.api.account.zone"]
231848
+ },
231849
+ {
231850
+ id: "74e1036f577a48528b78d2413b40538d",
231851
+ name: "Dynamic URL Redirects Write",
231852
+ description: "Grants write access to Dynamic URL Redirect",
231853
+ scopes: ["com.cloudflare.api.account.zone"]
231854
+ },
231855
+ {
231856
+ id: "5272e56105d04b5897466995b9bd4643",
231857
+ name: "Email Routing Addresses Read",
231858
+ description: "Grants read access to Email Routing target addresses\n",
231859
+ scopes: ["com.cloudflare.api.account"]
231860
+ },
231861
+ {
231862
+ id: "e4589eb09e63436686cd64252a3aebeb",
231863
+ name: "Email Routing Addresses Write",
231864
+ description: "Grants full access to Email Routing target addresses\n",
231865
+ scopes: ["com.cloudflare.api.account"]
231866
+ },
231867
+ {
231868
+ id: "1b600d9d8062443e986a973f097e728a",
231869
+ name: "Email Routing Rules Read",
231870
+ description: "Grants read access to Email Routing rules\n",
231871
+ scopes: ["com.cloudflare.api.account.zone"]
231872
+ },
231873
+ {
231874
+ id: "79b3ec0d10ce4148a8f8bdc0cc5f97f2",
231875
+ name: "Email Routing Rules Write",
231876
+ description: "Grants full access to Email Routing rules\n",
231877
+ scopes: ["com.cloudflare.api.account.zone"]
231878
+ },
231879
+ {
231880
+ id: "1047880d37b649b49db4a504a245896f",
231881
+ name: "Email Security DMARC Reports Read",
231882
+ description: "Grants read access to Email Security dmarc reports\n",
231883
+ scopes: ["com.cloudflare.api.account.zone"]
231884
+ },
231885
+ {
231886
+ id: "2eee71c9364c4cacaf469e8370f09056",
231887
+ name: "Email Security DMARC Reports Write",
231888
+ description: "Grants full access to Email Security dmarc reports\n",
231889
+ scopes: ["com.cloudflare.api.account.zone"]
231890
+ },
231891
+ {
231892
+ id: "2d5b4b1f6c89487bb7184c2c1dcd3bf1",
231893
+ name: "Email Sending Read",
231894
+ description: "Grants access to reading data from Email Sending",
231895
+ scopes: ["com.cloudflare.api.account"]
231896
+ },
231897
+ {
231898
+ id: "5df633d6b41c42bcaf5b4a62b9d14b64",
231899
+ name: "Email Sending Write",
231900
+ description: "Grants access to reading and writing data from Email Sending",
231901
+ scopes: ["com.cloudflare.api.account"]
231902
+ },
231903
+ {
231904
+ id: "4ec32dfcb35641c5bb32d5ef1ab963b4",
231905
+ name: "Firewall Services Read",
231906
+ description: "Grants read access to Firewall resources",
231907
+ scopes: ["com.cloudflare.api.account.zone"]
231908
+ },
231909
+ {
231910
+ id: "43137f8d07884d3198dc0ee77ca6e79b",
231911
+ name: "Firewall Services Write",
231912
+ description: "Grants write access to Firewall resources",
231913
+ scopes: ["com.cloudflare.api.account.zone"]
231914
+ },
231915
+ {
231916
+ id: "a2c61201f92a4e06a901f156795388a9",
231917
+ name: "Firewall for AI Read",
231918
+ description: "Grants read access to Firewall for AI settings.",
231919
+ scopes: ["com.cloudflare.api.account.zone"]
231920
+ },
231921
+ {
231922
+ id: "5af6a2f284144e95a89840408439adef",
231923
+ name: "Firewall for AI Write",
231924
+ description: "Grants full access to Firewall for AI settings.",
231925
+ scopes: ["com.cloudflare.api.account.zone"]
231926
+ },
231927
+ {
231928
+ id: "0d24e472a9654642a97df736e8b0d980",
231929
+ name: "Fraud Detection Read",
231930
+ description: "Grants read access to Fraud Detection",
231931
+ scopes: ["com.cloudflare.api.account.zone"]
231932
+ },
231933
+ {
231934
+ id: "685f9605fd4e44ec937b6a0db658e629",
231935
+ name: "Fraud Detection Write",
231936
+ description: "Grants write access to Fraud Detection",
231937
+ scopes: ["com.cloudflare.api.account.zone"]
231938
+ },
231939
+ {
231940
+ id: "6b60a5a87cae475da7e76e77e4209dd5",
231941
+ name: "HTTP Applications Read",
231942
+ description: "Grants read-only access to HTTP Applications",
231943
+ scopes: ["com.cloudflare.api.account"]
231944
+ },
231945
+ {
231946
+ id: "4736c02a9f224c8196ae5b127beae78c",
231947
+ name: "HTTP Applications Write",
231948
+ description: "Grants full access to HTTP Applications",
231949
+ scopes: ["com.cloudflare.api.account"]
231950
+ },
231951
+ {
231952
+ id: "c49f8d15f9f44885a544d945ef5aa6ae",
231953
+ name: "HTTP DDoS Managed Ruleset Read",
231954
+ description: "Grants read access to HTTP DDoS Managed Ruleset",
231955
+ scopes: ["com.cloudflare.api.account.zone"]
231956
+ },
231957
+ {
231958
+ id: "b88a3aa889474524bccea5cf18f122bf",
231959
+ name: "HTTP DDoS Managed Ruleset Write",
231960
+ description: "Grants write access to HTTP DDoS Managed Ruleset",
231961
+ scopes: ["com.cloudflare.api.account.zone"]
231962
+ },
231963
+ {
231964
+ id: "fac65912d42144aa86b7dd33281bf79e",
231965
+ name: "Health Checks Read",
231966
+ description: "Grants read access to Health Checks",
231967
+ scopes: ["com.cloudflare.api.account.zone"]
231968
+ },
231969
+ {
231970
+ id: "e0dc25a0fbdf4286b1ea100e3256b0e3",
231971
+ name: "Health Checks Write",
231972
+ description: "Grants write access to Health Checks",
231973
+ scopes: ["com.cloudflare.api.account.zone"]
231974
+ },
231975
+ {
231976
+ id: "4d62ccf834df44808bc9283d65c4e4e9",
231977
+ name: "Hyperdrive Read",
231978
+ description: "Grants read access to Hyperdrive configuration",
231979
+ scopes: ["com.cloudflare.api.account"]
231980
+ },
231981
+ {
231982
+ id: "721b2f51fba74871bd361de65aeb7e03",
231983
+ name: "Hyperdrive Write",
231984
+ description: "Grants write access to Hyperdrive configuration",
231985
+ scopes: ["com.cloudflare.api.account"]
231986
+ },
231987
+ {
231988
+ id: "212c9ff247b9406d990c017482afb3a5",
231989
+ name: "IOT Read",
231990
+ description: "Grants read access to IOT devices",
231991
+ scopes: ["com.cloudflare.api.account"]
231992
+ },
231993
+ {
231994
+ id: "865ebd55bc6d4b109de6813eccfefd13",
231995
+ name: "IOT Write",
231996
+ description: "Grants full access to IOT devices",
231997
+ scopes: ["com.cloudflare.api.account"]
231998
+ },
231999
+ {
232000
+ id: "e763fae6ee95443b8f56f19213c5f2a5",
232001
+ name: "IP Prefixes: BGP On Demand Read",
232002
+ description: "Grants access to read ip prefix bgp configuration",
232003
+ scopes: ["com.cloudflare.api.account"]
232004
+ },
232005
+ {
232006
+ id: "2ae23e4939d54074b7d252d27ce75a77",
232007
+ name: "IP Prefixes: BGP On Demand Write",
232008
+ description: "Grants access to read and change ip prefix bgp configuration",
232009
+ scopes: ["com.cloudflare.api.account"]
232010
+ },
232011
+ {
232012
+ id: "27beb7f8333b41e2b946f0e23cd8091e",
232013
+ name: "IP Prefixes: Read",
232014
+ description: "Grants access to read ip prefix settings",
232015
+ scopes: ["com.cloudflare.api.account"]
232016
+ },
232017
+ {
232018
+ id: "92b8234e99f64e05bbbc59e1dc0f76b6",
232019
+ name: "IP Prefixes: Write",
232020
+ description: "Grants access to read/write ip prefix settings",
232021
+ scopes: ["com.cloudflare.api.account"]
232022
+ },
232023
+ {
232024
+ id: "0cf6473ad41449e7b7b743d14fc20c60",
232025
+ name: "Images Read",
232026
+ description: "Grants read access to Images",
232027
+ scopes: ["com.cloudflare.api.account"]
232028
+ },
232029
+ {
232030
+ id: "618ec6c64a3a42f8b08bdcb147ded4e4",
232031
+ name: "Images Write",
232032
+ description: "Grants write access to upload Images",
232033
+ scopes: ["com.cloudflare.api.account"]
232034
+ },
232035
+ {
232036
+ id: "c6f97eeee13345db8cc00af0953a42de",
232037
+ name: "Integration Write",
232038
+ description: "Grants write access to integrations",
232039
+ scopes: ["com.cloudflare.api.account"]
232040
+ },
232041
+ {
232042
+ id: "df1577df30ee46268f9470952d7b0cdf",
232043
+ name: "Intel Read",
232044
+ description: "Grants read access to Intel API",
232045
+ scopes: ["com.cloudflare.api.account"]
232046
+ },
232047
+ {
232048
+ id: "92209474242d459690e2cdb1985eaa6c",
232049
+ name: "Intel Write",
232050
+ description: "Grants write access to Intel API",
232051
+ scopes: ["com.cloudflare.api.account"]
232052
+ },
232053
+ {
232054
+ id: "4657621393f94f83b8ef94adba382e48",
232055
+ name: "L4 DDoS Managed Ruleset Read",
232056
+ description: "Grants read access to L4 DDoS Managed Ruleset",
232057
+ scopes: ["com.cloudflare.api.account"]
232058
+ },
232059
+ {
232060
+ id: "7a4c3574054a4d0ba7c692893ba8bdd4",
232061
+ name: "L4 DDoS Managed Ruleset Write",
232062
+ description: "Grants write access to L4 DDoS Managed Ruleset",
232063
+ scopes: ["com.cloudflare.api.account"]
232064
+ },
232065
+ {
232066
+ id: "59059f0c977b44f8b1c18e0aaf91c369",
232067
+ name: "Load Balancers Account Read",
232068
+ description: "Grants read access to account load balancers and associated resources",
232069
+ scopes: ["com.cloudflare.api.account"]
232070
+ },
232071
+ {
232072
+ id: "419ec42810af4659ade77716dbe47bc6",
232073
+ name: "Load Balancers Account Write",
232074
+ description: "Grants write access to account load balancers and associated resources",
232075
+ scopes: ["com.cloudflare.api.account"]
232076
+ },
232077
+ {
232078
+ id: "e9a975f628014f1d85b723993116f7d5",
232079
+ name: "Load Balancers Read",
232080
+ description: "Grants read access to load balancers and associated resources",
232081
+ scopes: ["com.cloudflare.api.account.zone"]
232082
+ },
232083
+ {
232084
+ id: "6d7f2f5f5b1d4a0e9081fdc98d432fd1",
232085
+ name: "Load Balancers Write",
232086
+ description: "Grants write access to load balancers and associated resources",
232087
+ scopes: ["com.cloudflare.api.account.zone"]
232088
+ },
232089
+ {
232090
+ id: "9d24387c6e8544e2bc4024a03991339f",
232091
+ name: "Load Balancing: Monitors and Pools Read",
232092
+ description: "Grants read access to account level load balancer resources",
232093
+ scopes: ["com.cloudflare.api.account"]
232094
+ },
232095
+ {
232096
+ id: "d2a1802cc9a34e30852f8b33869b2f3c",
232097
+ name: "Load Balancing: Monitors and Pools Write",
232098
+ description: "Grants write access to account level load balancer resources",
232099
+ scopes: ["com.cloudflare.api.account"]
232100
+ },
232101
+ {
232102
+ id: "6a315a56f18441e59ed03352369ae956",
232103
+ name: "Logs Read",
232104
+ description: "Grants read access to logs and logpush jobs",
232105
+ scopes: ["com.cloudflare.api.account"]
232106
+ },
232107
+ {
232108
+ id: "c4a30cd58c5d42619c86a3c36c441e2d",
232109
+ name: "Logs Read",
232110
+ description: "Grants read access to logs and logpush jobs",
232111
+ scopes: ["com.cloudflare.api.account.zone"]
232112
+ },
232113
+ {
232114
+ id: "96163bd1b0784f62b3e44ed8c2ab1eb6",
232115
+ name: "Logs Write",
232116
+ description: "Grants write access to logpush jobs",
232117
+ scopes: ["com.cloudflare.api.account"]
232118
+ },
232119
+ {
232120
+ id: "3e0b5820118e47f3922f7c989e673882",
232121
+ name: "Logs Write",
232122
+ description: "Grants write access to logpush jobs",
232123
+ scopes: ["com.cloudflare.api.account.zone"]
232124
+ },
232125
+ {
232126
+ id: "b84a912ebb4a418888fec65f65c8ff3b",
232127
+ name: "MCP Portals Read",
232128
+ description: "Grants access to reading MCP Portals",
232129
+ scopes: ["com.cloudflare.api.account"]
232130
+ },
232131
+ {
232132
+ id: "db3d398df73946acb755c05b69edfc30",
232133
+ name: "MCP Portals Write",
232134
+ description: "Grants access to reading and editing MCP Portals",
232135
+ scopes: ["com.cloudflare.api.account"]
232136
+ },
232137
+ {
232138
+ id: "3a46c728a0a040d5a65cd8e2f3bc6935",
232139
+ name: "Magic Firewall Packet Captures - Read PCAPs API",
232140
+ description: "Grants read access to Packet Captures",
232141
+ scopes: ["com.cloudflare.api.account"]
232142
+ },
232143
+ {
232144
+ id: "4ea7d6421801452dbf07cef853a5ef39",
232145
+ name: "Magic Firewall Packet Captures - Write PCAPs API",
232146
+ description: "Grants write access to Packet Captures",
232147
+ scopes: ["com.cloudflare.api.account"]
232148
+ },
232149
+ {
232150
+ id: "02b71f12bb0748e9af8126494e181342",
232151
+ name: "Magic Firewall Read",
232152
+ description: "Grants read access to Magic Firewall",
232153
+ scopes: ["com.cloudflare.api.account"]
232154
+ },
232155
+ {
232156
+ id: "8bd1dac84d3d43e7bfb43145f010a15c",
232157
+ name: "Magic Firewall Write",
232158
+ description: "Grants write access to Magic Firewall",
232159
+ scopes: ["com.cloudflare.api.account"]
232160
+ },
232161
+ {
232162
+ id: "8e6ed1ef6e864ad0ae477ceffa5aa5eb",
232163
+ name: "Magic Network Monitoring Admin",
232164
+ description: "Grants admin access to MNM settings",
232165
+ scopes: ["com.cloudflare.api.account"]
232166
+ },
232167
+ {
232168
+ id: "3d85e9514f944bb4912c5871d92e5af5",
232169
+ name: "Magic Network Monitoring Config Read",
232170
+ description: "Grants read access to MNM config and rules",
232171
+ scopes: ["com.cloudflare.api.account"]
232172
+ },
232173
+ {
232174
+ id: "09c77baecb6341a2b1ca2c62b658d290",
232175
+ name: "Magic Network Monitoring Config Write",
232176
+ description: "Grants write access to MNM rules and update access to account settings",
232177
+ scopes: ["com.cloudflare.api.account"]
232178
+ },
232179
+ {
232180
+ id: "967ecf860a244dd1911a0331a0af582a",
232181
+ name: "Magic Transit Read",
232182
+ description: "Grants read access to Magic Transit",
232183
+ scopes: ["com.cloudflare.api.account"]
232184
+ },
232185
+ {
232186
+ id: "0bc09a3cd4b54605990df4e307f138e1",
232187
+ name: "Magic Transit Write",
232188
+ description: "Grants write access to Magic Transit",
232189
+ scopes: ["com.cloudflare.api.account"]
232190
+ },
232191
+ {
232192
+ id: "17fc856c4ebe49d4bb70f8e4744398cf",
232193
+ name: "Magic WAN Read",
232194
+ description: "Grants read access to Magic WAN",
232195
+ scopes: ["com.cloudflare.api.account"]
232196
+ },
232197
+ {
232198
+ id: "a1a7389ba7e441dba95852e10970fcc3",
232199
+ name: "Magic WAN Write",
232200
+ description: "Grants write access to Magic WAN",
232201
+ scopes: ["com.cloudflare.api.account"]
232202
+ },
232203
+ {
232204
+ id: "319f5059d33a410da0fac4d35a716157",
232205
+ name: "Managed headers Read",
232206
+ description: "Grants read access to managed headers phases",
232207
+ scopes: ["com.cloudflare.api.account.zone"]
232208
+ },
232209
+ {
232210
+ id: "0fd9d56bc2da43ad8ea22d610dd8cab1",
232211
+ name: "Managed headers Write",
232212
+ description: "Grants write access to managed headers phases",
232213
+ scopes: ["com.cloudflare.api.account.zone"]
232214
+ },
232215
+ {
232216
+ id: "429a068902904c5a9ed9fc267c67da9a",
232217
+ name: "Mass URL Redirects Read",
232218
+ description: "Grants read access to Mass URL Redirect",
232219
+ scopes: ["com.cloudflare.api.account"]
232220
+ },
232221
+ {
232222
+ id: "abe78e2276664f4db588c1f675a77486",
232223
+ name: "Mass URL Redirects Write",
232224
+ description: "Grants write access to Mass URL Redirect",
232225
+ scopes: ["com.cloudflare.api.account"]
232226
+ },
232227
+ {
232228
+ id: "ce18edbdcebf465e9d6d1d2fc80ffd42",
232229
+ name: "Notifications Read",
232230
+ description: "Grants read access to notifications",
232231
+ scopes: ["com.cloudflare.api.account"]
232232
+ },
232233
+ {
232234
+ id: "c3c847c5802d4ce3ba00e3e97b3c8555",
232235
+ name: "Notifications Write",
232236
+ description: "Grants write access to Notifications",
232237
+ scopes: ["com.cloudflare.api.account"]
232238
+ },
232239
+ {
232240
+ id: "7b32a91ece3140d4b3c2c56f23fc8e35",
232241
+ name: "Origin Read",
232242
+ description: "Grants read access to origin phase",
232243
+ scopes: ["com.cloudflare.api.account.zone"]
232244
+ },
232245
+ {
232246
+ id: "a4308c6855c84eb2873e01b6cc85cbb3",
232247
+ name: "Origin Write",
232248
+ description: "Grants write access to origin phase",
232249
+ scopes: ["com.cloudflare.api.account.zone"]
232250
+ },
232251
+ {
232252
+ id: "b415b70a4fd1412886f164451f20405c",
232253
+ name: "Page Rules Read",
232254
+ description: "Grants read access to Page Rules",
232255
+ scopes: ["com.cloudflare.api.account.zone"]
232256
+ },
232257
+ {
232258
+ id: "ed07f6c337da4195b4e72a1fb2c6bcae",
232259
+ name: "Page Rules Write",
232260
+ description: "Grants write access to Page Rules",
232261
+ scopes: ["com.cloudflare.api.account.zone"]
232262
+ },
232263
+ {
232264
+ id: "440e6958bcc947329f8d56328d7322ce",
232265
+ name: "Page Shield",
232266
+ description: "Grants write access to Page Shield",
232267
+ scopes: ["com.cloudflare.api.account"]
232268
+ },
232269
+ {
232270
+ id: "050531528b044d58bbb71666fef7c07c",
232271
+ name: "Page Shield Read",
232272
+ description: "Grants read access to Page Shield across the whole account",
232273
+ scopes: ["com.cloudflare.api.account"]
232274
+ },
232275
+ {
232276
+ id: "87065285ab38463481e72815eefd18c3",
232277
+ name: "Page Shield Write",
232278
+ description: "Grants write access to Page Shield",
232279
+ scopes: ["com.cloudflare.api.account.zone"]
232280
+ },
232281
+ {
232282
+ id: "e247aedd66bd41cc9193af0213416666",
232283
+ name: "Pages Read",
232284
+ description: "Grants read access to Cloudflare Pages",
232285
+ scopes: ["com.cloudflare.api.account"]
232286
+ },
232287
+ {
232288
+ id: "8d28297797f24fb8a0c332fe0866ec89",
232289
+ name: "Pages Write",
232290
+ description: "Grants write access to Cloudflare Pages",
232291
+ scopes: ["com.cloudflare.api.account"]
232292
+ },
232293
+ {
232294
+ id: "14b9cf2f410f4c0c9a16bb10a81c0e0b",
232295
+ name: "Pipelines Read",
232296
+ description: "Grants read access to Cloudflare Pipelines",
232297
+ scopes: ["com.cloudflare.api.account"]
232298
+ },
232299
+ {
232300
+ id: "5606e7405dc542949d949d59993d321f",
232301
+ name: "Pipelines Send",
232302
+ description: "Grants access to Send Events to Cloudflare Pipelines",
232303
+ scopes: ["com.cloudflare.api.account"]
232304
+ },
232305
+ {
232306
+ id: "e34111af393449539859485aa5ddd5bd",
232307
+ name: "Pipelines Write",
232308
+ description: "Grants write access to Cloudflare Pipelines",
232309
+ scopes: ["com.cloudflare.api.account"]
232310
+ },
232311
+ {
232312
+ id: "fd7f886c75a244389e892c4c3c068292",
232313
+ name: "Pubsub Configuration Read",
232314
+ description: "Grants read access to Pubsub Configurations\n",
232315
+ scopes: ["com.cloudflare.api.account"]
232316
+ },
232317
+ {
232318
+ id: "910b6ecca1c5411bb894e787362d1312",
232319
+ name: "Pubsub Configuration Write",
232320
+ description: "Grants full access to Pubsub Configurations\n",
232321
+ scopes: ["com.cloudflare.api.account"]
232322
+ },
232323
+ {
232324
+ id: "84a7755d54c646ca87cd50682a34bf7c",
232325
+ name: "Queues Read",
232326
+ description: "Grants read access to Cloudflare Queues",
232327
+ scopes: ["com.cloudflare.api.account"]
232328
+ },
232329
+ {
232330
+ id: "366f57075ffc42689627bcf8242a1b6d",
232331
+ name: "Queues Write",
232332
+ description: "Grants write access to Cloudflare Queues",
232333
+ scopes: ["com.cloudflare.api.account"]
232334
+ },
232335
+ {
232336
+ id: "dfe525ec7b07472c827d8d009178b2ac",
232337
+ name: "Radar Read",
232338
+ description: "Grants access to reading Radar",
232339
+ scopes: ["com.cloudflare.api.account"]
232340
+ },
232341
+ {
232342
+ id: "de62b15d79cc4d8d9c7b443c656eadbd",
232343
+ name: "Realtime",
232344
+ description: "Grants access to Realtime configuration excluding sensitive data",
232345
+ scopes: ["com.cloudflare.api.account"]
232346
+ },
232347
+ {
232348
+ id: "ba6ce7d23a9544ccad0816691ba38e21",
232349
+ name: "Realtime Admin",
232350
+ description: "Grants admin access to Realtime configuration",
232351
+ scopes: ["com.cloudflare.api.account"]
232352
+ },
232353
+ {
232354
+ id: "9bb90620717647a39679e1d951f140d6",
232355
+ name: "Registrar Domains Read",
232356
+ description: "Grants read access to Cloudflare Registrar domains",
232357
+ scopes: ["com.cloudflare.api.account"]
232358
+ },
232359
+ {
232360
+ id: "93ae59e7a40c4287a57ff6e501186a63",
232361
+ name: "Response Compression Read",
232362
+ description: "Grants read access to the response compression phase",
232363
+ scopes: ["com.cloudflare.api.account.zone"]
232364
+ },
232365
+ {
232366
+ id: "4bd3fb513a23494aa1341a7e1eb6e080",
232367
+ name: "Response Compression Write",
232368
+ description: "Grants write access to the response compression phase",
232369
+ scopes: ["com.cloudflare.api.account.zone"]
232370
+ },
232371
+ {
232372
+ id: "58abbad6d2ce40abb2594fbe932a2e0e",
232373
+ name: "Rule Policies Read",
232374
+ description: "Grants read access to Rule Policies",
232375
+ scopes: ["com.cloudflare.api.account"]
232376
+ },
232377
+ {
232378
+ id: "61ddc58f1da14f95b33b41213360cbeb",
232379
+ name: "Rule Policies Write",
232380
+ description: "Grants write access to Rule Policies",
232381
+ scopes: ["com.cloudflare.api.account"]
232382
+ },
232383
+ {
232384
+ id: "d5812c023a5048b4882175a28952362d",
232385
+ name: "SCIM Provisioning",
232386
+ description: "Grants membership permissions needed for SCIM provisioning",
232387
+ scopes: ["com.cloudflare.api.account"]
232388
+ },
232389
+ {
232390
+ id: "7b7216b327b04b8fbc8f524e1f9b7531",
232391
+ name: "SSL and Certificates Read",
232392
+ description: "Grants read access to SSL configuration and cert management",
232393
+ scopes: ["com.cloudflare.api.account.zone"]
232394
+ },
232395
+ {
232396
+ id: "c03055bc037c4ea9afb9a9f104b7b721",
232397
+ name: "SSL and Certificates Write",
232398
+ description: "Grants write access to SSL configuration and cert management",
232399
+ scopes: ["com.cloudflare.api.account.zone"]
232400
+ },
232401
+ {
232402
+ id: "1d80f6f165ea47f2b55d4a393fd697de",
232403
+ name: "SSO Connector Read",
232404
+ description: "Grants read access to Cloudflare SSO connectors\n",
232405
+ scopes: ["com.cloudflare.api.account"]
232406
+ },
232407
+ {
232408
+ id: "901ca5e292584c6aa1b4cdb39248bb07",
232409
+ name: "SSO Connector Write",
232410
+ description: "Grants write access to Cloudflare SSO connectors\n",
232411
+ scopes: ["com.cloudflare.api.account"]
232412
+ },
232413
+ {
232414
+ id: "853643ed57244ed1a05a7c024af9ab5a",
232415
+ name: "Sanitize Read",
232416
+ description: "Grants read access to sanitization",
232417
+ scopes: ["com.cloudflare.api.account.zone"]
232418
+ },
232419
+ {
232420
+ id: "89bb8c37d46042e98b84560eaaa6379f",
232421
+ name: "Sanitize Write",
232422
+ description: "Grants write access to sanitization",
232423
+ scopes: ["com.cloudflare.api.account.zone"]
232424
+ },
232425
+ {
232426
+ id: "5e33b7d77788455c9fdf18cbd38ee5a0",
232427
+ name: "Secrets Store Read",
232428
+ description: "Grants read access to Secrets Store",
232429
+ scopes: ["com.cloudflare.api.account"]
232430
+ },
232431
+ {
232432
+ id: "adc8fa2bc6124928a8b3314dc63a1235",
232433
+ name: "Secrets Store Write",
232434
+ description: "Grants write access to Secrets Store",
232435
+ scopes: ["com.cloudflare.api.account"]
232436
+ },
232437
+ {
232438
+ id: "595409c54a24444b80a495620b2d614c",
232439
+ name: "Select Configuration Read",
232440
+ description: "Grants read access to select configuration",
232441
+ scopes: ["com.cloudflare.api.account"]
232442
+ },
232443
+ {
232444
+ id: "235eac9bb64942b49cb805cc851cb000",
232445
+ name: "Select Configuration Write",
232446
+ description: "Grants write access to select configuration",
232447
+ scopes: ["com.cloudflare.api.account"]
232448
+ },
232449
+ {
232450
+ id: "74c654eb4aac40e28d6c6caa4c5aeb3d",
232451
+ name: "Snippets Read",
232452
+ description: "Grants read access to Snippets",
232453
+ scopes: ["com.cloudflare.api.account.zone"]
232454
+ },
232455
+ {
232456
+ id: "dadeaf3abdf14126a77a35e0c92fc36e",
232457
+ name: "Snippets Write",
232458
+ description: "Grants write access to Snippets",
232459
+ scopes: ["com.cloudflare.api.account.zone"]
232460
+ },
232461
+ {
232462
+ id: "de21485a24744b76a004aa153898f7fe",
232463
+ name: "Stream Read",
232464
+ description: "Grants read access to Cloudflare Stream",
232465
+ scopes: ["com.cloudflare.api.account"]
232466
+ },
232467
+ {
232468
+ id: "714f9c13a5684c2885a793f5edb36f59",
232469
+ name: "Stream Write",
232470
+ description: "Grants write access to Cloudflare Stream",
232471
+ scopes: ["com.cloudflare.api.account"]
232472
+ },
232473
+ {
232474
+ id: "a9a99455bf3245f6a5a244f909d74830",
232475
+ name: "Transform Rules Read",
232476
+ description: "Grants read access to transform rules",
232477
+ scopes: ["com.cloudflare.api.account"]
232478
+ },
232479
+ {
232480
+ id: "ae16e88bc7814753a1894c7ce187ab72",
232481
+ name: "Transform Rules Write",
232482
+ description: "Grants write access to transform rules",
232483
+ scopes: ["com.cloudflare.api.account"]
232484
+ },
232485
+ {
232486
+ id: "f0ba3733e746429182fcd40ec648c066",
232487
+ name: "Trust and Safety Read",
232488
+ description: "Grants access to read abuse reports and abuse actions",
232489
+ scopes: ["com.cloudflare.api.account"]
232490
+ },
232491
+ {
232492
+ id: "120f843a9c074f399b830e542e5616b8",
232493
+ name: "Trust and Safety Write",
232494
+ description: "Grants access to interact with abuse reports and abuse actions",
232495
+ scopes: ["com.cloudflare.api.account"]
232496
+ },
232497
+ {
232498
+ id: "5d78fd7895974fd0bdbbbb079482721b",
232499
+ name: "Turnstile Sites Read",
232500
+ description: "Grants read access to Turnstile",
232501
+ scopes: ["com.cloudflare.api.account"]
232502
+ },
232503
+ {
232504
+ id: "755c05aa014b4f9ab263aa80b8167bd8",
232505
+ name: "Turnstile Sites Write",
232506
+ description: "Grants write access to Turnstile",
232507
+ scopes: ["com.cloudflare.api.account"]
232508
+ },
232509
+ {
232510
+ id: "5d613a610b294788a29572aaac2f254d",
232511
+ name: "URL Scanner Read",
232512
+ description: "Grants read access to URL Scanner API",
232513
+ scopes: ["com.cloudflare.api.account"]
232514
+ },
232515
+ {
232516
+ id: "2a400bcb29154daab509fe07e3facab0",
232517
+ name: "URL Scanner Write",
232518
+ description: "Grants write access to URL Scanner API",
232519
+ scopes: ["com.cloudflare.api.account"]
232520
+ },
232521
+ {
232522
+ id: "1799edaae5db489294430e20d9b519e0",
232523
+ name: "Vectorize Read",
232524
+ description: "Grants read access to Vectorize configuration",
232525
+ scopes: ["com.cloudflare.api.account"]
232526
+ },
232527
+ {
232528
+ id: "64156ba5be47441096c83c7fc17c488b",
232529
+ name: "Vectorize Write",
232530
+ description: "Grants write access to Vectorize configuration",
232531
+ scopes: ["com.cloudflare.api.account"]
232532
+ },
232533
+ {
232534
+ id: "cab5202d07ef47beae788e6bc95cb6fe",
232535
+ name: "Waiting Rooms Read",
232536
+ description: "Grants read access to Waiting Rooms\n",
232537
+ scopes: ["com.cloudflare.api.account.zone"]
232538
+ },
232539
+ {
232540
+ id: "24fc124dc8254e0db468e60bf410c800",
232541
+ name: "Waiting Rooms Write",
232542
+ description: "Grants write access to Waiting Rooms\n",
232543
+ scopes: ["com.cloudflare.api.account.zone"]
232544
+ },
232545
+ {
232546
+ id: "8e31f574901c42e8ad89140b28d42112",
232547
+ name: "Web3 Hostnames Read",
232548
+ description: "Grants read access to Web3 Hostnames\n",
232549
+ scopes: ["com.cloudflare.api.account.zone"]
232550
+ },
232551
+ {
232552
+ id: "5ea6da42edb34811a78d1b007557c0ca",
232553
+ name: "Web3 Hostnames Write",
232554
+ description: "Grants write access to Web3 Hostnames\n",
232555
+ scopes: ["com.cloudflare.api.account.zone"]
232556
+ },
232557
+ {
232558
+ id: "a92d2450e05d4e7bb7d0a64968f83d11",
232559
+ name: "Workers AI Read",
232560
+ description: "Grants access to invoke Workers AI models",
232561
+ scopes: ["com.cloudflare.api.account"]
232562
+ },
232563
+ {
232564
+ id: "bacc64e0f6c34fc0883a1223f938a104",
232565
+ name: "Workers AI Write",
232566
+ description: "Grants access to invoke Workers AI models and edit assets",
232567
+ scopes: ["com.cloudflare.api.account"]
232568
+ },
232569
+ {
232570
+ id: "ad99c5ae555e45c4bef5bdf2678388ba",
232571
+ name: "Workers CI Read",
232572
+ description: "Grants read access to Workers CI",
232573
+ scopes: ["com.cloudflare.api.account"]
232574
+ },
232575
+ {
232576
+ id: "2e095cf436e2455fa62c9a9c2e18c478",
232577
+ name: "Workers CI Write",
232578
+ description: "Grants write access to Workers CI",
232579
+ scopes: ["com.cloudflare.api.account"]
232580
+ },
232581
+ {
232582
+ id: "cfd39eebc07c4e3ea849e4b3d2644637",
232583
+ name: "Workers Containers Read",
232584
+ description: "Grants read access to Workers Containers",
232585
+ scopes: ["com.cloudflare.api.account"]
232586
+ },
232587
+ {
232588
+ id: "bdbcd690c763475a985e8641dddc09f7",
232589
+ name: "Workers Containers Write",
232590
+ description: "Grants write access to Workers Containers",
232591
+ scopes: ["com.cloudflare.api.account"]
232592
+ },
232593
+ {
232594
+ id: "8b47d2786a534c08a1f94ee8f9f599ef",
232595
+ name: "Workers KV Storage Read",
232596
+ description: "Grants read access to Cloudflare Workers KV Storage",
232597
+ scopes: ["com.cloudflare.api.account"]
232598
+ },
232599
+ {
232600
+ id: "f7f0eda5697f475c90846e879bab8666",
232601
+ name: "Workers KV Storage Write",
232602
+ description: "Grants write access to Cloudflare Workers KV Storage",
232603
+ scopes: ["com.cloudflare.api.account"]
232604
+ },
232605
+ {
232606
+ id: "66c1ed49f4ed46098b75696a6d4ee3c9",
232607
+ name: "Workers Observability Read",
232608
+ description: "Grants read access to Cloudflare Workers Observability",
232609
+ scopes: ["com.cloudflare.api.account"]
232610
+ },
232611
+ {
232612
+ id: "29c629fb7b5e4c408ca0f7b545724fcc",
232613
+ name: "Workers Observability Telemetry Write",
232614
+ description: "Grants write access for Telemetry to Cloudflare Workers Observability",
232615
+ scopes: ["com.cloudflare.api.account"]
232616
+ },
232617
+ {
232618
+ id: "82c075da3f4647a2a03becd0fe240f8a",
232619
+ name: "Workers Observability Write",
232620
+ description: "Grants read and write access to Cloudflare Workers Observability",
232621
+ scopes: ["com.cloudflare.api.account"]
232622
+ },
232623
+ {
232624
+ id: "45db74139a62490b9b60eb7c4f34994b",
232625
+ name: "Workers R2 Data Catalog Read",
232626
+ description: "Grants read access to R2 Data Catalog",
232627
+ scopes: ["com.cloudflare.api.account"]
232628
+ },
232629
+ {
232630
+ id: "d229766a2f7f4d299f20eaa8c9b1fde9",
232631
+ name: "Workers R2 Data Catalog Write",
232632
+ description: "Grants write access to R2 Data Catalog",
232633
+ scopes: ["com.cloudflare.api.account"]
232634
+ },
232635
+ {
232636
+ id: "f45430d92e2b4a6cb9f94f2594c141b8",
232637
+ name: "Workers R2 SQL Read",
232638
+ description: "Grants access to read-only SQL queries against R2 Data Catalog",
232639
+ scopes: ["com.cloudflare.api.account"]
232640
+ },
232641
+ {
232642
+ id: "6a018a9f2fc74eb6b293b0c548f38b39",
232643
+ name: "Workers R2 Storage Bucket Item Read",
232644
+ description: "Grants read access to Cloudflare R2 Bucket Scoped Storage",
232645
+ scopes: ["com.cloudflare.edge.r2.bucket"]
232646
+ },
232647
+ {
232648
+ id: "2efd5506f9c8494dacb1fa10a3e7d5b6",
232649
+ name: "Workers R2 Storage Bucket Item Write",
232650
+ description: "Grants write access to Cloudflare R2 Bucket Scoped Storage",
232651
+ scopes: ["com.cloudflare.edge.r2.bucket"]
232652
+ },
232653
+ {
232654
+ id: "b4992e1108244f5d8bfbd5744320c2e1",
232655
+ name: "Workers R2 Storage Read",
232656
+ description: "Grants read access to Cloudflare R2 Storage",
232657
+ scopes: ["com.cloudflare.api.account"]
232658
+ },
232659
+ {
232660
+ id: "bf7481a1826f439697cb59a20b22293e",
232661
+ name: "Workers R2 Storage Write",
232662
+ description: "Grants write access to Cloudflare R2 Storage",
232663
+ scopes: ["com.cloudflare.api.account"]
232664
+ },
232665
+ {
232666
+ id: "2072033d694d415a936eaeb94e6405b8",
232667
+ name: "Workers Routes Read",
232668
+ description: "Grants read access to Cloudflare Workers and Workers KV Storage",
232669
+ scopes: ["com.cloudflare.api.account.zone"]
232670
+ },
232671
+ {
232672
+ id: "28f4b596e7d643029c524985477ae49a",
232673
+ name: "Workers Routes Write",
232674
+ description: "Grants write access to Cloudflare Workers and Workers KV Storage",
232675
+ scopes: ["com.cloudflare.api.account.zone"]
232676
+ },
232677
+ {
232678
+ id: "1a71c399035b4950a1bd1466bbe4f420",
232679
+ name: "Workers Scripts Read",
232680
+ description: "Grants read access to Cloudflare Workers scripts",
232681
+ scopes: ["com.cloudflare.api.account"]
232682
+ },
232683
+ {
232684
+ id: "e086da7e2179491d91ee5f35b3ca210a",
232685
+ name: "Workers Scripts Write",
232686
+ description: "Grants write access to Cloudflare Workers scripts",
232687
+ scopes: ["com.cloudflare.api.account"]
232688
+ },
232689
+ {
232690
+ id: "05880cd1bdc24d8bae0be2136972816b",
232691
+ name: "Workers Tail Read",
232692
+ description: "Grants `wrangler tail` read permissions",
232693
+ scopes: ["com.cloudflare.api.account"]
232694
+ },
232695
+ {
232696
+ id: "cdeb15b336e640a2965df8c65052f1e0",
232697
+ name: "Zaraz Admin",
232698
+ description: "Can edit and publish Zaraz settings.",
232699
+ scopes: ["com.cloudflare.api.account.zone"]
232700
+ },
232701
+ {
232702
+ id: "89d5bf002389496e9994b8c30608b5d0",
232703
+ name: "Zaraz Edit",
232704
+ description: "Can edit Zaraz settings.",
232705
+ scopes: ["com.cloudflare.api.account.zone"]
232706
+ },
232707
+ {
232708
+ id: "5bdbde7e76144204a244274eac3eb0eb",
232709
+ name: "Zaraz Read",
232710
+ description: "Grants read access to Zaraz settings.",
232711
+ scopes: ["com.cloudflare.api.account.zone"]
232712
+ },
232713
+ {
232714
+ id: "3f376c8e6f764a938b848bd01c8995c4",
232715
+ name: "Zero Trust Read",
232716
+ description: "Grants read access to Cloudflare Zero Trust resources",
232717
+ scopes: ["com.cloudflare.api.account"]
232718
+ },
232719
+ {
232720
+ id: "efb81b5cd37d49f3be1da9363a6d7a19",
232721
+ name: "Zero Trust Report",
232722
+ description: "Grants reporting access to Cloudflare Zero Trust",
232723
+ scopes: ["com.cloudflare.api.account"]
232724
+ },
232725
+ {
232726
+ id: "07f91e3e32b647ffae0178d884f23ee0",
232727
+ name: "Zero Trust Resilience Read",
232728
+ description: "Grants read access to Cloudflare Zero Trust Resilience resources",
232729
+ scopes: ["com.cloudflare.api.account"]
232730
+ },
232731
+ {
232732
+ id: "cc00ebddebca4b8399607562a78df084",
232733
+ name: "Zero Trust Resilience Write",
232734
+ description: "Grants write access to Cloudflare Zero Trust Resilience resources",
232735
+ scopes: ["com.cloudflare.api.account"]
232736
+ },
232737
+ {
232738
+ id: "b33f02c6f7284e05a6f20741c0bb0567",
232739
+ name: "Zero Trust Write",
232740
+ description: "Grants write access to Cloudflare Zero Trust resources",
232741
+ scopes: ["com.cloudflare.api.account"]
232742
+ },
232743
+ {
232744
+ id: "f5d857f67f144e3c8bacea88c17d4a13",
232745
+ name: "Zero Trust: PII Read",
232746
+ description: "Grants read access to Cloudflare Zero Trust PII.",
232747
+ scopes: ["com.cloudflare.api.account"]
232748
+ },
232749
+ {
232750
+ id: "a1a6298e52584c8fb6313760a30c681e",
232751
+ name: "Zero Trust: Seats Write",
232752
+ description: "Grants write access to the Zero Trust seats your organization can use (and be billed for)",
232753
+ scopes: ["com.cloudflare.api.account"]
232754
+ },
232755
+ {
232756
+ id: "0a6cfe8cd3ed445e918579e2fb13087b",
232757
+ name: "Zone DNS Settings Read",
232758
+ description: "Grants read access to Zone DNS Settings",
232759
+ scopes: ["com.cloudflare.api.account.zone"]
232760
+ },
232761
+ {
232762
+ id: "c4df38be41c247b3b4b7702e76eadae0",
232763
+ name: "Zone DNS Settings Write",
232764
+ description: "Grants write access to Zone DNS Settings",
232765
+ scopes: ["com.cloudflare.api.account.zone"]
232766
+ },
232767
+ {
232768
+ id: "c8fed203ed3043cba015a93ad1616f1f",
232769
+ name: "Zone Read",
232770
+ description: "Grants read access to zone management",
232771
+ scopes: ["com.cloudflare.api.account.zone"]
232772
+ },
232773
+ {
232774
+ id: "517b21aee92c4d89936c976ba6e4be55",
232775
+ name: "Zone Settings Read",
232776
+ description: "Grants read access to zone settings",
232777
+ scopes: ["com.cloudflare.api.account.zone"]
232778
+ },
232779
+ {
232780
+ id: "3030687196b94b638145a3953da2b699",
232781
+ name: "Zone Settings Write",
232782
+ description: "Grants write access to zone settings",
232783
+ scopes: ["com.cloudflare.api.account.zone"]
232784
+ },
232785
+ {
232786
+ id: "211a4c0feb3e43b3a2d41f1443a433e7",
232787
+ name: "Zone Transform Rules Read",
232788
+ description: "Grants read access to transform rules at zone level",
232789
+ scopes: ["com.cloudflare.api.account.zone"]
232790
+ },
232791
+ {
232792
+ id: "0ac90a90249747bca6b047d97f0803e9",
232793
+ name: "Zone Transform Rules Write",
232794
+ description: "Grants write access to transform rules at zone level",
232795
+ scopes: ["com.cloudflare.api.account.zone"]
232796
+ },
232797
+ {
232798
+ id: "1b1ea24cf0904d33903f0cc7e54e280f",
232799
+ name: "Zone Versioning Read",
232800
+ description: "Grants read-only access to Zone Versioning",
232801
+ scopes: ["com.cloudflare.api.account.zone"]
232802
+ },
232803
+ {
232804
+ id: "c9915d86fbff46af9dd945c0a882294b",
232805
+ name: "Zone Versioning Write",
232806
+ description: "Grants full access to Zone Versioning",
232807
+ scopes: ["com.cloudflare.api.account.zone"]
232808
+ },
232809
+ {
232810
+ id: "dbc512b354774852af2b5a5f4ba3d470",
232811
+ name: "Zone WAF Read",
232812
+ description: "Grants read access to Zone WAF",
232813
+ scopes: ["com.cloudflare.api.account.zone"]
232814
+ },
232815
+ {
232816
+ id: "fb6778dc191143babbfaa57993f1d275",
232817
+ name: "Zone WAF Write",
232818
+ description: "Grants write access to Zone WAF",
232819
+ scopes: ["com.cloudflare.api.account.zone"]
232820
+ },
232821
+ {
232822
+ id: "e6d2666161e84845a636613608cee8d5",
232823
+ name: "Zone Write",
232824
+ description: "Grants write access to zone management",
232825
+ scopes: ["com.cloudflare.api.account.zone"]
232826
+ }
232827
+ ];
232828
+
230733
232829
  //#endregion
230734
232830
  //#region bin/commands/util.ts
230735
232831
  const createCloudflareToken = loggedProcedure.meta({ description: "Create a Cloudflare god token with API key and account IDs" }).input(zod_default.object({
@@ -230740,24 +232836,32 @@ const createCloudflareToken = loggedProcedure.meta({ description: "Create a Clou
230740
232836
  else await createCloudflareProfileToken(input);
230741
232837
  });
230742
232838
  const util$1 = t.router({ "create-cloudflare-token": createCloudflareToken });
230743
- async function createToken(keyName, accountIds, permissionGroupIds, credentials) {
230744
- const permissionGroups = await fetch("https://api.cloudflare.com/client/v4/user/tokens/permission_groups", { headers: {
230745
- "Content-Type": "application/json",
230746
- "X-Auth-Key": credentials.apiKey,
230747
- "X-Auth-Email": credentials.accountEmail
230748
- } }).then((res) => res.json()).then((data) => data.result).then((data) => {
230749
- return data.reduce((acc, group) => {
230750
- if (permissionGroupIds != null && !permissionGroupIds.includes(group.id)) return acc;
230751
- const scope = group.scopes[0];
230752
- if (!acc[scope]) acc[scope] = [];
230753
- acc[scope].push(group);
230754
- return acc;
230755
- }, {});
230756
- }).catch((err) => {
230757
- M.error(pc.red(`Error fetching permission groups: ${err.message}`));
230758
- throw new CancelSignal();
230759
- });
230760
- return await fetch("https://api.cloudflare.com/client/v4/user/tokens", {
232839
+ function formatTokenPolicies(accountIds, predicate = () => true) {
232840
+ const policies = {
232841
+ "com.cloudflare.api.account": {
232842
+ effect: "allow",
232843
+ permission_groups: [],
232844
+ resources: Object.fromEntries(accountIds.map((id) => [`com.cloudflare.api.account.${id}`, "*"]))
232845
+ },
232846
+ "com.cloudflare.api.account.zone": {
232847
+ effect: "allow",
232848
+ permission_groups: [],
232849
+ resources: { "com.cloudflare.api.account.zone.*": "*" }
232850
+ },
232851
+ "com.cloudflare.edge.r2.bucket": {
232852
+ effect: "allow",
232853
+ permission_groups: [],
232854
+ resources: { "com.cloudflare.edge.r2.bucket.*": "*" }
232855
+ }
232856
+ };
232857
+ for (const group of PERMISSION_GROUPS) {
232858
+ if (!predicate(group)) continue;
232859
+ policies[group.scopes[0]].permission_groups.push({ id: group.id });
232860
+ }
232861
+ return Object.values(policies).filter((policy) => policy.permission_groups.length > 0);
232862
+ }
232863
+ async function createToken(name$1, policies, credentials) {
232864
+ return (await extractCloudflareResult("create cloudflare token", fetch("https://api.cloudflare.com/client/v4/user/tokens", {
230761
232865
  method: "POST",
230762
232866
  headers: {
230763
232867
  "Content-Type": "application/json",
@@ -230765,25 +232869,11 @@ async function createToken(keyName, accountIds, permissionGroupIds, credentials)
230765
232869
  "X-Auth-Email": credentials.accountEmail
230766
232870
  },
230767
232871
  body: JSON.stringify({
230768
- name: `Alchemy Token - ${keyName}`,
232872
+ name: `Alchemy Token - ${name$1}`,
230769
232873
  status: "active",
230770
- policies: [{
230771
- effect: "allow",
230772
- resources: accountIds.reduce((acc, id) => {
230773
- acc[`com.cloudflare.api.account.${id}`] = "*";
230774
- return acc;
230775
- }, {}),
230776
- permission_groups: permissionGroups["com.cloudflare.api.account"].map((group) => ({ id: group.id }))
230777
- }, {
230778
- effect: "allow",
230779
- resources: { "com.cloudflare.api.account.zone.*": "*" },
230780
- permission_groups: permissionGroups["com.cloudflare.api.account.zone"].map((group) => ({ id: group.id }))
230781
- }]
232874
+ policies
230782
232875
  })
230783
- }).then((res) => res.json()).then((data) => data.result.value).catch((err) => {
230784
- M.error(pc.red(`Error creating cloudflare token: ${err.message}`));
230785
- throw new CancelSignal();
230786
- });
232876
+ }))).value;
230787
232877
  }
230788
232878
  async function createCloudflareGodToken() {
230789
232879
  Ie(pc.cyan("🧪 Create Cloudflare God Token"));
@@ -230825,12 +232915,9 @@ async function createCloudflareGodToken() {
230825
232915
  M.info(pc.dim("Token creation cancelled"));
230826
232916
  throw new CancelSignal();
230827
232917
  }
230828
- const apiToken = await createToken("GOD-TOKEN", accountIds, void 0, {
232918
+ const apiToken = await createToken("GOD-TOKEN", formatTokenPolicies(accountIds), {
230829
232919
  apiKey,
230830
232920
  accountEmail
230831
- }).catch((err) => {
230832
- M.error(pc.red(`Error creating cloudflare god token: ${err.message}`));
230833
- throw new CancelSignal();
230834
232921
  });
230835
232922
  Se(`Cloudflare god token created: ${pc.magenta(apiToken)}`);
230836
232923
  }
@@ -230844,11 +232931,8 @@ async function createCloudflareProfileToken(input) {
230844
232931
  });
230845
232932
  if (provider.method !== "oauth") throw new Error(`Profile ${pc.bold(name$1)} is not configured to use Cloudflare via OAuth`);
230846
232933
  if (provider.scopes == null) throw new Error(`Profile ${pc.bold(name$1)} is not configured with any Cloudflare scopes`);
230847
- const permissionGroupIds = [];
230848
- for (const scope of provider.scopes) {
230849
- const ids = CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_IDS[scope];
230850
- if (ids != null) permissionGroupIds.push(...ids);
230851
- }
232934
+ const groupNames = new Set(provider.scopes.flatMap((scope) => CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_NAMES[scope] ?? []));
232935
+ const policies = formatTokenPolicies([provider.metadata.id], (group) => groupNames.has(group.name));
230852
232936
  const apiKey = await ge({ message: "Enter Cloudflare Global API Key. It can be found in the cloudflare dashboard: https://dash.cloudflare.com/profile/api-tokens" });
230853
232937
  if (pD(apiKey)) throw new CancelSignal();
230854
232938
  const accountEmail = await he({
@@ -230856,186 +232940,193 @@ async function createCloudflareProfileToken(input) {
230856
232940
  placeholder: "user@example.com"
230857
232941
  });
230858
232942
  if (pD(accountEmail)) throw new CancelSignal();
230859
- const apiToken = await createToken(name$1, [provider.metadata.id], permissionGroupIds, {
232943
+ const apiToken = await createToken(name$1, policies, {
230860
232944
  apiKey,
230861
232945
  accountEmail
230862
232946
  });
230863
232947
  Se(`Cloudflare token created for profile ${pc.bold(name$1)}: ${pc.magenta(apiToken)}`);
230864
232948
  }
230865
- const CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_IDS = {
232949
+ const CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_NAMES = {
230866
232950
  "access:read": [
230867
- "eb258a38ea634c86a0c89da6b27cb6b6",
230868
- "7ea222f6d5064cfa89ea366d7c1fee89",
230869
- "08e61dabe81a422dab0dea6fdef1a98a",
230870
- "0f4841f80adb4bada5a09493300e7f8d",
230871
- "4f3196a5c95747b6ad82e34e1d0a694f",
230872
- "26bc23f853634eb4bff59983b9064fde",
230873
- "b8b7514ce5364cd8ac0455f3eb16eb5f",
230874
- "de99c87e48d642ce8c985d027905b475",
230875
- "91f7ce32fa614d73b7e1fc8f0e78582b",
230876
- "99ff99e4e30247a99d3777a8c4c18541",
230877
- "e985ca9351db460faebbe8681c48e560"
232951
+ "Access: Apps and Policies Read",
232952
+ "Access: Custom Pages Read",
232953
+ "Access: Device Posture Read",
232954
+ "Access: Mutual TLS Certificates Read",
232955
+ "Access: Organizations, Identity Providers, and Groups Read",
232956
+ "Access: Policy Test Read",
232957
+ "Access: Population Read",
232958
+ "Access: Service Tokens Read",
232959
+ "Access: SSH Auditing Read",
232960
+ "Access: SCIM logs read"
230878
232961
  ],
230879
232962
  "access:write": [
230880
- "a1c0fec57cf94af79479a6d827fa518c",
230881
- "d30c9ad8b5224e7cb8d41bcb4757effc",
230882
- "bc783549a3a741aaa10556faf8b485bb",
230883
- "6d23f290472f4e6fad5c4398c057c356",
230884
- "bfe0d8686a584fa680f4c53b5eb0de6d",
230885
- "7121a0c7e9ed46e3829f9cca2bb572aa",
230886
- "29d3afbfd4054af9accdd1118815ed05",
230887
- "2fc1072ee6b743828db668fcb3f9dee7",
230888
- "4e5fd8ac327b4a358e48c66fcbeb856d",
230889
- "1e13c5124ca64b72b1969a67e8829049",
230890
- "959972745952452f8be2452be8cbb9f2",
230891
- "6c9d1cfcfc6840a987d1b5bfb880a841",
230892
- "6db4e222e21248ac96a3f4c2a81e3b41",
230893
- "eb258a38ea634c86a0c89da6b27cb6b6",
230894
- "7ea222f6d5064cfa89ea366d7c1fee89",
230895
- "08e61dabe81a422dab0dea6fdef1a98a",
230896
- "0f4841f80adb4bada5a09493300e7f8d",
230897
- "4f3196a5c95747b6ad82e34e1d0a694f",
230898
- "26bc23f853634eb4bff59983b9064fde",
230899
- "b8b7514ce5364cd8ac0455f3eb16eb5f",
230900
- "de99c87e48d642ce8c985d027905b475",
230901
- "91f7ce32fa614d73b7e1fc8f0e78582b",
230902
- "99ff99e4e30247a99d3777a8c4c18541",
230903
- "e985ca9351db460faebbe8681c48e560"
232963
+ "Access: Service Tokens Write",
232964
+ "Access: SSH Auditing Write",
232965
+ "Access: Population Write",
232966
+ "Access: Policy Test Write",
232967
+ "Access: Organizations, Identity Providers, and Groups Write",
232968
+ "Access: Organizations, Identity Providers, and Groups Revoke",
232969
+ "Access: Mutual TLS Certificates Write",
232970
+ "Access: Device Posture Write",
232971
+ "Access: Custom Pages Write",
232972
+ "Access: Apps and Policies Write",
232973
+ "Access: Apps and Policies Revoke",
232974
+ "Access: Apps and Policies Read",
232975
+ "Access: Custom Pages Read",
232976
+ "Access: Device Posture Read",
232977
+ "Access: Mutual TLS Certificates Read",
232978
+ "Access: Organizations, Identity Providers, and Groups Read",
232979
+ "Access: Policy Test Read",
232980
+ "Access: Population Read",
232981
+ "Access: Service Tokens Read",
232982
+ "Access: SSH Auditing Read",
232983
+ "Access: SCIM logs read"
230904
232984
  ],
230905
- "account:read": ["c1fde68c7bcc44588cbb6ddbc16d6480"],
230906
- "agw:read": ["05a2a65760a546439ed29762b163cece"],
230907
- "agw:run": ["05a2a65760a546439ed29762b163cece", "5e5d3e8efeec49f3afb67bafecbcd511"],
230908
- "ai:read": ["a92d2450e05d4e7bb7d0a64968f83d11"],
230909
- "ai:write": ["a92d2450e05d4e7bb7d0a64968f83d11", "bacc64e0f6c34fc0883a1223f938a104"],
230910
- "aiaudit:read": ["19637fbb73d242c0a92845d8db0b95b1"],
230911
- "aiaudit:write": ["19637fbb73d242c0a92845d8db0b95b1", "1ba6ab4cacdb454b913bbb93e1b8cb8c"],
230912
- "aig:read": ["4dc8917b4b40457d88d3035d5dadb054"],
232985
+ "account:read": ["Account Settings Read"],
232986
+ "agw:read": ["Account API Gateway Read"],
232987
+ "agw:run": ["Account API Gateway Read", "Account API Gateway"],
232988
+ "ai:read": ["Workers AI Read"],
232989
+ "ai:write": ["Workers AI Read", "Workers AI Write"],
232990
+ "aiaudit:read": ["AI Audit Read"],
232991
+ "aiaudit:write": ["AI Audit Read", "AI Audit Write"],
232992
+ "aig:read": ["AI Gateway Read"],
230913
232993
  "aig:write": [
230914
- "4dc8917b4b40457d88d3035d5dadb054",
230915
- "644535f4ed854494a59cb289d634b257",
230916
- "6c8a3737f07f46369c1ea1f22138daaf"
232994
+ "AI Gateway Read",
232995
+ "AI Gateway Run",
232996
+ "AI Gateway Write"
230917
232997
  ],
230918
- "auditlogs:read": ["b05b28e839c54467a7d6cba5d3abb5a3"],
230919
- "browser:read": ["374b03fa229f4eb6b011bb1cd7f235ee"],
230920
- "browser:write": ["374b03fa229f4eb6b011bb1cd7f235ee", "adddda876faa4a0590f1b23a038976e4"],
232998
+ "auditlogs:read": ["Access: Audit Logs Read"],
232999
+ "browser:read": ["Browser Rendering Read"],
233000
+ "browser:write": ["Browser Rendering Read", "Browser Rendering Write"],
230921
233001
  "cfone:read": [
230922
- "1cd960c063a0448481343372c963d8c7",
230923
- "c1968d31028d4239976ec3bc4750bbf6",
230924
- "07cf1c1952a84b13b2cd542f3d2f29ab"
233002
+ "Cloudflare One Connector: WARP Read",
233003
+ "Cloudflare One Connector: cloudflared Read",
233004
+ "Cloudflare One Connectors Read"
230925
233005
  ],
230926
233006
  "cfone:write": [
230927
- "5b5c774a5d174ca88d046c8889648b3f",
230928
- "037b9e348b3b42d4b46ea2fcb1cfb3e7",
230929
- "a7030c9c98d544e092d8b099fabb1f06",
230930
- "1cd960c063a0448481343372c963d8c7",
230931
- "c1968d31028d4239976ec3bc4750bbf6",
230932
- "07cf1c1952a84b13b2cd542f3d2f29ab"
233007
+ "Cloudflare One Connector: WARP Write",
233008
+ "Cloudflare One Connector: cloudflared Write",
233009
+ "Cloudflare One Connectors Write",
233010
+ "Cloudflare One Connector: WARP Read",
233011
+ "Cloudflare One Connector: cloudflared Read",
233012
+ "Cloudflare One Connectors Read"
230933
233013
  ],
230934
- "cloudchamber:write": ["65ec50cbde3d4c838bbe7500024d5745", "26ce6c7d18a346528e7b905d5e269866"],
230935
- "constellation:write": ["eeffa4d16812430cb4a0ae9e7f46fc24", "7c81856725af47ce89a790d5fb36f362"],
230936
- "containers:write": ["cfd39eebc07c4e3ea849e4b3d2644637", "bdbcd690c763475a985e8641dddc09f7"],
230937
- "d1:write": ["192192df92ee43ac90f2aeeffce67e35", "09b2857d1c31407795e75e3fed8617a1"],
230938
- "dex:read": ["3b376e0aa52c41cbb6afc9cab945afa8"],
233014
+ "cloudchamber:write": ["Cloudchamber Read", "Cloudchamber Write"],
233015
+ "constellation:write": ["Constellation Read", "Constellation Write"],
233016
+ "containers:write": ["Workers Containers Read", "Workers Containers Write"],
233017
+ "d1:write": ["D1 Read", "D1 Write"],
233018
+ "dex:read": ["Cloudflare DEX Read"],
230939
233019
  "dex:write": [
230940
- "3a1e1ef09dd34271bb44fc4c6a419952",
230941
- "3b376e0aa52c41cbb6afc9cab945afa8",
230942
- "92c8dcd551cc42a6a57a54e8f8d3f3e3"
233020
+ "Cloudflare DEX",
233021
+ "Cloudflare DEX Read",
233022
+ "Cloudflare DEX Write"
230943
233023
  ],
230944
233024
  "dns_analytics:read": [],
230945
233025
  "dns_records:edit": [
230946
- "82e64a83756745bbbb1c9c2701bf816b",
230947
- "95d69e8d6d5144bfb0923667355d9f11",
230948
- "5b7aedd821a548b9bf5a2acabbce98c7",
230949
- "4755a26eedb94da69e1066d98aa820be"
233026
+ "DNS Read",
233027
+ "DNS View Read",
233028
+ "DNS View Write",
233029
+ "DNS Write"
230950
233030
  ],
230951
- "dns_records:read": ["82e64a83756745bbbb1c9c2701bf816b", "95d69e8d6d5144bfb0923667355d9f11"],
230952
- "dns_settings:read": ["cfa964bcdafc4ab39704e7476154e41b"],
230953
- "firstpartytags:write": [],
233031
+ "dns_records:read": ["DNS Read", "DNS View Read"],
233032
+ "dns_settings:read": ["Account DNS Settings Read"],
233033
+ "firstpartytags:write": ["Zaraz Edit"],
230954
233034
  "lb:edit": [
230955
- "59059f0c977b44f8b1c18e0aaf91c369",
230956
- "419ec42810af4659ade77716dbe47bc6",
230957
- "6d7f2f5f5b1d4a0e9081fdc98d432fd1",
230958
- "9d24387c6e8544e2bc4024a03991339f",
230959
- "d2a1802cc9a34e30852f8b33869b2f3c"
233035
+ "Load Balancers Account Read",
233036
+ "Load Balancers Account Write",
233037
+ "Load Balancers Write",
233038
+ "Load Balancing: Monitors and Pools Read",
233039
+ "Load Balancing: Monitors and Pools Write"
230960
233040
  ],
230961
233041
  "lb:read": [
230962
- "59059f0c977b44f8b1c18e0aaf91c369",
230963
- "9d24387c6e8544e2bc4024a03991339f",
230964
- "e9a975f628014f1d85b723993116f7d5"
233042
+ "Load Balancers Account Read",
233043
+ "Load Balancing: Monitors and Pools Read",
233044
+ "Load Balancers Read"
230965
233045
  ],
230966
- "logpush:read": ["6a315a56f18441e59ed03352369ae956", "c4a30cd58c5d42619c86a3c36c441e2d"],
230967
- "logpush:write": [
230968
- "6a315a56f18441e59ed03352369ae956",
230969
- "c4a30cd58c5d42619c86a3c36c441e2d",
230970
- "96163bd1b0784f62b3e44ed8c2ab1eb6",
230971
- "3e0b5820118e47f3922f7c989e673882"
230972
- ],
230973
- "notification:read": ["ce18edbdcebf465e9d6d1d2fc80ffd42"],
230974
- "notification:write": ["ce18edbdcebf465e9d6d1d2fc80ffd42", "c3c847c5802d4ce3ba00e3e97b3c8555"],
230975
- "pages:read": ["e247aedd66bd41cc9193af0213416666"],
230976
- "pages:write": ["e247aedd66bd41cc9193af0213416666", "8d28297797f24fb8a0c332fe0866ec89"],
230977
- "pipelines:read": ["14b9cf2f410f4c0c9a16bb10a81c0e0b"],
230978
- "pipelines:setup": ["5606e7405dc542949d949d59993d321f"],
233046
+ "logpush:read": ["Logs Read"],
233047
+ "logpush:write": ["Logs Read", "Logs Write"],
233048
+ "notification:read": ["Notifications Read"],
233049
+ "notification:write": ["Notifications Read", "Notifications Write"],
233050
+ "pages:read": ["Pages Read"],
233051
+ "pages:write": ["Pages Read", "Pages Write"],
233052
+ "pipelines:read": ["Pipelines Read"],
233053
+ "pipelines:setup": ["Pipelines Send"],
230979
233054
  "pipelines:write": [
230980
- "14b9cf2f410f4c0c9a16bb10a81c0e0b",
230981
- "5606e7405dc542949d949d59993d321f",
230982
- "e34111af393449539859485aa5ddd5bd"
233055
+ "Pipelines Read",
233056
+ "Pipelines Send",
233057
+ "Pipelines Write"
230983
233058
  ],
230984
233059
  "query_cache:write": [],
230985
- "queues:write": ["84a7755d54c646ca87cd50682a34bf7c", "366f57075ffc42689627bcf8242a1b6d"],
233060
+ "queues:write": ["Queues Read", "Queues Write"],
230986
233061
  "r2_catalog:write": [
230987
- "45db74139a62490b9b60eb7c4f34994b",
230988
- "d229766a2f7f4d299f20eaa8c9b1fde9",
230989
- "f45430d92e2b4a6cb9f94f2594c141b8"
233062
+ "Workers R2 Data Catalog Read",
233063
+ "Workers R2 Data Catalog Write",
233064
+ "Workers R2 SQL Read"
230990
233065
  ],
230991
- "radar:read": ["dfe525ec7b07472c827d8d009178b2ac"],
230992
- "rag:read": ["d7887c7a417e4cf2a69f1d01c1a1dc3b"],
233066
+ "radar:read": ["Radar Read"],
233067
+ "rag:read": ["Auto Rag Read"],
230993
233068
  "rag:write": [
230994
- "d7887c7a417e4cf2a69f1d01c1a1dc3b",
230995
- "7fb8d27511b34d02994d005b520b679f",
230996
- "234108c786084936a381bb19b7f4ea65"
233069
+ "Auto Rag Read",
233070
+ "Auto Rag Write",
233071
+ "Auto Rag Write Run Engine"
230997
233072
  ],
230998
- "secrets_store:read": ["5e33b7d77788455c9fdf18cbd38ee5a0"],
230999
- "secrets_store:write": ["5e33b7d77788455c9fdf18cbd38ee5a0", "adc8fa2bc6124928a8b3314dc63a1235"],
231000
- "sso-connector:read": ["1d80f6f165ea47f2b55d4a393fd697de"],
231001
- "sso-connector:write": ["1d80f6f165ea47f2b55d4a393fd697de", "901ca5e292584c6aa1b4cdb39248bb07"],
233073
+ "secrets_store:read": ["Secrets Store Read"],
233074
+ "secrets_store:write": ["Secrets Store Read", "Secrets Store Write"],
233075
+ "sso-connector:read": ["SSO Connector Read"],
233076
+ "sso-connector:write": ["SSO Connector Read", "SSO Connector Write"],
231002
233077
  "ssl_certs:write": [
231003
- "a7a233f9604845c787d4c8c39ac09c21",
231004
- "db37e5f1cb1a4e1aabaef8deaea43575",
231005
- "7b7216b327b04b8fbc8f524e1f9b7531",
231006
- "c03055bc037c4ea9afb9a9f104b7b721"
233078
+ "Account: SSL and Certificates Read",
233079
+ "Account: SSL and Certificates Write",
233080
+ "SSL and Certificates Read",
233081
+ "SSL and Certificates Write"
231007
233082
  ],
231008
233083
  "teams:pii": [],
231009
233084
  "teams:read": [],
231010
233085
  "teams:secure_location": [],
231011
233086
  "teams:write": [],
231012
- "url_scanner:read": ["5d613a610b294788a29572aaac2f254d"],
231013
- "url_scanner:write": ["5d613a610b294788a29572aaac2f254d", "2a400bcb29154daab509fe07e3facab0"],
233087
+ "url_scanner:read": ["URL Scanner Read"],
233088
+ "url_scanner:write": ["URL Scanner Read", "URL Scanner Write"],
231014
233089
  "user:read": [],
231015
- "vectorize:write": ["1799edaae5db489294430e20d9b519e0", "64156ba5be47441096c83c7fc17c488b"],
233090
+ "vectorize:write": ["Vectorize Read", "Vectorize Write"],
231016
233091
  "workers:write": [
231017
- "2072033d694d415a936eaeb94e6405b8",
231018
- "28f4b596e7d643029c524985477ae49a",
231019
- "1a71c399035b4950a1bd1466bbe4f420",
231020
- "e086da7e2179491d91ee5f35b3ca210a"
233092
+ "Workers Routes Read",
233093
+ "Workers Routes Write",
233094
+ "Workers Scripts Read",
233095
+ "Workers Scripts Write",
233096
+ "Workers KV Storage Read",
233097
+ "Workers KV Storage Write",
233098
+ "Workers R2 Storage Write",
233099
+ "Workers R2 Storage Read"
231021
233100
  ],
231022
- "workers_builds:read": ["ad99c5ae555e45c4bef5bdf2678388ba"],
231023
- "workers_builds:write": ["2e095cf436e2455fa62c9a9c2e18c478"],
231024
- "workers_kv:write": ["8b47d2786a534c08a1f94ee8f9f599ef", "f7f0eda5697f475c90846e879bab8666"],
231025
- "workers_observability:read": ["66c1ed49f4ed46098b75696a6d4ee3c9"],
231026
- "workers_observability:write": ["66c1ed49f4ed46098b75696a6d4ee3c9", "82c075da3f4647a2a03becd0fe240f8a"],
231027
- "workers_observability_telemetry:write": ["29c629fb7b5e4c408ca0f7b545724fcc"],
231028
- "workers_routes:write": [],
231029
- "workers_scripts:write": [],
231030
- "workers_tail:read": ["05880cd1bdc24d8bae0be2136972816b"],
233101
+ "workers_builds:read": ["Workers CI Read"],
233102
+ "workers_builds:write": ["Workers CI Write"],
233103
+ "workers_kv:write": ["Workers KV Storage Read", "Workers KV Storage Write"],
233104
+ "workers_observability:read": ["Workers Observability Read"],
233105
+ "workers_observability_telemetry:write": ["Workers Observability Telemetry Write"],
233106
+ "workers_routes:write": ["Workers Routes Write"],
233107
+ "workers_scripts:write": ["Workers Scripts Write"],
233108
+ "workers_tail:read": ["Workers Tail Read"],
231031
233109
  "zone:read": [
231032
- "c8fed203ed3043cba015a93ad1616f1f",
231033
- "517b21aee92c4d89936c976ba6e4be55",
231034
- "211a4c0feb3e43b3a2d41f1443a433e7",
231035
- "1b1ea24cf0904d33903f0cc7e54e280f",
231036
- "dbc512b354774852af2b5a5f4ba3d470"
233110
+ "Zone Read",
233111
+ "Zone Settings Read",
233112
+ "Zone Transform Rules Read",
233113
+ "Zone Versioning Read",
233114
+ "Zone WAF Read"
233115
+ ],
233116
+ "agw:write": [
233117
+ "AI Gateway Read",
233118
+ "AI Gateway Run",
233119
+ "AI Gateway Write"
231037
233120
  ],
231038
- offline_access: []
233121
+ "connectivity:admin": ["Connectivity Directory Admin"],
233122
+ "connectivity:bind": ["Connectivity Directory Bind"],
233123
+ "connectivity:read": ["Connectivity Directory Read"],
233124
+ "workers:read": [
233125
+ "Workers Scripts Read",
233126
+ "Workers KV Storage Read",
233127
+ "Workers R2 Storage Read",
233128
+ "Workers Routes Read"
233129
+ ]
231039
233130
  };
231040
233131
 
231041
233132
  //#endregion