docs: make cloud-sink examples runnable standalone via docker-compose - #947
Conversation
Bump cargo-dist to 0.30.3 and adjust its config: - install-updater = false: stop bundling the axoupdate self-updater in the generated installers. - pr-run-mode = "skip": don't run the release dry-run on pull requests (PR validation already lives in ci.yml); the release workflow now fires only on version tags. release.yml is regenerated from dist-workspace.toml accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a docker-compose.yml to each cloud-sink example so it runs with no real cloud account, and document the standalone workflow in each README: - aws_s3 / aws_sqs / aws_lambda — LocalStack + an init script that provisions the bucket / queue / function. The AWS SDK honors AWS_ENDPOINT_URL, so no code change is needed; the READMEs show the env vars to target LocalStack. - gcp_pubsub — Google's Pub/Sub emulator + a curl init container creating the topic and a subscription. Targeted via PUBSUB_EMULATOR_HOST. - gcp_cloudfunction / webhook_basics — an http-echo server stands in for the HTTP endpoint. Each README gains "Run standalone" and "Run against real <cloud>" sections. All six were verified end-to-end against the bundled services. Also fix a pre-existing bug in aws_s3/daemon.toml: the AwsS3 sink only accepts Record::CborBlock, but the example ran a ParseCbor filter, so it errored on the first block regardless of AWS. Removed the filter (N2N already emits CborBlock). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 22 minutes. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (21)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
Adds a
docker-compose.ymlto each cloud-sink example so it runs without a real cloud account, and documents the standalone workflow in each README. Builds on the recent per-example READMEs (#943).aws_s3my-buckets3://my-bucket/mainnet/aws_sqsmy-queueaws_lambdalambda.Invoke => 200gcp_pubsubgcp_cloudfunctionwebhook_basicsEach README gains Run standalone and Run against real <cloud> sections. The AWS/GCP SDKs honor
AWS_ENDPOINT_URL/PUBSUB_EMULATOR_HOST, so no Oura code changes are needed — the READMEs show the env vars to point at the local emulators. All six were verified end-to-end against the bundled services.Config changes
aws_s3/daemon.toml— bug fix: theAwsS3sink only acceptsRecord::CborBlock, but the example ran aParseCborfilter, so it errored on the first block ("Invalid configuration daemon") regardless of AWS. Removed the filter — N2N already emitsCborBlock.aws_sqs/daemon.toml—queue_urlnow points at the bundled LocalStack queue (real-AWS form kept in a comment), matching how the kafka/redis/postgres examples target their bundled service.gcp_cloudfunction/daemon.toml—url = http://localhost:8080+authentication = falsefor the local echo server (the identity-token path needs real Google credentials; documented for real GCP).Notes
Examples left without a bundled service on purpose:
dolos_source/hydra(need a synced chain / live Hydra head),mithril(public remote aggregator),zeromq(sink connects a PUSH socket, so the peer must bind PULL — no off-the-shelf image).🤖 Generated with Claude Code