release: 7.7.0#4350
Merged
Merged
Conversation
* 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
* feat(casb): publish CASB APIs to public SDK * feat(casb): publish CASB APIs to public SDK
…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
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.
rotem-cloud
approved these changes
Jul 9, 2026
This file is gitlab-only and should not ship with the public GitHub release.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.Listremovedssl.Recommendations.Get(andRecommendations*types) removedai_gateway/workflows/zero_trustswitched from a variant-struct type tointerface{}(fixes a runtime unmarshal panic; useAsUnion())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.NewLogs.Audit.History/ProductCategorieson accounts + organizationsDevices.DEXTests.*/Devices.IPProfiles.Liston zero_trustEmailRouting.Unlock+EmailRouting.Addresses.EditBug fixes:
dns: restoreShadow*paramsbrowser_rendering: fixAccessibilityTreeNewParamsBodyObject(HTML->URL)ai_gateway/workflows/zero_trust: fix union unmarshal panicSupersedes #4348.