feat: add AWS sandbox provider#11
Conversation
There was a problem hiding this comment.
Sorry @tonycoder-hub, your pull request is larger than the review limit of 150000 diff characters
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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 |
Summary
android-realto AWS Device Farm Remote Access and expose only a loopback WebDriver/Appium relaypc-vmto an EC2 Windows Launch Template and expose only a loopback SSM RDP tunnelThis is stacked on #10. Until #10 merges, this PR also contains its provider-contract commits.
Safety
Every successful start must create the AWS-side expiry schedule. Tagging, schedule, or state failures trigger compensation cleanup and surface any cleanup failure with the recoverable resource ID. Manual destructive actions re-check the caller account and exact remote ownership tags.
The AWS CLI child does not inherit static access-key/session-token values or raw container authorization tokens. Shared/SSO profiles, IMDS, web identity, and validated ECS/EKS credential references remain supported.
Verification
630 passedruff check .git diff --checkPASS_WITH_NOTESNo real AWS account, Device Farm project/device, EC2 Launch Template, or Scheduler role was available, so no paid cloud resource was created and real AWS E2E is not verified.
Draft Exit Criteria
The 600-second minimum TTL reflects Scheduler's minute-level precision. A failed expiry action can retry for up to 24 hours.
Summary by cubic
Adds a provider‑neutral sandbox lifecycle with built‑in
awsandlocalproviders. You can now launch Android real devices via AWS Device Farm and Windows desktop VMs via EC2+SSM, with TTL‑enforced cleanup and no secrets in state.New Features
agy_sandbox_start,agy_sandbox_status,agy_sandbox_stop,agy_sandbox_logs,agy_sandbox_attach.awsprovider: mapsandroid-realto Device Farm (WebDriver/Appium loopback relay) andpc-vmto EC2 Windows via SSM RDP tunnel; enforces expiry via EventBridge Scheduler (min TTL 600s) and reconciles ambiguous EC2 creates with idempotency tokens.localprovider: starts Playwrightrun-server, Android Emulator/adb, and optional Appium for quick local testing.agy-local-sandbox,agy-aws-sandbox. Server now exposes 16 tools total.Security
AWS_*credentials; outputs are redacted and sensitive data (signed endpoints, SSM data, Windows passwords) are not stored or returned.Written for commit b28603a. Summary will update on new commits.