Releases
v0.49.0
12 Nov 2024
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 https://github.com/shuttle-hq/shuttle-docs/pull/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 https://github.com/shuttle-hq/shuttle/pull/1906
- feat: dump db endpoint, fixes, Rust 1.82 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1907
- fix(cargo-shuttle): shell completion, refactors by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1909
- feat(common): project config update models by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1910
- fix: don't attempt project linking on local run, create project and link on beta init by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1911
- feat(cargo-shuttle): update project name command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1912
- fix: update archive endpoint by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1914
- feat(cargo-shuttle): automatic login via console, login --prompt by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1913
- feat(cargo-shuttle): redeploy command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1916
- chore: v0.49.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1917
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.3...v0.49.0
cargo-shuttle v0.48.3
10 Oct 2024
Bugfix release
What's Changed
- fix: shuttle-common 0.48.2 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1901
- fix(cargo-shuttle): don't print platform info in unrelated commands by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1902
- chore: cargo update by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1904
- nit: allow deprecated chrono method in deprecated backends by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1905
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.2...v0.48.3
cargo-shuttle v0.48.2
10 Oct 2024
Patch release
What's Changed
- feat(cargo-shuttle): v0.48.2, colored platform outputs, fixes by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1886
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.1...v0.48.2
cargo-shuttle v0.48.1
3 Oct 2024
Bugfix release
What's Changed
- feat(installer): install shuttle binary by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1890
- fix: otel exporter config by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1891
- fix: reduce gateway cert renew sleep by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1888
- fix(cargo-shuttle): beta: create missing project on deploy, fix local run, better project link dialogue by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1893
- feat(cargo-shuttle): beta deploy.deny_dirty config, allow dirty deploys by default by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1894
- feat(cargo-shuttle): Shuttle.toml new key names by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1895
- chore: bump cargo-shuttle by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1897
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.0...v0.48.1
v0.48.0
1 Oct 2024
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
https://github.com/shuttle-hq/shuttle/pull/1808 - @sentinel1909 bumped
sqlx
to 0.8 https://github.com/shuttle-hq/shuttle/pull/1847 - @lielfr fixed the install script for Arch https://github.com/shuttle-hq/shuttle/pull/1861
- @supleed2 added
upgrade
subcommand https://github.com/shuttle-hq/shuttle/pull/1848
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- chore: remove qa workflows by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1837
- feat: Add
diesel-async
support forshuttle-aws-rds
by @edgerunnergit in https://github.com/shuttle-hq/shuttle/pull/1808 - fix(resource-recorder): check project permission by project id by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1839
- fix: audit by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1841
- feat(cargo-shuttle): beta command fixes, beta deployment list pagination, hide deprecated args, beta raw tables by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1843
- feat: Rust 1.80 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1845
- improvement: bump sqlx to 0.8 in libraries by @sentinel1909 in https://github.com/shuttle-hq/shuttle/pull/1847
- feat(runtime): beta runtime as client by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1844
- feat(cargo-shuttle): beta updated local run by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1850
- fix: ⌨️ fix typo by @rodneylab in https://github.com/shuttle-hq/shuttle/pull/1855
- feat(deployer): revert typo fix by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1856
- chore: updated beta api url by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1857
- feat: instrument permit calls by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1858
- feat(cargo-shuttle): beta account command, cleanup by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1859
- fix(c-s): windows by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1862
- fix: failing install on Arch Linux (#1810) by @lielfr in https://github.com/shuttle-hq/shuttle/pull/1861
- feat(cargo-shuttle): beta certificate command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1860
- feat(common): beta certificate models update by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1865
- chore: disable honeycomb export, remove vars by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1868
- chore: sqlx 0.8.2, MSRV 1.78 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1867
- feat: disable CLI error suggestions for beta by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1869
- feat(common): beta models update, add typeshare by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1871
- feat(common): typeshare apierror by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1874
- fix: remove teams call for beta project list by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1872
- fix: remove blanket suggestion to open ticket by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1870
- feat: beta models update, fix tables and prints by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1875
- fix: windows backslash paths in zip by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1877
- feat(runtime): improve beta tracing by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1879
- feat(admin): renew certs command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1880
- feat(cargo-shuttle): shuttle binary by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1878
- feat(cargo-shuttle): Add
upgrade
subcommand to run install script by @supleed2 in https://github.com/shuttle-hq/shuttle/pull/1848 - fix: beta local run resource fixes by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1876
- chore: deployer rust 1.81 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1883
- fix(admin): beta set access endpoint by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1884
- feat(cargo-shuttle): beta project linking by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1885
- chore: v0.48.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1887
New Contributors
- @edgerunnergit made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1808
- @rodneylab made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1855
- @lielfr made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1861
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.47.0...v0.48.0
v0.47.0
23 Jul 2024
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 https://github.com/shuttle-hq/shuttle/pull/1796
- chore(auth): don't migrate pool by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1803
- chore: Rust 1.79, MSRV 1.77, cleanup by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1800
- fix(auth): migrate in tests by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1805
- feat(backends): permit delete project idempotency by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1806
- feat: provisioner idempotence changes by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1795
- feat: filter permit project based on platform by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1811
- fix: local development by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1809
- feat: beta builder args by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1813
- feat: implement rds resource on beta platform by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1812
- feat(common): proxy backend by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1815
- fix(backends): team project list by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1816
- chore: bump gix, cargo update by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1817
- feat(cargo-shuttle): beta archive deployment separation by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1814
- update to qdrant 1.10 by @Dreaming-Codes in https://github.com/shuttle-hq/shuttle/pull/1821
- chore: bump bytes to resolve audit by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1822
- feat: beta /me endpoint & project name check by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1819
- feat: beta multi lang deployment models by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1820
- feat: beta UX fixes by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1824
- feat: beta deploy follow status, show logs on failure by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1825
- feat(cargo-shuttle): basic request tracing by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1827
- feat(cargo-shuttle): outgoing body debug by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1828
- feat: beta runtime version field by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1826
- feat(cargo-shuttle): default beta url by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1829
- feat(cargo-shuttle): beta deployment stop command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1830
- feat(cargo-shuttle): deploy --output-archive <path> by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1831
- fix(gateway): drop tower-sanitize-path by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1832
- fix: audit by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1834
- feat: shuttle-api-client by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1833
- chore: 0.47.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1835
- Added OpenAI resource by @christos-h in https://github.com/shuttle-hq/shuttle/pull/1794
New Contributors
- @Dreaming-Codes made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1821
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.46.0...v0.47.0
v0.46.0
13 Jun 2024
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 https://github.com/shuttle-hq/shuttle/pull/1770
- feat: list team projects on beta by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1772
- refactor: use list struct for project lists by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1774
- feat: update beta logs logic by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1775
- refactor: ApiError helpers by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1776
- feat(cargo-shuttle): beta compact project and deployment tables by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1778
- feat(cargo-shuttle): beta deploy endpoint by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1777
- refactor: record the correct shuttle.user.id for the new platform by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1780
- fix(backends): increase permit per page count by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1781
- refactor: better errors by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1783
- feat: beta deployment response, current deployment & logs by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1782
- refactor: implement permission dal when behind an arc by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1784
- refactor: allow cors from preview environments by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1773
- fix: recursive permissionsdal impl by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1785
- chore: don't restart local otel collector by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1786
- feat(auth): add has_access_to_beta column by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1779
- chore: bump Rust to 1.78.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1788
- fix: improve delete command reliability by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1791
- misc: remove model used for external provisioner reqs by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1793
- fix(gateway): use req.path in bouncer by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1797
- fix(cargo-shuttle): delete command url by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1798
- feat: use 'shuttle' feature flag if it exists by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1799
- chore: 0.46.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1801
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.45.0...v0.46.0
v0.45.0
13 May 2024
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 https://github.com/shuttle-hq/shuttle/pull/1709
- feat: add resource request struct to backends by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1718
- feat(cargo-shuttle): beta flag, remove project list pagination logic by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1732
- feat: add models and header for new ecs provisioner by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1730
- fix: runtime panic by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1735
- cargo-shuttle: update deploy cmd for beta platform by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1734
- feat: add services client constructor for default headers by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1737
- feat(cargo-shuttle): beta deploy zip file, package name by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1742
- cargo-shuttle: added beta deployment status by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1740
- Add log streaming in beta platform by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1743
- feat(cargo-shuttle beta): enable resource list by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1744
- cargo-shuttle: added beta deployment list by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1741
- feat(c-s beta): implement resource delete by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1745
- feat: support secrets on beta platform by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1748
- feat(common): add building EcsState by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1752
- refactor: rename organizations to teams by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1754
- chore: merge shuttle-ecs-common to main by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1753
- feat(cargo-shuttle): adapt project response for beta by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1756
- fix(cargo-shuttle): better error when docker is not running by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1759
- fix(service): improve workspace member discovery and error by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1758
- refactor(cargo-shuttle): cleanup of beta branching & behaviour by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1760
- refactor: return team details when creating a new team by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1761
- bug: project delete by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1762
- bug: arg for provisioner-uri by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1763
- fix: otel-otlp features for http client by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1765
- tests: fix failing logger tests by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1766
- chore: v0.45.0 by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1767
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.44.0...v0.45.0
v0.44.0
23 Apr 2024
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 https://github.com/shuttle-hq/shuttle/issues/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 https://github.com/shuttle-hq/shuttle/pull/1724 and https://github.com/shuttle-hq/shuttle-examples/pull/161
- @biplab5464 expanded the
cargo shuttle logs
API in https://github.com/shuttle-hq/shuttle/pull/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 https://github.com/shuttle-hq/shuttle/pull/1716
- feat: CORS support on gateway by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1714
- chore: clean up dev deps by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1712
- feat(gateway): compare permission checks to permit by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1706
- chore: bump h2 to patch continuation flood vulnerability by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1719
- refactor: only use permit to check project permissions by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1721
- refactor: simplify by getting rid of the unneeded User wrapper by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1722
- misc: nix shell update by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1726
- feat: orgs by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1720
- feat(admin): change project owner by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1725
- feat: bump poem version by @sourabpramanik in https://github.com/shuttle-hq/shuttle/pull/1724
- feat: org members by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1728
- fix: various fixes and corrections by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1729
- fix(runtime): re-export Environment by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1736
- misc: revert severity level on allowed project names by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1739
- refactor: errors by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1738
- feat: get project owners and only personal projects by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1733
- feat: add
--head
and--tail
to logs command by @biplab5464 in https://github.com/shuttle-hq/shuttle/pull/1629 - fix: rustls and gix cargo audit failures by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1749
- fix: change TursoOutput to provide Database by @joshua-mo-143 in https://github.com/shuttle-hq/shuttle/pull/1747
- chore: v0.44.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1750
New Contributors
- @sourabpramanik made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1724
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.43.0...v0.44.0
v0.43.0
2 Apr 2024
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
https://github.com/shuttle-hq/shuttle/pull/1694 https://github.com/shuttle-hq/shuttle-examples/pull/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 https://github.com/shuttle-hq/shuttle/pull/1684
- chore: remove secrets, metadata crates by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1688
- feat: update services api client by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1695
- feat: permit client skeleton by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1696
- feat: basic Permit client with tests by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1693
- refactor: shuttle-common/backend -> shuttle-backends by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1698
- fix(logger): don't block when deleting old logs by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1690
- feat(cargo-shuttle): remove retry client, add version header by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1691
- feat(cargo-shuttle): --debug by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1689
- ci: filter jobs based on if PR is from fork by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1700
- feat: permit pdp in docker stack by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1697
- fix(shuttle-turso): use open_remote when using local_addr by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1701
- chore: update libsql dep by @Jaco-Minnaar in https://github.com/shuttle-hq/shuttle/pull/1694
- feat: auth sync users with permit by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1703
- fix(codegen): use full path for std types by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1702
- feat: generated Permit client, project permission logic by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1699
- feat: gateway command to sync permit by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1705
- chore: v0.43.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1710
New Contributors
- @Jaco-Minnaar made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1694
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.42.0...v0.43.0
v0.42.0
18 Mar 2024
Shuttle: v0.42.0 update
We're excited to release Shuttle v0.42.0! 🚀
Secrets and Metadata plugins moved to shuttle-runtime
The shuttle-secrets
and shuttle-metadata
crates have been deprecated. You can now access these resources like this:
use shuttle_runtime::SecretStore;
use shuttle_runtime::DeploymentMetadata;
#[shuttle_runtime::main]
async fn main(
#[shuttle_runtime::Secrets] secrets: SecretStore,
#[shuttle_runtime::Metadata] metadata: DeploymentMetadata,
) -> ... { ... }
Other updates
Secrets.toml
files can now be placed either in the crate root or in the workspace root if your project is in a workspace.- Resolved the most common errors in the
project delete
command. It should now be more reliable. - Improved the error message if fetching too many log line in one call.
- (hotfixed in 0.41.0) Fixed a bug where RDS resources would error on redeployments.
Contributions
- @nopeNoshishi Added the
--raw
flag to therun
anddeploy
commands https://github.com/shuttle-hq/shuttle/pull/1653 - @aumetra added
async-diesel
support toshuttle-shared-db
https://github.com/shuttle-hq/shuttle/pull/1664 - @sourabpramanik improved
shuttle-examples
CI workflow for the develop branch https://github.com/shuttle-hq/shuttle-examples/pull/154
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(cargo-shuttle): remove integration test example by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1672
- Improvement: add
--raw
flag torun
,deploy
command by @nopeNoshishi in https://github.com/shuttle-hq/shuttle/pull/1653 - fix(deployer): check correct config field(s) in resource cache by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1675
- gateway: delete project restarts them first if oudated by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1677
- refactor: move secrets and metadata plugins to runtime by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1673
- misc(deployer): improve get_logs out_of_range error by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1676
- Update README.md by @ivancernja in https://github.com/shuttle-hq/shuttle/pull/1679
- Update README.md by @ivancernja in https://github.com/shuttle-hq/shuttle/pull/1680
- Update README.md by @ivancernja in https://github.com/shuttle-hq/shuttle/pull/1681
- refactor(auth, gateway): use user_id over account_name by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1674
- ci: fix unstable filter by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1683
- fix: patches script root-relative path by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1685
- feat: Add
diesel-async
support forshuttle-shared-db
by @aumetra in https://github.com/shuttle-hq/shuttle/pull/1664 - feat: fall back to finding Secrets.toml in workspace root by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1682
- chore: v0.42.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1686
New Contributors
- @nopeNoshishi made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1653
- @aumetra made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1664
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.41.0...v0.42.0
v0.41.0
7 Mar 2024
Shuttle: v0.41.0 update
We're excited to release Shuttle v0.41.0! 🚀
Idle wakeups improved
The proxy will now properly wait until a service exposes its HTTP port when a project is waking up from idle. This should resolve the common 502 errors that services get on the first request to an idled project. No upgrade is needed.
Let us know if you experience any other issues with idling projects!
Easy access to more project templates
cargo shuttle init
now allows you to browse the full list of official templates on shuttle-examples.
Other updates
shuttle-next
is now discontinuedcargo-shuttle
now has an--offline
flag to skip non-essential network requests, like versions checks and template list fetching
Contributions
- @JasterV upgraded a test dependency https://github.com/shuttle-hq/shuttle/pull/1665
What's Changed
- feat(install): change powershell installation script by @Pulko in https://github.com/shuttle-hq/shuttle/pull/1636
- fix(common): add missing schema, v0.40.1 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1661
- fix(common): public fields, v0.40.2 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1662
- misc: remove shuttle-next by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1652
- ci: remove buildx cache, bump versions by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1650
- fix(gateway): proxy wait for service port to open by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1668
- feat: migration for user_id by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1663
- chore: update test-context dependency by @JasterV in https://github.com/shuttle-hq/shuttle/pull/1665
- fix(auth): user query columns by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1669
- feat(cargo-shuttle): new template system for init by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1667
- chore: v0.41.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1670
New Contributors
- @JasterV made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1665
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.40.0...v0.41.0
0.40.0
4 Mar 2024
Shuttle: v0.40.0 update
We're excited to release Shuttle v0.40.0! 🚀
[BREAKING] Resource/plugin API updated
We have updated the interface for how a service requests resources, to make it easier to configure our resources, and allowing custom plugins to do more things.
After upgrading (restarting) your project to 0.40.0, your next deployment will need
shuttle-runtime
0.40.0+cargo-shuttle
0.40.0+- An up-to-date
Secrets.toml
(previous secrets will be invalidated)
Local runs will also need matching versions of CLI and runtime.
If you have a custom plugin, it will need to be refactored to the new ResourceInputBuilder
trait, an updated API for plugins. Check out the implementations of our plugins or an example.
CHANGED: The Metadata
struct in shuttle-metadata
no longer has a service_name
field. Use project_name
instead.
Other updates
- Reduced the dependency weight of
shuttle-runtime
🥳. The axum hello-world example went from 291 to 222 dependencies. - Added a
--secrets
arg to therun
anddeploy
commands that allows you to use a different secrets file than the default - Added load phase caching, which should improve the speed and reliability of starting the service after wakeups from idle and project restarts
- AWS RDS resources can now configure their database name in the macro:
#[shuttle_aws_rds::Postgres(database_name = "thing")]
. The project name is now used as the default name. - Newly generated database passwords will now have length 32 instead of 12
- Fixed a bug where the
--working-directory/--wd
arg would create directories that didn’t exist - The
init
command will now suggest using a directory with the same name as the project, instead of the current directory - Bumped deployer’s
trunk
version to 0.18.8 - Projects no longer restart when adding a custom domain
- Fixed the URL formatting of services with a custom domain
- (hotfixed during 0.39.0) Fixed an issue where project ownership was not checked in some backends
Deprecating shuttle-next
We are deprecating the current iteration of our WASM framework shuttle-next
in this release to keep our priorities focused. Next release, we will drop support for shuttle-next
.
Contributions
- @Pulko improved the installer scripts https://github.com/shuttle-hq/shuttle/pull/1610 https://github.com/shuttle-hq/shuttle/pull/1636
- @Xuanwo added an example for
shuttle-opendal
https://github.com/shuttle-hq/shuttle-examples/pull/142
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(gateway): custom domain followup improvements by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1627
- misc(provisioner): check project ownership in APIs by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1630
- feat: enable Datadog APM error tracking with a tracing layer by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1626
- feat(installer): always check for cargo install first by @Pulko in https://github.com/shuttle-hq/shuttle/pull/1610
- chore: remove builder by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1637
- misc: use cargo-chef 0.1.64 --bin flags by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1638
- feat(runtime, deployer)!: extract load phase + provisioning to deployer, resource update by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1628
- feat(deployer): load phase caching, automatic startup by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1640
- fix: various fixes by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1641
- fix: remove builder from compose by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1643
- fix(resource-recorder)!: disable service id endpoint by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1644
- feat(cargo-shuttle):
--secrets
arg to use non-default secrets file by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1642 - fix(resource-recorder, provisioner): fix integration tests by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1645
- chore: v0.40.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1646
- fix(cargo-shuttle): windows build by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1648
- misc: make passwords longer by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1649
- feat(common): add template definition schema by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1655
- feat(cargo-shuttle): add project name to the default directory, ask again if path is rejected by @christos-h in https://github.com/shuttle-hq/shuttle/pull/1654
- fix: cargo audit by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1657
- feat: RDS custom database name by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1651
- ci: use newer linux images by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1659
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.39.0...v0.40.0
0.39.0
14 Feb 2024
Shuttle: v0.39.0 update
We're excited to release Shuttle v0.39.0! 🚀
Multiple domains + performance improvements
Projects that have custom domains (and have upgraded their deployer to 0.39.0) can now also be reached at their usual *.shuttleapp.rs
domain. It is now also possible to add multiple custom domains to a project.
This change also comes with reduced CPU usage per request, so feel free to upgrade even if you are not using custom domains!
OpenDAL plugin
Thanks to @Xuanwo’s contribution, we now have shuttle-opendal. OpenDAL allows you to easily connect to many storage services with credentials that you provide as secrets, for example:
use opendal::Operator;
#[shuttle_runtime::main]
async fn main(
#[shuttle_opendal::Opendal(scheme = "s3")] storage: Operator,
) -> ... { ... }
Templates
Some templates in our examples repo have been added or updated:
- Actix Web + Clerk + React added by @sourabpramanik. A good starting point for a fullstack app with user authentication. He also wrote a two-part blog post showing usage of the template: https://www.shuttle.rs/blog/2024/02/13/clerk-in-rust
- Loco Hello World added by @kaplanelad
- Fullstack SaaS was updated with improved development tooling by @ccmvn
Other updates
- Rust 1.76 is now available by restarting your project.
- Deployment logs older than 1 month will regularly be getting cleaned up from now on.
- Removed our tracking of resources that we don’t need to track, such as static folder, turso, and custom.
Contributions
- @sourabpramanik added an example for using Clerk authentication with Actix web https://github.com/shuttle-hq/shuttle-examples/pull/133
- @hamirmahal fixed some code formatting https://github.com/shuttle-hq/www/pull/257
- @ccmvn upgraded dependencies and dev tooling for our SaaS template https://github.com/shuttle-hq/shuttle-examples/pull/137
- @kaplanelad added a hello-world Loco template to our examples and init command https://github.com/shuttle-hq/shuttle-examples/pull/139 https://github.com/shuttle-hq/shuttle/pull/1620
- @biplab5464 refactored some error messages https://github.com/shuttle-hq/shuttle/pull/1615
- @Xuanwo added shuttle-opendal https://github.com/shuttle-hq/shuttle/pull/1617
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(shuttle-qdrant): v0.38.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1606
- fix: don't try to deserialize non-200 res to service summary by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1607
- wip: use cargo-make for tasks and ci by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1595
- feat: disable trace_layer on_failure, only emit error event for 500s by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1608
- refactor: uniform client wrappers by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1614
- ci: move more tasks to cargo make by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1613
- [Improvement]: Refactor ApiError and ErrorKind to use thiserror #1601 by @biplab5464 in https://github.com/shuttle-hq/shuttle/pull/1615
- fix: alias database field names updated in 0.37.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1618
- fix: remove obsolete resources by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1543
- feat(deployer, gateway): remove deployer proxy by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1612
- feat(logger): clean old logs on startup by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1619
- chore: bump git2 to resolve vulnerability by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1621
- add loco to shuttle cli by @kaplanelad in https://github.com/shuttle-hq/shuttle/pull/1620
- chore: Rust 1.76 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1622
- feat(gateway): allow multiple hostnames, proxy caching by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1616
- feat: Add OpenDAL resource support by @Xuanwo in https://github.com/shuttle-hq/shuttle/pull/1617
- chore: v0.39.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1623
- fix: submodule by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1625
New Contributors
- @biplab5464 made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1615
- @kaplanelad made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1620
- @Xuanwo made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1617
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.38.0...v0.39.0
v0.38.0
1 Feb 2024
Shuttle: v0.38.0 update
We're excited to release Shuttle v0.38.0! 🚀
AWS RDS pricing
Our AWS RDS instances will from now be a paid add-on instead of a Pro feature. Emails with more information and instructions will be sent out to everyone who uses RDS.
All users can now sign up for AWS RDS in the billing section in the Console.
shuttle-turso
now uses the libsql
crate
The new and improved replacement for libsql-client
is now used, which introduces some breaking changes. The resource output is now a libsql::Connection
. Check out the updated docs for more. Thanks @Mouwrice for the contribution!
Other updates
- The Shuttle crates’ minimum support Rust version (MSRV) is now officially set to 1.75. Future bumps to the MSRV will be announced in release notes. Enjoy those async traits!
- Fixed a bug where cloning a template with a workspace incorrectly set the project name in the workspace manifest.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix: remove common_tests dep from common by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1537
- fix(gateway): rename scope field to shuttle.project.name by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1538
- fix: qdrant docker image name by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1539
- chore: remove shuttle-poise by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1541
- fix(otel): increase trace_buffer for dd exporter by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1587
- nit: small nitpicks by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1544
- chore: remove panamax and deck-chores by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1540
- feat(shuttle-turso)!: replace
libsql-client
crate with the new and improvedlibsql
crate by @Mouwrice in https://github.com/shuttle-hq/shuttle/pull/1531 - chore: remove utopia openAPI docs by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1588
- docs(shuttle-libsql): update docs for turso libsql change by @Mouwrice in https://github.com/shuttle-hq/shuttle/pull/1591
- feat: write a wrapper for the provisioner to call gw and r-r clients by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1585
- gateway: add operation_name field for task polling by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1590
- docs: Update README by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1594
- misc: remove session by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1596
- feat: limit concurrent active cch23 projects by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1589
- fix(cargo-shuttle): set name in Shuttle.toml when cloning a workspace by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1599
- chore: disable unused builder service until it is needed by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1542
- feat: have
auth
handle new subscriptions by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1597 - chore: v0.38.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1598
New Contributors
- @Mouwrice made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1531
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.37.0...v0.38.0
v0.37.0
24 Jan 2024
Shuttle: v0.37.0 update
We're excited to release Shuttle v0.37.0! 🚀
Multiple output types in resource macros
🚨 BREAKING 🚨: To keep using an sqlx Pool in the main macro, add the feature flag sqlx
to your shuttle-shared-db
or shuttle-aws-rds
dependency. To use sqlx with native TLS instead, use the feature flag sqlx-native-tls
.
The traits in shuttle-service
have been refactored, allowing you to have several possible output types in the Shuttle main macro’s resource annotations. For example:
// Use the connection string
#[shuttle_runtime::main]
async fn main(#[shuttle_shared_db::Postgres] conn_str: String) -> ... { ... }
// 🚨 Add the "sqlx" feature flag to get a PgPool like before
#[shuttle_runtime::main]
async fn main(#[shuttle_shared_db::Postgres] pool: sqlx::PgPool) -> ... { ... }
Shuttle + Qdrant
Thanks to @paulotten, we now have a shuttle-qdrant
plugin that simplifies the client connection to a Qdrant Cloud vector database during deployment (that you set up yourself), and automates a local Qdrant Docker container during local runs. Check out this example!
The local provisioner can now start a wider variety of Docker containers during local runs, so making similar plugins is now easier.
Other breaking changes
shuttle-serenity
now uses 0.12 by default. Using 0.11 is still possible with a feature flag. More info in the crate docs.shuttle-poise
has been deprecated, but can still be used for poise 0.5. To use poise 0.6, useshuttle-serenity
and return a serenity client built with the poise framework. Exampleshuttle-poem
now uses poem 2.0.
Contributions
- @paulotten added
shuttle-qdrant
https://github.com/shuttle-hq/shuttle/pull/1025 https://github.com/shuttle-hq/shuttle-examples/pull/64 - @paulotten upgrade
shuttle-poem
, as well as our poem examples, to poem 2.0 https://github.com/shuttle-hq/shuttle/pull/1520 https://github.com/shuttle-hq/shuttle-examples/pull/126 - @supleed2 set serenity 0.12 as the default for
shuttle-serenity
https://github.com/shuttle-hq/shuttle/pull/1521 - @ErrolKeith added icons to the sidebar in our docs https://github.com/shuttle-hq/shuttle-docs/pull/248
- @Krensi fixed a disparity between our docs and examples https://github.com/shuttle-hq/shuttle-docs/pull/247
- @beyarkay improved a version hint in cargo-shuttle https://github.com/shuttle-hq/shuttle/pull/1533
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- ci: split release flow by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1518
- tests(auth): simplify auth service tests with wiremock by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1514
- refactor(gateway): renew gateway certificate returns more info about success by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1492
- feat: support poem v2.0.0 by @paulotten in https://github.com/shuttle-hq/shuttle/pull/1520
- fix(gateway): uppercase old ulids by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1424
- Traces: set shuttle.project.name in more places by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1526
- fix(proxy): record http.host after parsing to avoid Some(..) in the attr by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1527
- Traces add shuttle version by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1528
- chore: upgrade h2 to resolve cargo audit by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1530
- feat: base api and gateway client by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1525
- ci: use default ubuntu machine image by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1524
- feat(resources)!: get db connection string from resources, refactor ResourceBuilder by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1522
- feat(auth): add subscriptions table to auth, add rds quota to claim limits by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1529
- chore: update wiremock to resolve cargo audit by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1534
- feat: Qdrant resource by @paulotten in https://github.com/shuttle-hq/shuttle/pull/1025
- Improve shuttle-runtime out-of-date hint by @beyarkay in https://github.com/shuttle-hq/shuttle/pull/1533
- feat(shuttle-serenity): make serenity 0.12 default, support poise 0.6, deprecate shuttle-poise by @supleed2 in https://github.com/shuttle-hq/shuttle/pull/1521
- chore: v0.37.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1535
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.36.0...v0.37.0
v0.36.0
9 Jan 2024
Shuttle: v0.36.0 update
We're excited to release Shuttle v0.36.0! 🚀
Windows installer script
We’ve had a cargo-shuttle
installer script for Linux and macOS for some time now, but a Windows script has been missing. Thanks to a great contribution from @supleed2 we now have all the major operating systems covered. Refer to our getting started docs for how to use these scripts.
Axum 0.7
shuttle-axum
will now use axum 0.7 by default. Using axum 0.6 is still possible by enabling a feature flag:
# If switching to axum 0.7 and hyper 1.0:
axum = "0.7.3"
shuttle-axum = "0.36.0"
shuttle-runtime = "0.36.0"
# If staying on axum 0.6:
axum = "0.6.20"
shuttle-axum = { version = "0.36.0", default-features = false, features = ["axum-0-6"] }
shuttle-runtime = "0.36.0"
Other updates
- Rust 1.75.0 is now used in the deployers. Restart your project to upgrade.
- The version of Salvo used in
shuttle-salvo
has been updated to0.63
. cargo shuttle init
now has a--no-git
argument to not initialize a git repository.- The Shuttle Pro subscription total will now be visible in the console.
Contributions
- @supleed2 created an installation script for Windows in https://github.com/shuttle-hq/shuttle/pull/1503. He also made the necessary changes to our docs in https://github.com/shuttle-hq/shuttle-docs/pull/241, and added a redirect to the script in our website repo in https://github.com/shuttle-hq/www/pull/220
- @fatfingers23 made the selection of the Docker stats path in the
gateway
dynamic in https://github.com/shuttle-hq/shuttle/pull/1476, fixing local development of Shuttle on most Linux and Mac systems. - @dalton-oliveira updated the version of Salvo in
shuttle-salvo
in https://github.com/shuttle-hq/shuttle/pull/1486 and https://github.com/shuttle-hq/shuttle-examples/pull/121 - @atcol fixed an incorrect link on our website in https://github.com/shuttle-hq/www/pull/218
- @halvko updated the documented version of Rust in our docs in https://github.com/shuttle-hq/shuttle-docs/pull/244
- @akashin fixed a typo in our docs in https://github.com/shuttle-hq/shuttle-docs/pull/242
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- chore: upgrade proto-gen to 0.2.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1482
- fix(gateway): dynamically pick docker stats source by @fatfingers23 in https://github.com/shuttle-hq/shuttle/pull/1476
- feat(auth): add subscription items endpoint by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1478
- chore: bump salvo by @dalton-oliveira in https://github.com/shuttle-hq/shuttle/pull/1486
- fix(provisioner): only delete new rds on failed subscription update by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1488
- chore: bump zerocopy by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1489
- auth: guard the
/auth/key
endpoint by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1487 - bug: missing gateway key when trying to get jwt by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1499
- fix: tracing fixes and nits by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1500
- Update README.md by @joshua-mo-143 in https://github.com/shuttle-hq/shuttle/pull/1505
- chore: Rust 1.75 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1506
- feat(service): emit trace with shuttle dependencies by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1498
- feat:
--no-git
tocargo shuttle init
by @dhruvdabhi101 in https://github.com/shuttle-hq/shuttle/pull/1501 - feat(installer): add windows installer script by @supleed2 in https://github.com/shuttle-hq/shuttle/pull/1503
- fix: return empty list when querying for project deployments by @GugaGongadze in https://github.com/shuttle-hq/shuttle/pull/1495
- feat: track project deployments by @GugaGongadze in https://github.com/shuttle-hq/shuttle/pull/1508
- chore(shuttle-axum): use axum 0.7 by default by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1507
- revert: initial implementation of rds billing by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1510
- chore: v0.36.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1511
New Contributors
- @dalton-oliveira made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1486
- @dhruvdabhi101 made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1501
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.35.1...v0.36.0
v0.35.2
21 Dec 2023
v0.35.2 - Release Notes
We're excited to release Shuttle v0.35.2! 🚀
Shuttle: v0.35.2 update
Security fixes
Guarded an auth service endpoint to block any attempt for unauthorized projects to create or delete provisioned resources for other projects.
v0.35.1
13 Dec 2023
v0.35.1 - Release Notes
We're excited to release Shuttle v0.35.1! 🚀
Shuttle: v0.35.1 update
Platform stability improvements
We keep up with the platform stability improvement track and this time our focus was on Shuttle auth service, besides other small improvements. We made a significant change to our database by using PostgreSQL now, which opens up the stage for adding redundancy.
Other updates
- fixed our CI in terms of the cargo-audit advisories
- simplified a part of the gateway’s project state-machine dependencies, in terms of generics usage
Contributions
- @fatfingers23 added a more descriptive error message for the case of using a project name that is not owned by the user of the command or the project doesn’t exist: https://github.com/shuttle-hq/shuttle/pull/1452
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(gateway): more descriptive project not found error by @fatfingers23 in https://github.com/shuttle-hq/shuttle/pull/1452
- refactor: remove generics by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1460
- fix: cargo audit failures by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1475
- tests(resource-recorder): allow server time to start by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1477
- auth: store state in postgres instance by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1420
- chore: v0.35.1 by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1480
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.35.0...v0.35.1
v0.35.0
7 Dec 2023
We're excited to release Shuttle v0.35.0! 🚀
Shuttle: v0.35.0 update
Platform stability improvements
In the past week, we identified a bottleneck in our system linked to the way we were retrieving Docker stats for project containers. This bottleneck had a noticeable impact on the capacity of the Shuttle platform, causing intermittent service degradation, leading to e.g. slow and failing project commands. We’re pleased to announce that this bottleneck has been resolved in this release.
Breaking changes
- The
cargo shuttle generate
command has been refactored to accommodate the new manpage command. This command now takes a subcommand for generating either shell completions or a manpage. In addition, it no longer reads theSHELL
orOUTPUT
environment variable for shell completions.cargo shuttle generate manpage
cargo shuttle generate shell <SHELL>
Bug fixes
- Fixed a bug where cancelling a Pro tier subscription immediately downgraded the user to the Community tier, rather than waiting until the end of the period.
Other updates
- Added a flag to skip confirmation when deleting projects or resources:
cargo shuttle project delete -y/--yes
.
Contributions
- @fatfingers23 fixed a bug in our CI testing in https://github.com/shuttle-hq/shuttle/pull/1453
- @selectiveduplicate added the ability to create a manpage to the
cargo-shuttle
CLI in https://github.com/shuttle-hq/shuttle/pull/1388 - @supleed2 fixed a bug in the table output of the
project list
command in https://github.com/shuttle-hq/shuttle/pull/1466 - @AvaterClasher tidied up the service crates’ documentation in https://github.com/shuttle-hq/shuttle/pull/1425
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- add: service docs readme by @AvaterClasher in https://github.com/shuttle-hq/shuttle/pull/1425
- feat: protect ourselves from going over the 1k limit by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1444
- refactor: improve build queue messages and increase queueing time by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1447
- test: add an extra property claim test for pro users by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1448
- feat: protect pro tier projects and our services by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1445
- feat(gateway): allow manual blocking of cch project traffic at high load by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1446
- fix(gateway): don't attempt to retry error infinitely by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1450
- feat(gateway): add cch projects idle admin endpoint by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1454
- feat: propagate ambulance traces by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1456
- feat: don't overload docker with requests by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1457
- Add back retry logic on project error by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1455
- refactor: reduce backoff by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1458
- refactor: only ambulance ready projects by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1459
- refactor: allow stats to change in the future by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1463
- Setup datadog by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1462
- ci: fix tests with axum and serenity feature flags by @fatfingers23 in https://github.com/shuttle-hq/shuttle/pull/1453
- fix(optl): correctly set deployment.environment resource by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1467
- feat(cargo-shuttle): add --no-confirmation flag to project deletion by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1468
- feat(cargo-shuttle): generate manpage by @selectiveduplicate in https://github.com/shuttle-hq/shuttle/pull/1388
- feat: downgrade user to basic tier only after period end by @GugaGongadze in https://github.com/shuttle-hq/shuttle/pull/1427
- feat(cargo-shuttle): change no_confirmation flag to -y/--yes, add it to resource delete by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1470
- refactor: get stats from cgroup file directly by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1464
- fix(cargo-shuttle): remove newline from errored project state output by @supleed2 in https://github.com/shuttle-hq/shuttle/pull/1466
- chore: v0.35.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1471
- ci: fix deploy-images conditional by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1473
New Contributors
- @AvaterClasher made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1425
- @selectiveduplicate made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1388
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.34.1...v0.35.0
v0.34.1
29 Nov 2023
Shuttle: v0.34.1 update
Bugfix release
Serenity 0.12 and Axum 0.7
We have added opt-in support for these breaking changes with feature flags. In a future release when their usage share is larger, we will swap the default features to point to the newer versions, and keep support for the older version with a feature flag.
Serenity 0.12 is now supported by using these feature flags (native TLS also available):
serenity = { version = "0.12.0", features = ["..."] }
shuttle-serenity = { version = "0.34.1", default-features = false, features = ["serenity-0-12-rustls_backend"] }
Axum 0.7 is now supported by using these feature flags:
axum = "0.7.0"
shuttle-axum = { version = "0.34.1", default-features = false, features = ["axum-0-7"] }
Added
cargo shuttle logs
now has a--raw
flag that hides the timestamps and log origins from log lines.
Changed
cargo shuttle project delete
will now restart the project, stop deployments, and delete resources for you if needed, reducing manual work needed by the user.- cch23 projects will always have the idle timer set to 5 minutes.
Bugfixes
- Fixed a bug where normal log usage would be rate limited.
- Fixed a bug where parsing a rate limit response in the deployment log stream caused an error.
- Fixed a bug where deploying new secrets did not properly update them.
- Fixed a bug where the runtime version check timeout on local runs was not high enough. Thanks @fatfingers23 for the contribution!
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- bug: remove project resources automatically when delete the project by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1421
- ci: bump docker-rust rust version by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1431
- refactor: delete errored projects by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1428
- bug: don't do anything on delete dry run by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1432
- revert: rate limit based on peer address #1351 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1426
- fix(cargo-shuttle): handle log stream errors in deploy command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1429
- fix(deployer): new secrets override old ones by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1423
- feat(gateway): override idle timer for cch projects by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1430
- feat(cargo-shuttle): --raw flag on logs by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1422
- feat(gateway): use max 75% of cores for building by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1434
- tests: confirm that stopped projects delete successfully by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1435
- chore: v0.34.1, cargo update, changelog by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1433
- fix(cargo-shuttle): increase runtime version check timeout by @fatfingers23 in https://github.com/shuttle-hq/shuttle/pull/1437
- fix(shuttle-serenity): support serenity 0.12 through feature flag by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1439
- feat(shuttle-axum): support axum 0.7 through feature flag by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1440
- fix: project delete prompt by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1442
New Contributors
- @fatfingers23 made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1437
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.34.0...v0.34.1
v0.34.0
23 Nov 2023
Shuttle: v0.34.0 update
We're excited to release Shuttle v0.34.0! 🚀
Shuttle’s Christmas Code Hunt 🎄
This is the last major release ahead of the Christmas Code Hunt (CCH) - 16 Rust challenges to deploy on Shuttle during December. The CCH platform on the Shuttle Console will open on Monday 27 Nov with a warmup challenge, so get ready! More info and signup: https://www.shuttle.rs/cch
Dropping our crates.io mirror
Since the sparse protocol got rolled out, the need for our mirror of crates.io decreased. Due to some recent instability and its overall weight, we are dropping it in this release, meaning your deployment will download crates directly from crates.io.
Breaking changes
- We will start enforcing our AWS RDS limits from this release. Users on the Community Tier will no longer be able to provision RDS instances. As per our pricing page, users will need to upgrade to the Pro Tier to keep using their existing AWS RDS instances. A deadline for when Community Tier users have to migrate will be announced next week, along with a migration guide.
- Some projects are still running on deployers as old as 0.12.0. In order to clear up capacity on our platform for the CCH event, we might stop some old and inactive projects. We plan to introduce a “minimum supported deployer version” later on to ensure projects stay up to date and don’t break.
Bug fixes
- (Hotfixed in deployer 0.33.0) Secrets are no longer cleared from resource-recorder when a project restarts or wakes up from idle.
- Fixed the
cargo shuttle clean
command not parsing the API response correctly. - Fixed
shuttle-turso
compilation.
Other updates
- Rust 1.74: Restart your project to utilize the latest Rust release in deployments. MSRV for cargo-shuttle and our libraries remains at 1.70.
- Reduced the dependency tree with better scoping of features in our crates. This improves compile times a fair bit:
- Building our Axum Hello World starter now compiles 266 crates (down from 366)!
- Installing cargo-shuttle from source now compiles 416 crates (down from 605)!
cargo shuttle init
now has a--force-name
flag to disable checking if the project name is valid and available.- Added support in
shuttle-serenity
for seamlessly upgrading to serenity 0.12 once it is released (currently 0.12.0-rc). Also added feature support for using native tls. - Our logger service that records logs from projects now has rate limiting. This should not affect normal logging amounts.
- Improved handling of delete project requests. More improvements are to follow.
- Improved handling of runtime version check on local run.
- Improved error handling and error messages in several areas.
Contributions
- @sentinel1909 bumped Rocket to the newly released 0.5.0 version 🥳 https://github.com/shuttle-hq/shuttle/pull/1401 https://github.com/shuttle-hq/shuttle-examples/pull/114 https://github.com/shuttle-hq/shuttle-docs/pull/225
- @cassie-rust bumped base64 to v0.21.5. https://github.com/shuttle-hq/shuttle/pull/1403
- @BandhiyaHardik updated Twitter’s name. https://github.com/shuttle-hq/shuttle/pull/1404
- @thestriver fixed a curl command in one of our tutorials. https://github.com/shuttle-hq/shuttle-docs/pull/224
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits
- misc(auth): added service healthcheck by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1394
- docs(readme): update the alt text for Twitter page by @BandhiyaHardik in https://github.com/shuttle-hq/shuttle/pull/1404
- fix: merge new&old secrets in deployer by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1407
- chore: cargo update by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1391
- fix(gateway): handle invalid project names in ScopedUser by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1396
- feat: remove panamax registry override from deployers by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1399
- feat(logger): rate limit based on peer address by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1351
- improvement: rocket-0.5.0 stable by @sentinel1909 in https://github.com/shuttle-hq/shuttle/pull/1401
- refactor: better feature scoping, fix turso compilation, prune library dependency tree by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1405
- fix(cargo-shuttle): cargo shuttle clean response type by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1409
- chore: Rust 1.74 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1411
- feat(cargo-shuttle): ability to force a name to be used in init by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1410
- chore(deps): bump base64 to 0.21.5 by @cassie-rust in https://github.com/shuttle-hq/shuttle/pull/1403
- fix: better error hints & formatting + nits by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1412
- feat(shuttle-serenity): support serenity 0.12 and 0.11, optional native tls feature by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1416
- feat: limit rds access to pro users by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1398
- chore: v0.34.0 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1417
- auth: comment healthcheck
start_period
&start_interval
by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1414 - fix(common): type conversion from str for a custom resource by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1415
- bug: delete a project even if the current state is destroyed by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1413
- auth: use a centrally stored jwt signing private key by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1402
- feat(cargo-shuttle): better handling of runtime version checks by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1418
New Contributors
- @BandhiyaHardik made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1404
- @cassie-rust made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1403
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.33.0...v0.34.0
v0.33.0
16 Nov 2023
Shuttle: v0.33.0 update
We're excited to release Shuttle v0.33.0! 🚀
Bug fixes
- Fixed a bug where project restarts could lead to duplicated resource records being displayed in
cargo shuttle resource list
.
Other updates
- Shortened aliases for commonly used commands are now visible in the
cargo shuttle --help
output. - Removed the
cargo shuttle secrets
command, the keys of Secrets for your project can now only be viewed withcargo shuttle resource list
, or in the Shuttle web console.
Contributions
- @sentinel1909 updated Rocket to rc4 across our codebase in https://github.com/shuttle-hq/shuttle/pull/1379, https://github.com/shuttle-hq/shuttle-examples/pull/112 and https://github.com/shuttle-hq/shuttle-docs/pull/220
- @sentinel1909 updated Rocket to rc4 in one of our articles in https://github.com/shuttle-hq/shuttle-docs/pull/221 and https://github.com/shuttle-hq/www/pull/178
- @safstromo fixed a bug in one of our guides in https://github.com/shuttle-hq/shuttle-docs/pull/219
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(cargo-shuttle): revert shuttle-common-tests to path dep by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1375
- misc(changelog): add link to releases page by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1378
- feat(cargo-shuttle): make command-line aliases visible by @orhun in https://github.com/shuttle-hq/shuttle/pull/1384
- improvement: rocket 0.5.0-rc.4 by @sentinel1909 in https://github.com/shuttle-hq/shuttle/pull/1379
- misc: bump axum minimum version, bump otel crates by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1386
- docs(readme): add note about CCH to README.md by @orhun in https://github.com/shuttle-hq/shuttle/pull/1389
- fix(gateway): use project_id argument when inserting project by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1387
- feat: add limits and tier to jwt claim by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1382
- refactor: clean up deployer db resources, delete after sync to r-r, delete secrets command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1376
- feat(gateway): temporary conditional project limit increase by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1383
- chore: v0.33.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1390
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.32.0...v0.33.0
v0.32.0
9 Nov 2023
Shuttle: v0.32.0 update
We're excited to release Shuttle v0.32.0! 🚀
Stricter Project Name Validation
One year ago we started enforcing stricter project names for any new project, but we allowed older projects with now invalid names to still be usable without interruption. In this release we will start enforcing the new restrictions for existing projects as well.
If you encounter any issues with old projects that had invalid names, please reach out to us on support@shuttle.rs, or open a help thread in our Discord.
Shuttle for Alpine Linux
Shuttle has been packaged for Alpine Linux 🥳 See https://github.com/shuttle-hq/shuttle/blob/main/cargo-shuttle/README.md#alpine-linux for installation instructions.
Other updates
- The deployer environment’s Rust version is now 1.73.0.
cargo_metadata::Metadata
’s project name field is now typeString
.- The password of
local_uri
connection strings will now be obfuscated in the terminal output. - Checking for the Shuttle runtime's version now errors if the check fails, for instance if the binary is not using shuttle-runtime or if the cargo config targets the wrong binary.
Bug fixes
- Fixed a bug where
resource list --show-secrets
was displaying the incorrect hostname for databases
Contributions
- @d4ckard helped implement the new project name validation in https://github.com/shuttle-hq/shuttle/pull/1354
- @mackey0225 fixed some typos in our docs in https://github.com/shuttle-hq/shuttle-docs/pull/216
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits in this release
- refactor: fix ProjectName validation, custom Path extractor for parsing it by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1354
- feat: use proto-gen for generating proto code by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1364
- chore: bump and refactor images, code cleanup by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1313
- feat: suggest project restart when trying to delete by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1366
- fix: database uri password hiding, runtime version check by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1368
- ci: audit on main, build release stack sooner, release crates faster by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1369
- docs(readme): add instructions for installing on Alpine Linux by @orhun in https://github.com/shuttle-hq/shuttle/pull/1365
- feat(installer): support installing the Alpine Linux package by @orhun in https://github.com/shuttle-hq/shuttle/pull/1370
- refactor: make admin compile, scope project models to backends by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1371
- docs(changelog): create CHANGELOG.md by @orhun in https://github.com/shuttle-hq/shuttle/pull/1372
- chore: v0.32.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1373
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.31.0...v0.32.0
v0.31.0
2 Nov 2023
Shuttle: v0.31.0 update
We're excited to release Shuttle v0.31.0! 🚀
Project Limits
With this release, we still start enforcing our project limits to reflect the limits from our pricing page. You will no longer be able to create more projects than your tier allows. If you are above the limit but want to create more projects, you need to either delete projects with cargo shuttle project delete
or upgrade to the Pro tier. If you are on the Pro tier and want more projects than the Pro tier limit, you can get in touch with us on hello@shuttle.rs or on our Discord.
If you experience problems when deleting very old projects, feel free to open a help thread on our Discord, or reach out at support@shuttle.rs.
Hidden Resource Credentials
The credentials of resources like shuttle_shared_db
or shuttle_aws_rds
will now be obfuscated by default in the CLI. If you need to see these credentials to access your database, you can add the --show-secrets
flag to the resource command: cargo shuttle resource list --show-secrets
.
Bug fixes
- Fixed a bug where the
cargo shuttle deploy
command would appear to hang when it was downloading crates. - Fixed a bug where renewed custom domain certificates were not persisted across
gateway
restarts. - Fixed a bug where resource provisioning errors were not displayed.
- Fixed a bug in our turso integration where using the latest version of
libsql-client
would not compile. We reverted to the previous version, see: https://github.com/shuttle-hq/shuttle/pull/1355. - Fixed a bug where secrets that were removed with
cargo shuttle resource delete secrets
(and removed fromSecrets.toml
), would be restored on subsequent deploys.
Contributions
- @AlphaKeks made sure we can’t accidentally log secrets in https://github.com/shuttle-hq/shuttle/pull/925
- @x04 implemented adaptive page hints for the
project list
anddeployment list
commands in https://github.com/shuttle-hq/shuttle/pull/1357 - @ethanholz and @AliSajid improved the documentation of our service integrations and resource crates in https://github.com/shuttle-hq/shuttle/pull/892 and https://github.com/shuttle-hq/shuttle/pull/893
- @GlenDC fixed typos in https://github.com/shuttle-hq/shuttle/pull/1360
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- bug: push renewed domain certificate to DB by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1347
- ci: add cargo-audit step by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1345
- feat: wrap secrets in custom types to prevent them from leaking by @AlphaKeks in https://github.com/shuttle-hq/shuttle/pull/925
- feat(logger): add instrumentation needed for alert by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1348
- bug: resource provisioning errors not showing by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1352
- bug: compile fails with secrets in resource configs by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1353
- refactor(runtime): hide internals from public-facing API, export tokio by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1332
- docs: updates for return types for examples actix-web, tide, serenity, tower by @ethanholz in https://github.com/shuttle-hq/shuttle/pull/892
- Documentation updates for return types by @AliSajid in https://github.com/shuttle-hq/shuttle/pull/893
- feat(cargo-shuttle): state MSRV in Cargo.toml by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1356
- bug: revert turso version update by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1355
- docs: add Docker Desktop config tip by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1350
- misc: cargo update to fix audit issue by @chesedo in https://github.com/shuttle-hq/shuttle/pull/1358
- feat(deployer): delete secrets from deployer persistence on secrets resource delete by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1359
- feat: adapative page hints (client-side only) by @x04 in https://github.com/shuttle-hq/shuttle/pull/1357
- fix typos found in codebase by @GlenDC in https://github.com/shuttle-hq/shuttle/pull/1360
- fix(deployer): handle cargo fetch without blocking logs, use async channels by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1349
- feat(gateway): project limit by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1331
- chore: v0.31.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1361
New Contributors
- @ethanholz made their first contribution in https://github.com/shuttle-hq/shuttle/pull/892
- @AliSajid made their first contribution in https://github.com/shuttle-hq/shuttle/pull/893
- @x04 made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1357
- @GlenDC made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1360
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.30.1...v0.31.0
v0.30.1
24 Oct 2023
Shuttle: v0.30.1 update
We're excited to release shuttle v0.30.1! 🚀
Bug fixes
- fixed failing commands when running certain commands against deployments (e.g.
cargo shuttle deployment list
)
Considerations
If you experienced any problems with v0.30.0, please upgrade your Shuttle dependencies to v0.30.1 and run cargo shuttle project restart
.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits for this release
- fix: scope enum serialization compatibility by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1341
- chore: v0.30.1 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1342
- chore: v0.30.1 part 2 by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1344
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.30.0...v0.30.1
v0.30.0
24 Oct 2023
Shuttle: v0.30.0 update
We're excited to release shuttle v0.30.0! 🚀
Project deletion
You can now delete projects with cargo shuttle project delete
🥳!
Bear in mind that you will be asked to manually delete any linked secrets and/or databases before deleting a project. Other resources, such as shuttle-persist
, are deleted along with your project.
⚠️ We are aware that some old projects are in a bad state where restarting them can not get them to a valid state, and can therefore not be deleted with the command. If you have projects that you are unable to delete, please reach out to us on support@shuttle.rs or open a help thread on Discord.
Other updates
- Improved error message when pre-deployment tests fail
- Fixed a bug in the installer script where reading Y/N input failed
- shuttle-next: Updated the version of
wasmtime
to 13.0
Contributions
- Unpin and bump version of
libsql-client
inshuttle-turso
@sentinel1909 - The commands that print tables (
project list
,deployment list
,resource list
, andsecrets
) can now use--raw
to not use bordered and dynamically sized tables @supleed2 - Alignment in the
project list
table fixed @supleed2
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits in this release
- ci: fix release ordering by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1312
- build: update dependencies by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1325
- refactor(deployer): improve deployment test failure msg by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1326
- improvement: unpin libsql-client, bump to v0.32.0 by @sentinel1909 in https://github.com/shuttle-hq/shuttle/pull/1329
- build(runtime): update to wasmtime 13.0 by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1330
- fix(installer): read input from process' controlling terminal by @orhun in https://github.com/shuttle-hq/shuttle/pull/1327
- docs(cargo-shuttle): update the link for the Arch Linux package by @orhun in https://github.com/shuttle-hq/shuttle/pull/1328
- feat(resource-recorder): add basic instrumentation by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1335
- feat: project delete by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1307
- feat(logger): add basic instrumentation to the API by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1336
- feat(cargo-shuttle): raw table output, fix table column alignment by @supleed2 in https://github.com/shuttle-hq/shuttle/pull/1319
- chore: v0.30.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1339
New Contributors
- @supleed2 made their first contribution in https://github.com/shuttle-hq/shuttle/pull/1319
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.29.1...v0.30.0
v0.29.1
12 Oct 2023
Shuttle: v0.29.1 update
We're excited to release shuttle v0.29.1! 🚀
Bug Fixes
- fixed a bug where local runs with a database would fail on the first run
Note: only cargo-shuttle
needs to be updated for this release.
What's Changed
- fix(resources/shared-db): retry initial connection a few times by @Kazy in https://github.com/shuttle-hq/shuttle/pull/1314
- chore: v0.29.1 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1317
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.29.0...v0.29.1
v0.29.0
9 Oct 2023
Shuttle: v0.29.0 update
We're excited to release shuttle v0.29.0! 🚀
Deleting resources
Databases linked to a project can now be deleted via the cargo shuttle resource delete <type>
command. You can check the syntax of <type>
with cargo shuttle resource list
.
After deleting a database, remember to remove the annotation from your main function, so that it does not get provisioned again.
With this feature released, we will soon enable you to delete projects! Deleting other resources, such as Secrets, Persist and Static Folder, will be added soon.
Bug fixes
- Fixed
--reset-api-key
when logging out of the CLI - Fixed scenario where the CLI init command would crash if not logged in
Other updates
- Added backend support for billing 👀
Upgrading
Refer to the upgrading docs
Commits in this release
- feat(auth): added billing backend support by @iulianbarbu in https://github.com/shuttle-hq/shuttle/pull/1289
- ci: fix cargo-shuttle publish ordering by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1297
- ci: use smaller machines for docker tests by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1301
- chore(editorconfig): add indentation settings for shell scripts by @orhun in https://github.com/shuttle-hq/shuttle/pull/1296
- chore: remove shuttle-static-folder by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1298
- fix(cargo-shuttle): fix init login bugs by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1309
- feat: added resource deletion by @GugaGongadze in https://github.com/shuttle-hq/shuttle/pull/1256
- chore: v0.29.0 by @oddgrd in https://github.com/shuttle-hq/shuttle/pull/1310
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.28.1...v0.29.0
cargo-shuttle v0.28.1
5 Oct 2023
Bug fixes
- fixed a bug where cargo-shuttle would panic on
cargo shuttle login
Commits for this release
- test(cargo-shuttle): add debug assertion for command-line arguments by @orhun in https://github.com/shuttle-hq/shuttle/pull/1295
- fix: cargo-shuttle panic on the login command by @jonaro00 in https://github.com/shuttle-hq/shuttle/pull/1302
Note: only the cargo-shuttle version was increased in this release, no other crates need to be upgraded.
Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.28.0...v0.28.1