Skip to content

docs(buckets): add AWS S3 and GCS bucket setup guides#128

Closed
miru-agents wants to merge 3 commits into
mainfrom
claude/gcs-tenant-binding-wecjel
Closed

docs(buckets): add AWS S3 and GCS bucket setup guides#128
miru-agents wants to merge 3 commits into
mainfrom
claude/gcs-tenant-binding-wecjel

Conversation

@miru-agents

@miru-agents miru-agents commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds two customer-facing bucket setup guides (there were none) under a new Learn → Buckets nav group, documenting how to configure cloud storage so Miru can verify and use it — with the emphasis on the per-tenant binding the GCS tenant-binding work introduced.

  • learn/buckets/aws.mdx (Amazon S3) — create the bucket + cross-account IAM role; a trust policy requiring an exact StringEquals sts:ExternalId on the workspace id (with a <Warning> that wildcard/absent conditions fail verification, since Miru probes external-id enforcement); s3:PutObject for uploads + the .miru/probe/ verification probe (optional scoped s3:DeleteObject); a <Note> that benign CloudTrail AccessDenied events from Miru's negative probe are expected; and a recommended .miru/probe/ lifecycle rule.
  • learn/buckets/gcs.mdx (Google Cloud Storage) — create the bucket + service account; set up Workload Identity Federation with an attribute_condition that pins the full assumed-role ARN including the workspace-id session name (<Warning> that a role-only prefix fails verification); grant impersonation via a principal://…/subject/… binding to that exact session (gcloud + Terraform in a <CodeGroup>); recommended lifecycle rule.

Both consistent with the merged external_id / session_name field descriptions (openapi #197) and the infra WIF fixture (#178). Miru's AWS account id is a <miru-aws-account> placeholder (copy from the dashboard/support) rather than hardcoded.

Changes

  • docs/learn/buckets/aws.mdx, docs/learn/buckets/gcs.mdx — new guides.
  • docs/docs.json — new "Buckets" sub-group under Learn.
  • (Prior commit c35374a) heading-case allowlist + tests + cspell tokens for the cloud acronyms/product names.

Validation

Ran the repo's lint gate locally against both files: the Go MDX/heading-case prose linter, cspell, and eslint --max-warnings=0 all report 0 issues, and go test ./tools/lint/... passes. Full CI (ci.yml) re-runs these plus mint openapi-check.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SQNjMgcXZYrXA62jydSntw


Generated by Claude Code


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

claude added 3 commits July 14, 2026 03:05
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQNjMgcXZYrXA62jydSntw
Add AWS, S3, GCS, GCP, IAM (acronyms) and Amazon, Google, Cloud,
Storage (proper nouns) to the heading-case allowlist so the Amazon
S3 and Google Cloud Storage bucket guides can use sentence-case
titles and headings. Add matching TestCheck_Allowlist and
TestCheck_FrontmatterTitle cases, and seed cspell with the bucket
guides' spell-check tokens.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQNjMgcXZYrXA62jydSntw
Add customer-facing setup guides under Learn > Buckets: the AWS S3 guide
(exact sts:ExternalId trust policy, expected CloudTrail AccessDenied from
Miru's enforcement probe, .miru/probe/ lifecycle rule) and the GCS guide
(WIF pool/provider pinned to the workspace-id session name, service-account
impersonation binding). Register both in docs.json nav.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQNjMgcXZYrXA62jydSntw
@miru-agents
miru-agents marked this pull request as ready for review July 14, 2026 15:47
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ben-miru ben-miru closed this Jul 14, 2026
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.

3 participants