Commit e5e5a9b
feat(push): cf push --https for direct-to-S3 upload (2.5.0) (#18)
* feat(push): cf push --https for direct-to-S3 upload (2.5.0)
Adds a third push option alongside SFTP and `cf push --remote`. Use when
both port 22 and GitHub are blocked by a corporate firewall but outbound
HTTPS to AWS S3 is allowed.
- New _push_https flow: picks wrapper GDS (+ user_defines.v when non-openframe),
SHA-256s each file locally, asks the platform for pre-signed PUT URLs,
PUTs each file directly to S3, then asks the platform to commit them.
- Mutually exclusive with --remote.
- No Git involvement — the platform synthesizes .cf/project.json server-side
and the Lambda re-verifies sha256 byte-for-byte before staging on EFS.
- README + portal docs updated to describe all three push modes.
Made-with: Cursor
* fix(api): surface backend error detail instead of bare HTTP status
_api_get/_api_post/_api_put were printing the raw
`Client error '409 Conflict' for url ...` message from httpx when the
backend returned a 4xx/5xx. That dropped the useful bit — FastAPI's
`{"detail": "..."}` payload — so users saw no actionable reason.
Now extracts `detail` (string or validation-list form) and prints
`HTTP 409: <detail>`. Applies to every CLI command that goes through
the shared _api_* helpers (push --remote, push --https, link, etc.).
Made-with: Cursor
* chore: re-level to 2.4.3 for the --https push feature
cf push --https is a transport variant of the existing push command,
not a standalone new capability — same manifest/sync flow as --remote,
which also shipped as a patch under 2.3.x. Rolling back the earlier
jump to 2.5.0 so the --https work ships as 2.4.3 alongside the
error-surfacing fix on the same feature branch.
Made-with: Cursor
* feat(push): progress bar for cf push --https uploads (2.4.4)
Matches the rich progress UX of the SFTP push path (utils.upload_with_progress):
percent, bytes, transfer speed and elapsed time per file. We stream the
body with a generator so httpx can drive bar updates on every chunk,
and set Content-Length explicitly so S3 doesn't fall back to chunked
encoding (pre-signed PUTs don't allow it).
Made-with: Cursor
---------
Co-authored-by: jdicorpo <jdicorpo@gmail.com>1 parent b992529 commit e5e5a9b
3 files changed
Lines changed: 350 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
| 580 | + | |
580 | 581 | | |
581 | 582 | | |
582 | 583 | | |
| |||
610 | 611 | | |
611 | 612 | | |
612 | 613 | | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
613 | 642 | | |
614 | 643 | | |
615 | 644 | | |
| |||
0 commit comments