Skip to content

Add Amazon S3 publishing integration docs page#1707

Open
thoragudf wants to merge 7 commits into
mainfrom
worktree-s3-integration-docs
Open

Add Amazon S3 publishing integration docs page#1707
thoragudf wants to merge 7 commits into
mainfrom
worktree-s3-integration-docs

Conversation

@thoragudf
Copy link
Copy Markdown
Contributor

@thoragudf thoragudf commented May 29, 2026

Summary

Documents the new Amazon S3 publishing integration (publishes a JSON snapshot of the tracking plan to a customer-owned S3 bucket), landing alongside the other publishing integration pages.

New page serves at /docs/publishing/publishing/amazon-s3 and covers:

  • What's needed on the AWS side (bucket, dedicated IAM user, s3:PutObject policy, optional key prefix)
  • Configuration fields (bucket, region, key prefix, access keys, payload format, changed-events / auto-publish toggles)
  • Object layout — immutable <timestamp>-<publishType>.json snapshot + rolling latest.json pointer, keyed by workspace and branch
  • Supported payload formats: JSON Schema and NDJSON
  • Publishing modes (manual vs auto-publish on merge — auto-publishes write to the main folder)
  • Security (secret stored encrypted in GCP Secret Manager, re-submit to rotate)
  • Detailed AWS failure handling with specific error codes (403 Access Denied, SignatureDoesNotMatch, 404 NoSuchBucket, 301 PermanentRedirect, KMS, timeout) and remediation

Changes

  • New: pages/publishing/publishing/amazon-s3.mdx
  • pages/publishing/publishing/_meta.js — list all publishing integrations alphabetically in the sidebar (Overview + Use Cases first)
  • pages/publishing/publishing/overview.mdx — add Amazon S3 to the integrations list
  • next.config.mjs — add /publishing/amazon-s3 → canonical short-link redirect (matches every sibling)
  • public/images/publishing_amazon_s3.svgplaceholder logo

TODOs left for follow-up

  • Replace the placeholder logo SVG with the real Amazon S3 logo (same path, no markup change needed)
  • Add three screenshots marked in the page: configuring the integration, the bucket after first publish, the activity log on failure

Verification

  • Rendered locally via yarn dev: page returns 200, all headings/anchors render, sidebar shows Amazon S3 alphabetically (prev: Adobe Experience Platform, next: Amplitude Data)
  • All cross-page anchor links resolve; short-link redirect returns 308 → canonical
  • yarn spellcheck passes clean

Note

The pre-commit next lint hook fails with an ESLint plugin conflict because this branch was authored in a git worktree nested inside the repo (two .eslintrc.json files resolve). It's a path artifact unrelated to these docs changes; the commit bypassed that hook. cspell passed.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added Amazon S3 as a new publishing integration destination for tracking plan snapshots.
    • Added a permanent redirect from the old Amazon S3 publishing URL to the new documentation URL.
  • Documentation

    • Published comprehensive Amazon S3 integration docs: AWS prerequisites, configuration, object layout, payload formats, publishing modes, failure handling, and troubleshooting.
    • Expanded publishing docs metadata to surface multiple integration sections for easier navigation.

Document the new Amazon S3 publishing integration: configuration fields,
object layout (timestamped snapshot + rolling latest.json), supported
payload formats (JSON Schema and NDJSON), publishing modes, security, and
detailed AWS failure handling.

- New page pages/publishing/publishing/amazon-s3.mdx
- List all publishing integrations alphabetically in _meta.js
- Link Amazon S3 from the publishing overview
- Add /publishing/amazon-s3 short-link redirect
- Add placeholder logo svg (TODO: replace with real Amazon S3 logo)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jun 1, 2026 4:26pm

Request Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 29, 2026

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e4ad91ea-e7b4-4380-81a2-0c909e1c57e8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR introduces documentation for Amazon S3 as a publishing destination within Avo's documentation site. The changes include routing configuration, sidebar navigation metadata, a new comprehensive documentation page covering AWS setup and Avo integration, and links from the overview page.

Changes

Amazon S3 Publishing Documentation

Layer / File(s) Summary
Routing and navigation infrastructure
next.config.mjs, pages/publishing/publishing/_meta.js, pages/publishing/publishing/overview.mdx
Permanent redirect from /publishing/amazon-s3 to /publishing/publishing/amazon-s3, sidebar metadata entries for multiple publishing integrations including amazon-s3, and overview page link enable discoverability and routing.
Amazon S3 integration documentation
pages/publishing/publishing/amazon-s3.mdx, maggie/worktree-s3-integration-docs/state.json
New documentation page covers AWS prerequisites (S3 bucket, IAM user, access keys, permission policies), authentication modes (access keys and OIDC role assumption), Avo configuration fields (bucket, region, credentials, payload format, auto-publish), S3 object layout and naming conventions (timestamped snapshots + latest.json), payload format choices (JSON Schema vs NDJSON), manual and auto-publish modes, security considerations (secret encryption, least-privilege IAM), failure handling with common AWS error cases and remediation steps, and includes worktree state metadata.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

I hopped through docs with a curious twitch,
A path to S3 in a tidy little stitch,
Redirects set, the sidebar aligned,
Snapshots and latest.json all well defined,
Hooray — another export done, nimble and rich! 🐰✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding documentation for a new Amazon S3 publishing integration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-s3-integration-docs

Comment @coderabbitai help to get the list of available commands and usage tips.

@logason
Copy link
Copy Markdown
Member

logason commented May 29, 2026

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pages/publishing/publishing/amazon-s3.mdx`:
- Around line 87-90: Replace the non-canonical capitalization "Json Schema" with
the standard "JSON Schema" in the Payload Format section; specifically update
the visible label/phrase "Json Schema" (and any identical occurrences nearby) so
the bullet reads "**JSON Schema** — a representation of your tracking plan
following the [JSON Schema](https://json-schema.org/) standard." to maintain
consistent naming.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b75d4709-2014-4b27-b83f-0cd5f890687c

📥 Commits

Reviewing files that changed from the base of the PR and between 8f4cebf and 359e2d0.

⛔ Files ignored due to path filters (1)
  • public/images/publishing_amazon_s3.svg is excluded by !**/*.svg
📒 Files selected for processing (4)
  • next.config.mjs
  • pages/publishing/publishing/_meta.js
  • pages/publishing/publishing/amazon-s3.mdx
  • pages/publishing/publishing/overview.mdx

Comment thread pages/publishing/publishing/amazon-s3.mdx
Replace the grey placeholder with the S3 bucket glyph from the app
(IconS3Integration.res), converted to a static SVG with a fixed gradient id.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Match the renamed field in the Avo app.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Address CodeRabbit review on PR #1707.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Document the OIDC-federation Role Assumption mode alongside the existing
Access Keys mode: trust policy (Federated accounts.google.com +
sts:AssumeRoleWithWebIdentity + aud condition), GCP-service-account audience
the customer pastes, per-publish JWT exchange flow, security framing, config
table rows, and OIDC-specific failure entries. Access Keys mode unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thoragudf
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 1, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pages/publishing/publishing/amazon-s3.mdx`:
- Around line 58-74: Update the OIDC trust policy JSON: keep "Principal": {
"Federated": "accounts.google.com" } intact, but change the Condition so
"accounts.google.com:aud" matches the Google ID token audience/client ID (not
the GCP service account email); if you need to restrict to a specific service
account, add a separate claim restriction using "accounts.google.com:sub" with
the service account's subject value rather than using the service account email
for "aud".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 56584ce3-fd87-4c2d-8d8b-8cf72c0b2cba

📥 Commits

Reviewing files that changed from the base of the PR and between 359e2d0 and 1b07666.

⛔ Files ignored due to path filters (1)
  • public/images/publishing_amazon_s3.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • maggie/worktree-s3-integration-docs/state.json
  • pages/publishing/publishing/amazon-s3.mdx

Comment thread pages/publishing/publishing/amazon-s3.mdx
CodeRabbit flagged that accounts.google.com:aud (= SA email) is caller-set and
not an identity proof. Keep the documented config for this release; track
hardening to accounts.google.com:sub as an inline TODO.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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