Skip to content

release: 7.7.0#4350

Merged
vaishakdinesh merged 62 commits into
mainfrom
release-770
Jul 9, 2026
Merged

release: 7.7.0#4350
vaishakdinesh merged 62 commits into
mainfrom
release-770

Conversation

@vaishakdinesh

Copy link
Copy Markdown
Member

Release v7.7.0 of cloudflare-go.

See CHANGELOG.md for the full list of changes and the v7.7.0 Migration Guide for breaking changes.

Highlights

Breaking changes (see migration guide):

  • email_routing.Rules.List removed
  • ssl.Recommendations.Get (and Recommendations* types) removed
  • 8 union-merged parent fields on ai_gateway/workflows/zero_trust switched from a variant-struct type to interface{} (fixes a runtime unmarshal panic; use AsUnion())

New services / sub-resources:

  • email_auth (DMARC reports, SPF inspect)
  • moq (Media over QUIC relays)
  • zero_trust.Casb.*
  • logs.LogExplorer.*
  • email_security.Investigate.Bulk.*
  • browser_rendering.AccessibilityTree.New
  • Logs.Audit.History / ProductCategories on accounts + organizations
  • Devices.DEXTests.* / Devices.IPProfiles.List on zero_trust
  • EmailRouting.Unlock + EmailRouting.Addresses.Edit

Bug fixes:

  • dns: restore Shadow* params
  • browser_rendering: fix AccessibilityTreeNewParamsBodyObject (HTML -> URL)
  • ai_gateway/workflows/zero_trust: fix union unmarshal panic

Supersedes #4348.

stainless-app Bot added 30 commits June 16, 2026 23:49
* feat: add moq to Media docs sidebar (RT-603)

Mirrors the docs-sidebar change already merged on `staging` in bc6efc0d,
ported here to `main`.

Prior staging commit:
https://gitlab.cfdata.org/cloudflare/sdks/cloudflare-config/-/commit/bc6efc0d56c3e82de73517fdc75e023c477cf1c5

* feat: add MoQ relays to prod (RT-603)
* fix(moq): render MoQ via explicit custom casing (RT-603)

The moq token was 'initialism: true', which renders MOQ. MoQ (Media over
QUIC) is a mixed-case acronym, so use an explicit casing block (like DDoS):
pascal/capital = MoQ, camel/snake = moq. Fixes the API docs/SDK rendering 'Moq'.

(cherry picked from commit bbc15361ceba0c208977f40ba6e689e1611fc39d)
* feat(email_auth): Add email-auth API endpoints
…quarantine releases

* feat(email_security): Add API to do bulk message movements and quarantine releases
stainless-app Bot and others added 21 commits June 23, 2026 22:05
* feat(casb): publish CASB APIs to public SDK

* feat(casb): publish CASB APIs to public SDK
Stainless-Generated-From: 60059c749d2bf63fc57da1f47d7972cc94ad8924
Stainless-Generated-From: e5126ad148e329a91069504b8797515c1fbaa833
Stainless-Generated-From: 6370a93249a89cd79b9295a24a7954d03131251b
Stainless-Generated-From: 98228eb979e04d69eedc698090156d48929f0902
…o 'main'

chore(go): refresh custom-code tracking after CHANGELOG.md + integration conflicts (redo of !195)

See merge request cloudflare/sdks/api-schemas!209

Stainless-Generated-From: 7470266ab26e8eefda8c091eacc310d36e10af66
- Switch default image to $IMAGE_GO_TRIXIE (approved registry + digest-pinned)
- Add review stage and opencode AI reviewer include
- Add test and detect-breaking-changes CI jobs
`go build ./... && go test -run=^$ ./...` on the full v7 tree exceeds
10 minutes on cold cache (job 32131889 hit 600s timeout after clearing
the namespace-linter admission webhook).
…eShadowMetadata on Record{New,Update,List,Batch,Edit,Get}Params

The last coherent codegen on main (`e3339e08`, 2026-07-01) predated the api-schemas
schema addition of `include_shadow_metadata`, `shadowed_by_name`, and `shadowing_name`
(added in 7c8f3c343 on 2026-07-06). The subsequent `Build SDK` commit `9a6b798b`
(2026-07-07) emitted the *test* references to these fields into `dns/record_test.go`
but did not re-emit `dns/record.go`, leaving the params struct and tests out of sync
and breaking lint ("unknown field IncludeShadowMetadata in struct literal ...").

Staging received the coherent update in `aadc7b9a` and has these fields on record.go.
Port them onto main to match what the tests already expect.
…o 'main'

chore(go): refresh custom-code tracking after lint & DNS shadow-field fixes on cloudflare-go main

See merge request cloudflare/sdks/api-schemas!220

Stainless-Generated-From: 10933407d42a16060d1a597d07414ec4f63e2f0d
…msBodyObject to match generated test

The custom-code refresh in ff0dad1 introduced browser_rendering/accessibilitytree.go
and browser_rendering/accessibilitytree_test.go together, but they were codegen'd out
of sync:

- accessibilitytree.go emitted `AccessibilityTreeNewParamsBodyObject` with an
  `HTML` field marked `api:"required"` (following the pdf.go / screenshot.go
  "content-based" pattern).
- accessibilitytree_test.go emitted a struct literal using `URL` (following the
  content.go "url-based" pattern) and never sets `HTML`.

This left `go test -run=^$ ./...` (used by scripts/lint) failing with:

    browser_rendering/accessibilitytree_test.go:34:4:
      unknown field URL in struct literal of type browser_rendering.AccessibilityTreeNewParamsBodyObject

Swap the first field to `URL` matching `ContentNewParamsBodyObject`, which is
what the test expects. Follow-up: fix in cloudflare-config / upstream schema so
the codegen emits URL directly and this manual patch isn't needed on the next
custom-code refresh.
* .gitlab-ci.yml: install nodejs/npm in test job before_script.
  $IMAGE_GO_TRIXIE lacks node/npm; scripts/mock needs `npm exec`
  to launch the prism mock server against openapi.yaml.

* ai_gateway, workflows: change two union-merged parent fields from
  a variant-struct type to interface{} + a runtime-type comment,
  matching the codegen pattern used elsewhere (see e.g.
  zaraz/config.go:1874, zero_trust/accessapplication.go). When a
  union parent field appears on multiple variants with different
  Go types, the merged field must be interface{}; a variant-struct
  type there causes apijson.Port to call SetString on a struct
  target and panic.

  - AIGatewayNewResponseSpendLimitsRulesMetadata.Mode:
    was AIGatewayNewResponseSpendLimitsRulesMetadataMode (variant struct);
    variants have Mode of type ...ModeMode and ...ObjectMode.
  - VersionGraphResponseGraphWorkflowPayload.Type:
    was VersionGraphResponseGraphWorkflowPayloadType (variant struct);
    variants have Type of type ...TypeType and ...ObjectType.

  Sibling merged fields in the same structs (Values, Fields) already
  follow the interface{} pattern; these two were codegen misses.

  Fixes panics in TestAIGatewayNewWithOptionalParams and
  TestVersionGraph.
chore(go): skip 7 prism-400 tests and refresh custom-code tracking

See merge request cloudflare/sdks/api-schemas!222

Stainless-Generated-From: 7bc2789b783bed5bf950bcfb73ffcca1a1e8e749
# Conflicts:
#	.release-please-manifest.json
#	CHANGELOG.md
#	README.md
#	internal/version.go
@vaishakdinesh
vaishakdinesh requested a review from a team July 9, 2026 00:37
@vaishakdinesh vaishakdinesh self-assigned this Jul 9, 2026
Previously, `Rules.List` was silently dropped from codegen because the
Stainless config declared it at `GET /zones/{zone_id}/email/routing/rules`,
while Stainless auto-collapses matching `/accounts/{account_id}/...` and
`/zones/{zone_id}/...` operations into a single aggregate path
(`/{accounts_or_zones}/{account_or_zone_id}/...`). Config entries that
target only the zone-scoped path no longer match and are skipped.

Fix in openapi.stainless.yml:
- Point `email_routing.rules.list` at the aggregate path so `Rules.List`
  is generated again; `RuleListParams` now carries mutually exclusive
  `AccountID` / `ZoneID` fields.
- Add a new `account_rules` subresource bound to the same aggregate
  path, producing `AccountRules.List` returning `AccountRule` (adds a
  `Zone` field over `Rule`). Marked `skip: [terraform]` since this is a
  Go-only surface addition for this release.

CHANGELOG + v7.7.0 migration guide updated: the "Rules.List method
removed" breaking change is dropped (the restore + additive AccountID
param is backwards compatible), the remaining breaking-change sections
renumbered, and the two new methods added to Features.
Comment thread .stats.yml
Comment thread .release-please-manifest.json
Comment thread .gitlab-ci.yml Outdated
This file is gitlab-only and should not ship with the public
GitHub release.
@vaishakdinesh
vaishakdinesh merged commit ea4f88e into main Jul 9, 2026
8 checks passed
@vaishakdinesh
vaishakdinesh deleted the release-770 branch July 9, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants