github cloudflare/cloudflare-go v7.7.0

4 hours ago

7.7.0 (2026-07-08)

Full Changelog: v7.6.0...v7.7.0

Breaking Changes

See the v7.7.0 Migration Guide for before/after code examples and actions needed for each change.

  • ssl: Recommendations.Get method and RecommendationGetResponse / RecommendationGetParams types removed.

  • ai_gateway, workflows, zero_trust/dlpemailaccountmapping: merged-union parent fields with same-name-different-type collisions changed from a variant-struct type to interface{}. Affected fields:

    • ai_gateway.AIGateway{New,Update,List,Delete,Get}ResponseSpendLimitsRulesMetadata.Mode (5 structs)
    • workflows.VersionGraphResponseGraphWorkflowPayload.Type
    • zero_trust.DLPEmailAccountMapping{New,Get}ResponseAuthRequirements.Type (2 structs)

    These fields were unreadable in the previous type (marshaling panicked with reflect: call of reflect.Value.SetString on struct Value). The new interface{} type matches the codegen pattern used by sibling merged fields on the same structs (e.g. Values, Fields, AllowedMicrosoftOrganizations); callers should switch on the parent union via AsUnion() for a strongly-typed variant.

  • zero_trust: Devices.DEXTests.{New,Update,List,Get} response type renamed from DeviceDEXTest{New,Update,List,Get}Response to the shared SchemaHTTP; field structure unchanged. Nested types renamed accordingly (e.g. DeviceDEXTestNewResponseDataSchemaData, DeviceDEXTestNewResponseTargetPolicySchemaHTTPTargetPolicy). Callers using := inference and field access continue to compile; callers referencing the removed type names must update to SchemaHTTP.

  • zero_trust: Devices.IPProfiles.List pagination changed from pagination.SinglePage[IPProfile] to pagination.V4PagePaginationArray[IPProfile]. .Result field access and ListAutoPaging() iteration continue to work; callers referencing the pagination type by name must update.

Features

  • NEW SERVICE: email_auth — DMARC reports edit/get and SPF inspect
    • client.EmailAuth.DMARCReports.Edit
    • client.EmailAuth.DMARCReports.Get
    • client.EmailAuth.SPF.Inspect.Get
  • NEW SERVICE: moq — Media over QUIC relay management
    • client.MoQ.Relays.{New,Update,List,Delete,Get}
    • client.MoQ.Relays.Tokens.Rotate
  • zero_trust: publish CASB APIs (client.ZeroTrust.Casb.*)
    • Applications.{List,Get} + Applications.SetupFlows.List
    • Integrations.{New,Update,List,Delete,Get,Pause,Resume}
  • logs: add LogExplorer sub-resource
    • LogExplorer.Query.Sql
    • LogExplorer.Datasets.{New,Update,List,Get}
    • LogExplorer.Datasets.Available.List
  • browser_rendering: add AccessibilityTree.New method
  • email_routing: add EmailRouting.Unlock and EmailRouting.Addresses.Edit methods
  • email_routing: add AccountRules.List method (GET /accounts/{account_id}/email/routing/rules) returning AccountRule with new Zone field; Rules.List gains optional AccountID param (mutually exclusive with ZoneID) so callers can list rules by account or zone
  • email_security: add bulk investigation APIs
    • Investigate.Bulk.{New,List,Delete,Get}
    • Investigate.Bulk.Cancel.New
    • Investigate.Bulk.Messages.List
  • accounts: add Logs.Audit.History and Logs.Audit.ProductCategories methods
  • organizations: add Logs.Audit.History method

Bug Fixes

  • ai_gateway, workflows, zero_trust/dlpemailaccountmapping: fix panics on union-merged parent field decoding by switching same-name-different-type merged fields from a variant-struct type to interface{} (3de4191)
  • browser_rendering: AccessibilityTreeNewParamsBodyObject now uses URL (matching the generated test fixture) instead of HTML (0f44441)
  • dns: restore Shadow* query params on RecordListParams and IncludeShadowMetadata on Record{New,Update,List,Batch,Edit,Get}Params after a codegen regression dropped them (f9b3f27)

Chores

  • api: update composite API spec (20+ codegen sync commits)
  • ci: bump CI job timeouts to 30 minutes (6cad6cb)
  • ci: unblock test job by installing nodejs/npm for prism mock server (3de4191)
  • apply accumulated custom code (CI jobs, GitLab config) (eb2bf2b)

Don't miss a new cloudflare-go release

NewReleases is sending notifications on new releases.