Skip to content

feat(persistence): add opt-in DocumentDB support - #2418

Draft
sriaradhyula wants to merge 1 commit into
mainfrom
prebuild/feat/documentdb-support
Draft

feat(persistence): add opt-in DocumentDB support#2418
sriaradhyula wants to merge 1 commit into
mainfrom
prebuild/feat/documentdb-support

Conversation

@sriaradhyula

@sriaradhyula sriaradhyula commented Aug 20, 2026

Copy link
Copy Markdown
Member

Description

Adds opt-in support for the MIT-licensed, PostgreSQL-backed DocumentDB project while keeping MongoDB as CAIPE's default persistence provider.

Design/default-provider discussion: #2419

  • Adds caipe-documentdb profiles to the production and development Compose stacks.
  • Adds --database=mongodb|documentdb and an interactive provider choice to setup-caipe.sh.
  • Extends the caipe-ui-mongodb Helm subchart with provider: mongodb|documentdb and adds an umbrella-chart values example.
  • Routes UI/BFF, Dynamic Agents, scheduler, autonomous agents, Slack, and Webex through the shared MONGODB_URI contract.
  • Documents the provider choice, TLS expectations, and manual migration/rollback requirements.
  • Pins DocumentDB Local to pg17-0.113.0; upstream 0.114.0 documents an active-connection regression.

MongoDB remains the default in .env.example, Compose profiles, setup-caipe, and Helm values. This PR does not migrate existing data or remove MongoDB support.

Related compatibility work: #886, #1321, #1924.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality not to work as expected)
  • Documentation update

How Has This Been Tested?

  • bash -n setup-caipe.sh
  • bash tests/integration/test_setup_caipe_mongodb_password.sh (5 checks passed)
  • uv run ruff check tests/test_documentdb_helm.py
  • uv run pytest -q tests/test_documentdb_helm.py tests/test_mongodb_strict_passwords.py (18 passed)
  • helm lint and helm template for both MongoDB and DocumentDB subchart paths
  • Full umbrella-chart renders for both providers
  • docker compose config --quiet for both providers in production and development Compose files
  • Live DocumentDB Compose smoke test: PyMongo CRUD, compound unique index, aggregation, 17 MiB GridFS put/get/delete, and LangGraph MongoDBSaver persistence
  • Validation-environment migration: 978 documents restored with exact collection counts and index comparisons; the source MongoDB was retained for rollback

The broader tests/test_helm_probes.py suite currently has unrelated baseline failures in standalone caipe-ui values and existing Dynamic Agents/ontology probe expectations (3 failures, 4 errors; 50 tests passed).

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Signed-off-by: Sri Aradhyula <sraradhy@cisco.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ No proprietary content detected. This PR is clear for review!

@github-actions github-actions Bot added the dev Normal PR to main; uses dev prerelease versioning label Aug 20, 2026
@caipe-ci-release

Copy link
Copy Markdown
Contributor

Prebuild Artifacts for 0a7abd2

Branch: prebuild/feat/documentdb-support
Commit: 0a7abd2

Helm Charts

Chart Registry Version Status CI
ai-platform-engineering ghcr.io/cnoe-io/prebuild-helm-charts 0.5.69-dev.4-feat-documentdb-support-1 Published CI
Helm install commands
helm upgrade --install ai-platform oci://ghcr.io/cnoe-io/prebuild-helm-charts/ai-platform-engineering --version 0.5.69-dev.4-feat-documentdb-support-1

These prebuild artifacts will be automatically cleaned up when the PR is closed or merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev Normal PR to main; uses dev prerelease versioning

Projects

Development

Successfully merging this pull request may close these issues.

1 participant