Releases: shuttle-hq/shuttle
v0.51.0
Shuttle: v0.51.0 update
Axum 0.8 support
Axum 0.8 is now used by default in shuttle-axum
.
To keep using Axum 0.7 with Shuttle, use this cargo feature:
axum = "0.7"
shuttle-axum = { version = "0.51.0", default-features = false, features = ["axum-0-7"] }
Support for Axum 0.6 has been dropped with this release.
OpenDAL Operator for Shared Postgres DB
This feature serves as an alternative to shuttle-persist
, which is not supported on shuttle.dev.
Two new output types have been added to #[shuttle_shared_db::Postgres]
under the opendal-postgres
crate feature:
opendal::Operator
, which provides a generic key-value store interface backed by a table in the database.shuttle_shared_db::SerdeJsonOperator
, which provides an interface for storing any serializable type T as JSON in the Operator table. This is similar to the shuttle-persist interface.
Other updates
- Bumped salvo to 0.75 in
shuttle-salvo
. - Bumped opendal to 0.51 in
shuttle-opendal
. - Added an optional timeout setting in
shuttle-api-client
. - Fixed a bug where cargo-shuttle would put gitignore rules on the same line as existing ones.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat: make api-client timeout configurable, increase in admin cli by @oddgrd in #1950
- feat: opendal on postgres output type, bump opendal by @jonaro00 in #1928
- feat(shuttle-axum): support axum 0.8, drop axum 0.6 by @jonaro00 in #1951
- chore: move ApiKey type to backends, remove AccountTier sqlx::Type by @jonaro00 in #1923
- feat(shared-db): SerdeJsonOperator for json storage by @jonaro00 in #1952
- chore(shuttle-salvo): bump salvo version by @jonaro00 in #1953
- chore: v0.51.0 by @jonaro00 in #1954
Full Changelog: v0.50.0...v0.51.0
v0.50.0
Shuttle: v0.50.0 update
Bug fixes
- Fixed a bug where
RUST_LOG
was overridden in local runs with the newshuttle
CLI in #1930
Other updates
- Increased MSRV of the Shuttle crates to 1.81
- The version of
libsql
in theshuttle-turso
crate has been upgraded from 0.3.1 to 0.6.0.
Contributions
- @geofmureithi updated the
shuttle-cron
example in shuttle-hq/shuttle-examples#194 - @Aditya-PS-05 replaced the unmaintained
proc-macro-error
crate withproc-macro-error-2
in #1921 - @c-git fixed a typo in the
shuttle-service
docs in #1935 - @sentinel1909 upgraded
libsql
inshuttle-turso
in #1940 and shuttle-hq/shuttle-examples#197
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix: cargo-audit version by @jonaro00 in #1919
- added proc-macro-error2 dependency by @Aditya-PS-05 in #1921
- shuttle.dev cleanup by @jonaro00 in #1920
- fix: admin and cli fixes by @jonaro00 in #1922
- feat: deprecate new project creation by @oddgrd in #1931
- docs: typo fix by @c-git in #1935
- feat: bump common msrv to 1.81, our images to 1.83 by @oddgrd in #1942
- feat: add xl and xxl compute tiers by @oddgrd in #1946
- feat: update rds resource type for new platform compatibility by @oddgrd in #1945
- improvement: update the Turso resource to use libsql 0.6.0 by @sentinel1909 in #1940
- feat: deprecate new deployments by @oddgrd in #1934
- fix(cargo-shuttle): don't override user provided RUST_LOG on local run by @jonaro00 in #1930
- chore: prepare v0.50.0 release by @oddgrd in #1948
New Contributors
- @Aditya-PS-05 made their first contribution in #1921
- @c-git made their first contribution in #1935
Full Changelog: v0.49.0...v0.50.0
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