Skip to content

feat(rds): implement RDS database and snapshot explorer - #210

Merged
fredpena merged 11 commits into
floci-io:mainfrom
Z9RTM:feat/aws-rds-core
Sep 9, 2026
Merged

feat(rds): implement RDS database and snapshot explorer#210
fredpena merged 11 commits into
floci-io:mainfrom
Z9RTM:feat/aws-rds-core

Conversation

@Z9RTM

@Z9RTM Z9RTM commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements full AWS RDS database instance management (create, delete, orderable classes, security groups) and manual snapshots in Cloud Explorer.

  • Defined RDS SPI contracts and schemas for DB instances and manual snapshots (databaseSchema.ts, snapshotsSchema.ts)
  • Implemented AwsDatabaseAdapter with AWS SDK v3 RDSClient handling instance lifecycle (CreateDBInstance, DeleteDBInstance, DescribeDBInstances) and manual snapshots (CreateDBSnapshot, DeleteDBSnapshot, DescribeDBSnapshots)
  • Added dedicated RDS instance creation form (CreateRdsInstanceForm) and manual snapshots view/panel (DatabaseSnapshotsPanel)
  • Removed legacy un-namespaced RDS routes (/api/rds/*) in favor of the unified Cloud Proxy SPI

Closes #105

Stack

Type of change

  • Bug fix (fix:)
  • New feature / service UI (feat:)
  • Breaking change (feat!: or fix!:)
  • Docs / chore

Area

  • Frontend (packages/frontend)
  • API / Cloud Proxy (packages/api)
  • Cloud Explorer adapter / schema
  • Build / CI / Docker

Verification

  • Tested against local Floci core emulator (:4566) with AWS RDS instance creation, deletion, and manual snapshot operations.
  • Added unit tests in packages/api: AwsDatabaseAdapter.test.ts and databaseSchema.test.ts.
  • Local verification commands:
    • pnpm lint: passed
    • pnpm type-check: passed
    • pnpm test: 718 tests passed
    • pnpm build: passed

Checklist

  • pnpm lint, pnpm type-check, pnpm test, and pnpm build pass locally
  • New or updated tests added where it makes sense (bun test in packages/api)
  • No fake/mock data added — unwired states stay empty or show an explicit placeholder
  • Commit messages / PR title follow Conventional Commits

@Z9RTM
Z9RTM force-pushed the feat/aws-rds-core branch from a24ce12 to 48fbadf Compare September 4, 2026 16:05
@Z9RTM
Z9RTM marked this pull request as ready for review September 4, 2026 16:26
@greptile-apps

greptile-apps Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds AWS RDS instance and manual snapshot exploration through the unified Cloud Proxy SPI.

  • Implements RDS instance creation, deletion, listing, inspection, orderable-class discovery, and snapshot operations.
  • Adds dedicated instance-creation and snapshot-management interfaces with capability-aware runtime states.
  • Removes the legacy RDS API and frontend paths.
  • Updates the amd64 release binary to Bun's baseline musl target for compatibility with older CPUs.

Confidence Score: 5/5

The PR appears safe to merge, with the previous RDS form findings resolved and no new actionable defects identified.

The engine-change handler clears the selected instance class, provider-reported classes are used without fabricated fallbacks, and the subsequent release-target change remains compatible with the Alpine amd64 packaging path.

Important Files Changed

Filename Overview
packages/api/src/adapter-aws/AwsDatabaseAdapter.ts Implements validated AWS RDS instance lifecycle, snapshot operations, and orderable-class discovery.
packages/api/src/cloud-spi/databaseSchema.ts Advertises AWS database fields and runtime-aware instance and snapshot capabilities.
packages/api/src/routes/clouds.ts Adds unified Cloud Proxy routes for snapshots and orderable instance classes.
packages/frontend/src/components/CreateRdsInstanceForm.tsx Adds an RDS creation form using only provider-reported instance classes and real security-group data.
packages/frontend/src/components/DatabaseSnapshotsPanel.tsx Adds capability-aware account snapshot listing and creation UI.
packages/frontend/src/components/DynamicResourceView.tsx Integrates the RDS-specific instance form and snapshot tab into the generic explorer.
.github/workflows/release.yml Uses Bun's supported baseline musl target for the amd64 release artifact.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    UI[Cloud Explorer UI] --> Client[Cloud Proxy Client]
    Client --> Routes["/api/clouds/:cloud/services/database"]
    Routes --> Proxy[CloudProxyService]
    Proxy --> Adapter[AwsDatabaseAdapter]
    Adapter --> RDS[AWS SDK v3 RDSClient]
    RDS --> Instances[DB Instances]
    RDS --> Snapshots[Manual Snapshots]
    RDS --> Classes[Orderable Instance Classes]
Loading

Reviews (3): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile

Comment thread packages/frontend/src/components/CreateRdsInstanceForm.tsx Outdated
Comment thread packages/frontend/src/components/CreateRdsInstanceForm.tsx Outdated
@fredpena
fredpena merged commit e2c8d5c into floci-io:main Sep 9, 2026
6 checks passed
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.

feat(aws): complete the RDS adapter (create/delete + snapshots)

2 participants