Skip to content

feat(drop): deploy uploaded source archives - #549

Draft
dviejokfs wants to merge 3 commits into
mainfrom
feat/vercel-zero-config-compat
Draft

feat(drop): deploy uploaded source archives#549
dviejokfs wants to merge 3 commits into
mainfrom
feat/vercel-zero-config-compat

Conversation

@dviejokfs

Copy link
Copy Markdown
Contributor

Summary

  • add /drop project inspection and uploaded-source deployment APIs
  • detect framework/runtime presets from uploaded ZIP manifests
  • persist source bundles and execute them through the deployment workflow without Git
  • add browser and CLI Drop flows with project creation, deployment-detail redirect, rollback, and cleanup
  • remove project-owned Docker containers and stored bundles when a project is deleted
  • add a transient zero-config compatibility harness

Paired fixture PR: gotempsh/temps-examples#13

Status

Draft — security review is currently REQUEST_CHANGES. Do not merge yet.

Known blocking work:

  • extraction cleanup records the parent directory and leaks uploaded-source-* trees
  • project.directory needs strict relative-path validation and canonical containment before becoming a Docker build context
  • uploaded Docker Compose candidates bypass source extraction
  • PR evidence is still missing migration down/up proof, corrected UI capture, and a real CLI invocation

Additional follow-up findings include streaming large multipart uploads rather than buffering 500 MB, enforcing extraction quotas from actual bytes written, regenerating SDK operations for both endpoints, restricting advertised archives to implemented formats, and adding .NET manifest detection.

Evidence

Rust

cargo check --lib
cargo clippy --lib -- -D warnings

Result: both completed successfully. Cargo check built 540 crates with zero errors; clippy completed with zero errors.

Web

cd web
bunx tsc --noEmit
bun test src/lib/drop-archive.test.ts src/lib/drop-project-name.test.ts

Result: TypeScript passed; 11 tests passed, 0 failed.

Compatibility harness

bash scripts/test-zero-config-compat.sh
bash -n scripts/zero-config-compat.sh

Result: zero-config compatibility harness test passed.

Uploaded-source runtime matrix

The paired temps-examples runner packaged each source directory, called /api/drop/inspect, created an uploaded-source project, deployed it, verified / and /health, deleted the project, and checked Docker cleanup.

Runtime Result
Java 17 passed
Python passed
Rust passed
Go passed
.NET 8 inspection failed because .csproj detection is not implemented

Project rows, stored fixture archives, and labeled Docker containers were removed. The run reproduced the extraction-directory leak; the seven test directories were then removed manually.

Known baseline check failure

apps/temps-cli/bun run typecheck reports existing errors in openapi-ts.config.ts, env-sync, environments, notifications, and providers. It reported no error in the new Drop command. This draft does not claim the repository-wide CLI type-check is green.

Review findings to resolve

  • move uploaded-source orchestration from the handler into a typed service and make durable writes atomic
  • validate archive/build paths at every boundary
  • make extraction cleanup reliable on success, failure, and cancellation
  • stream uploads and account for actual extracted bytes
  • add handler/service/planner/job tests, including Compose and wrapped static ZIPs
  • regenerate web and CLI SDK clients and replace raw endpoint fetches
  • add .tempsignore/.gitignore packaging behavior to avoid uploading secrets and build directories

Add browser and CLI Drop flows, preset inspection, persisted source bundles, uploaded-source workflow planning, and project container cleanup.
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

📓 Changelog preview

This is what your commits will add to the generated CHANGELOG.md at release time (via git-cliff). Do not edit CHANGELOG.md by hand — it is generated from your Conventional Commit messages.

## [Unreleased]

### Added

- **drop:** Deploy uploaded source archives

### Fixed

- **drop:** Harden uploaded deployments and cleanup

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