Releases: shuttle-hq/shuttle
v0.49.0
Shuttle: v0.49.0 update
Google Login
You can now Log in with Google on the Shuttle Console!
New CLI login flow
shuttle login
now uses the Shuttle Console to authorize the CLI login with one click. No need to copy + paste the API key!
shuttle login --prompt
and shuttle login --api-key <key>
are still available as fallbacks.
Other updates
shuttle project update name <new-name>
allows you to rename a project. Note: This also updates the default subdomain name. Custom domains remain unchanged.- (shuttle.rs) Added
cargo shuttle resource dump database::shared::postgres
to allow migrating postgres data out of the shared cluster. This can be used to move data to the shuttle.dev platform (docs). - Fixed a bug where global args would not autocomplete in shell completions
shuttle generate shell
shell completions now correctly generate completions forshuttle
- Fixed
shuttle run
requiring project linking, fixedshuttle init
project linking - Improved some API errors
Contributions
- @tomasguinzburg fixed cargo watch docs shuttle-hq/shuttle-docs#304
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat: compute tier upgrade admin command by @oddgrd in #1906
- feat: dump db endpoint, fixes, Rust 1.82 by @jonaro00 in #1907
- fix(cargo-shuttle): shell completion, refactors by @jonaro00 in #1909
- feat(common): project config update models by @jonaro00 in #1910
- fix: don't attempt project linking on local run, create project and link on beta init by @oddgrd in #1911
- feat(cargo-shuttle): update project name command by @jonaro00 in #1912
- fix: update archive endpoint by @jonaro00 in #1914
- feat(cargo-shuttle): automatic login via console, login --prompt by @jonaro00 in #1913
- feat(cargo-shuttle): redeploy command by @jonaro00 in #1916
- chore: v0.49.0 by @jonaro00 in #1917
Full Changelog: v0.48.3...v0.49.0
cargo-shuttle v0.48.3
Bugfix release
What's Changed
- fix: shuttle-common 0.48.2 by @jonaro00 in #1901
- fix(cargo-shuttle): don't print platform info in unrelated commands by @jonaro00 in #1902
- chore: cargo update by @jonaro00 in #1904
- nit: allow deprecated chrono method in deprecated backends by @jonaro00 in #1905
Full Changelog: v0.48.2...v0.48.3
cargo-shuttle v0.48.2
cargo-shuttle v0.48.1
Bugfix release
What's Changed
- feat(installer): install shuttle binary by @jonaro00 in #1890
- fix: otel exporter config by @jonaro00 in #1891
- fix: reduce gateway cert renew sleep by @oddgrd in #1888
- fix(cargo-shuttle): beta: create missing project on deploy, fix local run, better project link dialogue by @jonaro00 in #1893
- feat(cargo-shuttle): beta deploy.deny_dirty config, allow dirty deploys by default by @jonaro00 in #1894
- feat(cargo-shuttle): Shuttle.toml new key names by @jonaro00 in #1895
- chore: bump cargo-shuttle by @jonaro00 in #1897
Full Changelog: v0.48.0...v0.48.1
v0.48.0
Shuttle: v0.48.0 update
This update packs a lot of changes under the hood in preparation of upcoming platform updates. Stay tuned for more announcements!
Updates
- Bumped
sqlx
to 0.8.2 inshuttle-shared-db
andshuttle-aws-rds
- MSRV is now 1.78
- Rust 1.81 is now available in deployers after a project restart
Contributions
- @edgerunnergit added
diesel-async
support toshuttle-aws-rds
#1808 - @sentinel1909 bumped
sqlx
to 0.8 #1847 - @lielfr fixed the install script for Arch #1861
- @supleed2 added
upgrade
subcommand #1848
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- chore: remove qa workflows by @jonaro00 in #1837
- feat: Add
diesel-async
support forshuttle-aws-rds
by @edgerunnergit in #1808 - fix(resource-recorder): check project permission by project id by @jonaro00 in #1839
- fix: audit by @jonaro00 in #1841
- feat(cargo-shuttle): beta command fixes, beta deployment list pagination, hide deprecated args, beta raw tables by @jonaro00 in #1843
- feat: Rust 1.80 by @jonaro00 in #1845
- improvement: bump sqlx to 0.8 in libraries by @sentinel1909 in #1847
- feat(runtime): beta runtime as client by @jonaro00 in #1844
- feat(cargo-shuttle): beta updated local run by @jonaro00 in #1850
- fix: ⌨️ fix typo by @rodneylab in #1855
- feat(deployer): revert typo fix by @oddgrd in #1856
- chore: updated beta api url by @jonaro00 in #1857
- feat: instrument permit calls by @oddgrd in #1858
- feat(cargo-shuttle): beta account command, cleanup by @jonaro00 in #1859
- fix(c-s): windows by @jonaro00 in #1862
- fix: failing install on Arch Linux (#1810) by @lielfr in #1861
- feat(cargo-shuttle): beta certificate command by @jonaro00 in #1860
- feat(common): beta certificate models update by @jonaro00 in #1865
- chore: disable honeycomb export, remove vars by @oddgrd in #1868
- chore: sqlx 0.8.2, MSRV 1.78 by @jonaro00 in #1867
- feat: disable CLI error suggestions for beta by @oddgrd in #1869
- feat(common): beta models update, add typeshare by @jonaro00 in #1871
- feat(common): typeshare apierror by @jonaro00 in #1874
- fix: remove teams call for beta project list by @oddgrd in #1872
- fix: remove blanket suggestion to open ticket by @oddgrd in #1870
- feat: beta models update, fix tables and prints by @jonaro00 in #1875
- fix: windows backslash paths in zip by @jonaro00 in #1877
- feat(runtime): improve beta tracing by @jonaro00 in #1879
- feat(admin): renew certs command by @jonaro00 in #1880
- feat(cargo-shuttle): shuttle binary by @jonaro00 in #1878
- feat(cargo-shuttle): Add
upgrade
subcommand to run install script by @supleed2 in #1848 - fix: beta local run resource fixes by @jonaro00 in #1876
- chore: deployer rust 1.81 by @oddgrd in #1883
- fix(admin): beta set access endpoint by @jonaro00 in #1884
- feat(cargo-shuttle): beta project linking by @jonaro00 in #1885
- chore: v0.48.0 by @jonaro00 in #1887
New Contributors
- @edgerunnergit made their first contribution in #1808
- @rodneylab made their first contribution in #1855
- @lielfr made their first contribution in #1861
Full Changelog: v0.47.0...v0.48.0
v0.47.0
Shuttle: v0.47.0 update
New shuttle-openai
plugin
We now provide a macro for easily setting up an async_openai::Client
:
#[shuttle_runtime::main]
async fn main(
#[shuttle_openai::OpenAI(api_key = "{secrets.OPENAI_API_KEY}")]
openai: Client<OpenAIConfig>,
) -> shuttle_axum::ShuttleAxum { ... }
Check out this example for the full code.
New shuttle-api-client
library
The cargo-shuttle logic for calling the Shuttle API has been extracted into a separate crate. The API and public interface will evolve as we release more features.
No URL path sanitization
We are no longer sanitizing path traversals in the proxy, making it more transparent & correct, and letting the user code (or web framework) handle it.
Other updates
- (Hotfixed during 0.46.0) Fixed the team project list endpoint
- (Released during 0.46.0) Rust 1.79 available in deployers
- MSRV is now 1.77
cargo shuttle deploy --output-archive <path>
can now be used to dump the deployment archive to disk instead of deploying it.- Added more detailed request debugging in
cargo shuttle --debug
. Be careful when using the debug flag, the output can contain sensitive information.
Contributions
- @Dreaming-Codes updated the Qdrant dependency in
shuttle-qdrant
to 1.10
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat(cargo-shuttle): beta: support image deployment by @jonaro00 in #1796
- chore(auth): don't migrate pool by @jonaro00 in #1803
- chore: Rust 1.79, MSRV 1.77, cleanup by @jonaro00 in #1800
- fix(auth): migrate in tests by @jonaro00 in #1805
- feat(backends): permit delete project idempotency by @jonaro00 in #1806
- feat: provisioner idempotence changes by @oddgrd in #1795
- feat: filter permit project based on platform by @jonaro00 in #1811
- fix: local development by @jonaro00 in #1809
- feat: beta builder args by @jonaro00 in #1813
- feat: implement rds resource on beta platform by @oddgrd in #1812
- feat(common): proxy backend by @jonaro00 in #1815
- fix(backends): team project list by @jonaro00 in #1816
- chore: bump gix, cargo update by @jonaro00 in #1817
- feat(cargo-shuttle): beta archive deployment separation by @jonaro00 in #1814
- update to qdrant 1.10 by @Dreaming-Codes in #1821
- chore: bump bytes to resolve audit by @oddgrd in #1822
- feat: beta /me endpoint & project name check by @jonaro00 in #1819
- feat: beta multi lang deployment models by @jonaro00 in #1820
- feat: beta UX fixes by @jonaro00 in #1824
- feat: beta deploy follow status, show logs on failure by @jonaro00 in #1825
- feat(cargo-shuttle): basic request tracing by @jonaro00 in #1827
- feat(cargo-shuttle): outgoing body debug by @jonaro00 in #1828
- feat: beta runtime version field by @jonaro00 in #1826
- feat(cargo-shuttle): default beta url by @jonaro00 in #1829
- feat(cargo-shuttle): beta deployment stop command by @jonaro00 in #1830
- feat(cargo-shuttle): deploy --output-archive by @jonaro00 in #1831
- fix(gateway): drop tower-sanitize-path by @jonaro00 in #1832
- fix: audit by @jonaro00 in #1834
- feat: shuttle-api-client by @jonaro00 in #1833
- chore: 0.47.0 by @jonaro00 in #1835
- Added OpenAI resource by @christos-h in #1794
New Contributors
- @Dreaming-Codes made their first contribution in #1821
Full Changelog: v0.46.0...v0.47.0
v0.46.0
Shuttle: v0.46.0 update
Shuttle feature flag
cargo-shuttle
and the Shuttle deployer will now activate the cargo feature shuttle
of the package if it exists (and disable default features). This allows for easy conditional compilation depending on if you’re compiling for Shuttle or something else.
# Compiling this package on Shuttle will enable the features
# "shuttle" and "bar". To use default features on Shuttle, add
# "default" to the shuttle array.
[features]
default = ["foo"]
shuttle = ["bar"]
foo = []
bar = []
Other updates
- (released during 0.45.0) Rust 1.78.0 is now available in deployers.
- Improved the
project delete
command’s reliability. - Fixed a bug in the proxy where redirects from http to https would have the incorrect URL.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- ci: windows builds by @chesedo in #1770
- feat: list team projects on beta by @chesedo in #1772
- refactor: use list struct for project lists by @chesedo in #1774
- feat: update beta logs logic by @jonaro00 in #1775
- refactor: ApiError helpers by @chesedo in #1776
- feat(cargo-shuttle): beta compact project and deployment tables by @jonaro00 in #1778
- feat(cargo-shuttle): beta deploy endpoint by @jonaro00 in #1777
- refactor: record the correct shuttle.user.id for the new platform by @chesedo in #1780
- fix(backends): increase permit per page count by @jonaro00 in #1781
- refactor: better errors by @chesedo in #1783
- feat: beta deployment response, current deployment & logs by @jonaro00 in #1782
- refactor: implement permission dal when behind an arc by @chesedo in #1784
- refactor: allow cors from preview environments by @chesedo in #1773
- fix: recursive permissionsdal impl by @oddgrd in #1785
- chore: don't restart local otel collector by @jonaro00 in #1786
- feat(auth): add has_access_to_beta column by @Kazy in #1779
- chore: bump Rust to 1.78.0 by @jonaro00 in #1788
- fix: improve delete command reliability by @jonaro00 in #1791
- misc: remove model used for external provisioner reqs by @oddgrd in #1793
- fix(gateway): use req.path in bouncer by @oddgrd in #1797
- fix(cargo-shuttle): delete command url by @jonaro00 in #1798
- feat: use 'shuttle' feature flag if it exists by @jonaro00 in #1799
- chore: 0.46.0 by @jonaro00 in #1801
Full Changelog: v0.45.0...v0.46.0
v0.45.0
Shuttle: v0.45.0 update
This release comes with a few bugfixes and lots of behind the scenes work on upcoming updates.
Breaking changes
- The
project list
command on cargo-shuttle v0.44.0 will produce an additional 404 error. Upgrade to v0.45.0 to resolve this.
Bug fixes
- Improved the error when Docker is not running on local runs.
- Shuttle will no longer try to run library workspace members that have the
shuttle-runtime
dependency. - Made the
project delete
action more reliable.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat: merge runtime updates in main ecs branch by @oddgrd in #1709
- feat: add resource request struct to backends by @oddgrd in #1718
- feat(cargo-shuttle): beta flag, remove project list pagination logic by @jonaro00 in #1732
- feat: add models and header for new ecs provisioner by @oddgrd in #1730
- fix: runtime panic by @oddgrd in #1735
- cargo-shuttle: update deploy cmd for beta platform by @iulianbarbu in #1734
- feat: add services client constructor for default headers by @oddgrd in #1737
- feat(cargo-shuttle): beta deploy zip file, package name by @jonaro00 in #1742
- cargo-shuttle: added beta deployment status by @iulianbarbu in #1740
- Add log streaming in beta platform by @Kazy in #1743
- feat(cargo-shuttle beta): enable resource list by @oddgrd in #1744
- cargo-shuttle: added beta deployment list by @iulianbarbu in #1741
- feat(c-s beta): implement resource delete by @oddgrd in #1745
- feat: support secrets on beta platform by @oddgrd in #1748
- feat(common): add building EcsState by @Kazy in #1752
- refactor: rename organizations to teams by @chesedo in #1754
- chore: merge shuttle-ecs-common to main by @jonaro00 in #1753
- feat(cargo-shuttle): adapt project response for beta by @jonaro00 in #1756
- fix(cargo-shuttle): better error when docker is not running by @jonaro00 in #1759
- fix(service): improve workspace member discovery and error by @jonaro00 in #1758
- refactor(cargo-shuttle): cleanup of beta branching & behaviour by @jonaro00 in #1760
- refactor: return team details when creating a new team by @chesedo in #1761
- bug: project delete by @chesedo in #1762
- bug: arg for provisioner-uri by @chesedo in #1763
- fix: otel-otlp features for http client by @jonaro00 in #1765
- tests: fix failing logger tests by @chesedo in #1766
- chore: v0.45.0 by @chesedo in #1767
Full Changelog: v0.44.0...v0.45.0
v0.44.0
Shuttle: v0.44.0 update
Improvements to cargo shuttle logs
Until this point, it has only been possible to fetch all the logs for a deployment. Following this release, after upgrading your cargo-shuttle CLI, you will be able to:
- Fetch the last
n
log lines withcargo shuttle logs --tail <n>
. - Fetch the first
n
log lines withcargo shuttle logs --head <n>
. - Fetch all the logs lines with
cargo shuttle logs --all
. Note that this is capped at 4 MiB of log lines.
Thanks to @biplab5464 for contributing this new functionality!
Breaking changes
- The version of
poem
inshuttle-poem
has been increased to 3.0. - The return type of the turso resource in
shuttle-turso
has been changed to theDatabase
type, which makes it possible to work around the bug described in #1746.
Bug fixes
- The
shuttle_service::Environment
enum is now correctly re-exported fromshuttle_runtime
.
Other updates
- We made improvements to the errors returned from the control plane, that should make it easier to resolve some common failures.
Contributions
- @sourabpramanik bumped the Poem version in shuttle-poem in #1724 and shuttle-hq/shuttle-examples#161
- @biplab5464 expanded the
cargo shuttle logs
API in #1629
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- chore: set package.repository for all crates by @jonaro00 in #1716
- feat: CORS support on gateway by @chesedo in #1714
- chore: clean up dev deps by @jonaro00 in #1712
- feat(gateway): compare permission checks to permit by @jonaro00 in #1706
- chore: bump h2 to patch continuation flood vulnerability by @oddgrd in #1719
- refactor: only use permit to check project permissions by @chesedo in #1721
- refactor: simplify by getting rid of the unneeded User wrapper by @chesedo in #1722
- misc: nix shell update by @chesedo in #1726
- feat: orgs by @chesedo in #1720
- feat(admin): change project owner by @jonaro00 in #1725
- feat: bump poem version by @sourabpramanik in #1724
- feat: org members by @chesedo in #1728
- fix: various fixes and corrections by @jonaro00 in #1729
- fix(runtime): re-export Environment by @jonaro00 in #1736
- misc: revert severity level on allowed project names by @chesedo in #1739
- refactor: errors by @chesedo in #1738
- feat: get project owners and only personal projects by @chesedo in #1733
- feat: add
--head
and--tail
to logs command by @biplab5464 in #1629 - fix: rustls and gix cargo audit failures by @oddgrd in #1749
- fix: change TursoOutput to provide Database by @joshua-mo-143 in #1747
- chore: v0.44.0 by @oddgrd in #1750
New Contributors
- @sourabpramanik made their first contribution in #1724
Full Changelog: v0.43.0...v0.44.0
v0.43.0
Shuttle: v0.43.0 update
This is mainly a bugfix release, and no upgrade is required. We are working on several upcoming features behind the scenes, so stay tuned!
Updates
cargo-shuttle
now has a global--debug
flag that enables debug logging.- Made
cargo-shuttle
fail fast when encountering an API error, instead of retrying up to 3 times. - Fixed a small downtime in the logger service that happened when new versions of Shuttle were deploying.
- Fixed a bug where having a non-std
Result
type in scope would make theshuttle_runtime::main
macro fail. - (released in
shuttle-turso 0.42.1
) Fixed the connection behaviour when connecting to a remote URL on local runs.
Contributions
- @Jaco-Minnaar bumped
shuttle-turso
to uselibsql 0.3.1
#1694 shuttle-hq/shuttle-examples#159
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- chore: remove e2e crate, update development docs by @jonaro00 in #1684
- chore: remove secrets, metadata crates by @jonaro00 in #1688
- feat: update services api client by @jonaro00 in #1695
- feat: permit client skeleton by @jonaro00 in #1696
- feat: basic Permit client with tests by @chesedo in #1693
- refactor: shuttle-common/backend -> shuttle-backends by @jonaro00 in #1698
- fix(logger): don't block when deleting old logs by @jonaro00 in #1690
- feat(cargo-shuttle): remove retry client, add version header by @jonaro00 in #1691
- feat(cargo-shuttle): --debug by @jonaro00 in #1689
- ci: filter jobs based on if PR is from fork by @jonaro00 in #1700
- feat: permit pdp in docker stack by @jonaro00 in #1697
- fix(shuttle-turso): use open_remote when using local_addr by @jonaro00 in #1701
- chore: update libsql dep by @Jaco-Minnaar in #1694
- feat: auth sync users with permit by @chesedo in #1703
- fix(codegen): use full path for std types by @jonaro00 in #1702
- feat: generated Permit client, project permission logic by @jonaro00 in #1699
- feat: gateway command to sync permit by @jonaro00 in #1705
- chore: v0.43.0 by @jonaro00 in #1710
New Contributors
- @Jaco-Minnaar made their first contribution in #1694
Full Changelog: v0.42.0...v0.43.0