Skip to content

Harden admin-upload-media base64 normalization - #517

Merged
shanerbaner82 merged 1 commit into
mainfrom
feature/admin-mcp-upload-base64-normalize
Sep 12, 2026
Merged

Harden admin-upload-media base64 normalization#517
shanerbaner82 merged 1 commit into
mainfrom
feature/admin-mcp-upload-base64-normalize

Conversation

@shanerbaner82

Copy link
Copy Markdown
Contributor

Summary

  • Normalize admin-upload-media base64 in AdminArticleMediaService::storeHeroFromBase64 before strict base64_decode: strip whitespace, recover + mangled to spaces, accept base64url (-/_), keep rejecting data: URIs.
  • Update Admin MCP server instructions + tool/schema descriptions so agents pass content as a JSON string arg (raw base64, prefer WebP, heroes use directory: "blog/heroes" with slug/article_id, don’t put base64 in prose).
  • Add tests for space-substituted pluses, base64url, whitespace-wrapped base64, and keep data: URI rejection (invalid base64 error notes transport mangling).

Test plan

  • vendor/bin/pint --dirty
  • php -d memory_limit=512M vendor/bin/phpunit --filter=AdminUploadMediaTest (16 tests green)
  • Manual: re-try Growth WebP hero upload via Admin MCP with JSON-arg base64

Normalize content before strict decode (strip whitespace, recover
space-substituted +, accept base64url), document JSON-arg usage for
agents, and cover the recovery paths in AdminUploadMediaTest.
@shanerbaner82
shanerbaner82 force-pushed the feature/admin-mcp-upload-base64-normalize branch from e439974 to cac1760 Compare September 12, 2026 19:39
@shanerbaner82
shanerbaner82 merged commit 77dfa2b into main Sep 12, 2026
2 checks passed
@shanerbaner82
shanerbaner82 deleted the feature/admin-mcp-upload-base64-normalize branch September 12, 2026 19:39
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.

1 participant