Skip to content

chore(compose): remove bigtable emulator from demo stack#296

Draft
haileyok wants to merge 1 commit into
mainfrom
claude/issue-96b-remove-bigtable
Draft

chore(compose): remove bigtable emulator from demo stack#296
haileyok wants to merge 1 commit into
mainfrom
claude/issue-96b-remove-bigtable

Conversation

@haileyok
Copy link
Copy Markdown
Member

Description

Removes the bigtable and bigtable-initializer services from docker-compose.yaml, along with the BIGTABLE_EMULATOR_HOST env var on osprey-worker and osprey-ui-api. The demo stack uses MinIO for execution-result storage (OSPREY_EXECUTION_RESULT_STORAGE_BACKEND=minio), so the bigtable emulator was unused dead weight slowing down boot for demo users.

Closes #96 — per @vinaysrao1:

Remove bigtable from docker-compose.yaml. Saves a bunch of start up time for demo users.

Why this is safe (investigation findings)

Bigtable is optional in osprey — not load-bearing at boot:

  • _stdlibplugin/sink_register.py selects an execution-result store via OSPREY_EXECUTION_RESULT_STORAGE_BACKEND. Demo is set to minio, which returns StoredExecutionResultMinIO. StoredExecutionResultBigTable is only constructed when the backend is BIGTABLE.
  • osprey_bigtable in lib/storage/bigtable.py is a lazy singleton. Its _setup_client_instance() (which calls Client(...)) only runs when .table() or .bootstrap() is invoked. Importing the module is side-effect-free beyond registering a config callback.
  • _bootstrap_bigtable() in cli/sinks.py only runs when run-rules-sink --bootstrap-bigtable is passed. The worker entrypoint (entrypoint.shcli-osprey-worker) does not pass that flag.
  • access_audit_log.py references bigtable, but all of those lines are commented out.
  • No service had bigtable or bigtable-initializer in depends_on, so nothing else needed editing.

docker compose -f docker-compose.yaml config --quiet passes after the change.

Scope

  • docker-compose.yaml: remove two services + two env vars.
  • AGENTS.md: update the demo-stack listing comment to drop "Bigtable emulator".

Out-of-scope follow-ups (intentionally not addressed here)

  • init-bigtable.sh is now orphaned (only referenced by the removed bigtable-initializer service). Left in place to keep the diff scoped; safe to delete in a follow-up.
  • docker-compose.test.yaml and example_docker_compose/run_osprey_with_coordinator/docker-compose.coordinator.yaml still reference bigtable. Out of scope for the demo-stack issue.
  • google-cloud-bigtable==2.10.0 is still in pyproject.toml because StoredExecutionResultBigTable remains a valid backend choice for non-demo deployments.

Checklist

  • Tests pass locally (no Python touched; pre-commit hooks ran clean on changed files)
  • uv run ruff check . — n/a (no Python changes)
  • uv tool run fawltydeps --check-unused --pyenv .venv — n/a (no dep changes)
  • Updated CHANGELOG.md with my changes, if applicable — n/a (compose-only demo cleanup)

Bigtable is optional in osprey: the BigTable client is lazily
constructed and only used when OSPREY_EXECUTION_RESULT_STORAGE_BACKEND
is set to BIGTABLE. The demo stack uses MINIO, so the bigtable
emulator + initializer just slow down boot for no functional value.

Removes the bigtable and bigtable-initializer services, drops the
BIGTABLE_EMULATOR_HOST env from osprey-worker and osprey-ui-api,
and updates the demo-stack listing in AGENTS.md.

Closes #96 (per @vinaysrao1 comment).

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

coderabbitai Bot commented May 24, 2026

Important

Review skipped

Draft detected.

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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: de4398d4-fa1e-48dd-bb74-00bc788ea535

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/issue-96b-remove-bigtable

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

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.

Friction Log for setting up Osprey

1 participant