Skip to content

refactor(cloud): decouple GCP-specific naming, add cloud-neutral API and AWS provider#119

Merged
Pigbibi merged 2 commits into
mainfrom
refactor/cloud-decoupling
Jun 28, 2026
Merged

refactor(cloud): decouple GCP-specific naming, add cloud-neutral API and AWS provider#119
Pigbibi merged 2 commits into
mainfrom
refactor/cloud-decoupling

Conversation

@Pigbibi

@Pigbibi Pigbibi commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Three-phase cleanup to fully decouple cloud provider dependencies from QuantPlatformKit, making it truly provider-agnostic.

Phase 1 — Internal naming unification

  • Rename gcp_project_id → project_id, gcs_prefix_uri → cloud_prefix_uri, gcs_uri → cloud_uri
  • Rename gcs* → cloud*, _parse_gcs_uri → _parse_cloud_uri
  • All public APIs keep backward-compat aliases with DeprecationWarning
  • Env vars: new CLOUD_* names with fallback to old GCS_* names
  • URI parsers now accept both gs:// and s3://

Phase 2 — AWS provider

  • Add aws_provider.py implementing all 6 Protocol types (Secrets Manager, S3, DynamoDB, EC2, ECS/Lambda)
  • Register AWS in all factory functions (QSL_CLOUD_PROVIDER=aws)

Phase 3 — Downstream repos

  • BinancePlatform: remove hardcoded google.cloud.firestore import → use get_document_store()
  • CryptoLivePoolPipelines: rename gcp_project_id/gcs_bucket/gcs_root_prefix
  • All platform repos: update kwarg names to cloud-neutral variants

Testing

  • 366 passed, 0 failed, 1 skipped
  • +7 new AWS provider registration tests

Breaking Changes

None. All old names kept as deprecated aliases with warnings.

Pigbibi and others added 2 commits June 29, 2026 06:15
…and AWS provider

Phase 1 — Internal naming unification:
- Rename gcp_project_id → project_id, gcs_prefix_uri → cloud_prefix_uri
- Rename gcs_uri → cloud_uri, _gcs_* → _cloud_*, _parse_gcs_uri → _parse_cloud_uri
- All public APIs keep backward-compat aliases with DeprecationWarning
- Env vars: new CLOUD_* names with fallback to old GCS_* names
- URI parsers now accept both gs:// and s3://

Phase 2 — AWS provider:
- Add aws_provider.py implementing all 6 Protocol types
- SecretStore → AWS Secrets Manager, ObjectStore → S3
- DocumentStore → DynamoDB, ComputeDiscovery → EC2
- Register aws in all factory functions (QSL_CLOUD_PROVIDER=aws)

Phase 3 — Downstream repos:
- BinancePlatform: remove hardcoded google.cloud.firestore import
- CryptoLivePoolPipelines: rename gcp_project_id/gcs_bucket/gcs_root_prefix
- All platform repos: update kwarg names to cloud-neutral variants

Tests: 366 passed, 0 failed, +7 new AWS provider registration tests.

Co-Authored-By: Claude <noreply@anthropic.com>
Implement AwsSecretStore, AwsObjectStore (S3), AwsDocumentStore (DynamoDB), AwsComputeDiscovery (EC2), AwsDeploymentContext. Activate via QSL_CLOUD_PROVIDER=aws.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🤖 Codex PR Review

⚠️ Review skipped: The Codex review could not be completed.

No Codex service URL or API key configured. Set CODEX_AUDIT_SERVICE_URL, ANTHROPIC_API_KEY, or OPENAI_API_KEY.

Please ensure a human reviewer checks this PR before merging.

@Pigbibi Pigbibi merged commit 6a6fbc1 into main Jun 28, 2026
2 of 4 checks passed
@Pigbibi Pigbibi deleted the refactor/cloud-decoupling branch June 28, 2026 22:28
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.

1 participant