Releases: encoredev/encore
v1.46.10 — Improvements for monorepos
Improvements for monorepos
In this release we have made some improvements to handle TypeScript monorepos better. Existing applications deployed via Encore Cloud should continue working as before, while minor changes have been made to the directory structure set up by encore build docker
. See below for more details.
Changes when building a self-hosted Docker image via encore docker build
- Working dir will default to your app root (for go apps, this will only mean a change if you set
bundle_source
to true inencore.app
). Previously we set it by default to/workspace
- For TypeScript apps the entrypoint have been changed location into your app root rather than
/artifacts/0/...
. Which means that all the parentnode_modules
will be taken into account when resolving modules. - For TypeScript apps, if you do not set
bundle_source
totrue
, only your app root and all parentnode_modules
andpackage.json
files will be included (including any symlink targets that point to somewhere within your repo), if your app is part of a git repo. - If your encore app is part of a git repo, and you bundle the source code, we will bundle the whole repository and not only your app root
Changes when deploying via Encore Cloud
- If your application lives in a subdirectory of the git repository, that subdirectory will now be used as the application's working directory. This is more consistent with how
encore run
works locally. - Encore.ts applications now support setting
bundle_source
tofalse
. In this case only the app root and all parentnode_modules
andpackage.json
files will be included (including any symlink targets that point to somewhere within your repo).
Changes when creating new apps
- Encore.ts applications no longer default
bundle_source
to true inencore.app
, to reduce Docker image sizes.
Other improvements
- Fix schema filename mismatch in TypeScript GraphQL tutorial by @azoth-anima in #1718
- Better support for ts workspaces by @fredr in #1794
Thanks to our new contributor ❤️
- @azoth-anima made their first contribution in #1718
Full Changelog: v1.46.9...v1.46.10
v1.46.9 — Minor improvements & Bugfixes
What's Changed
- tsparser: duplicate api name error by @fredr in #1814
- cli: add configurable app root for example apps by @eandre in #1812
Full Changelog: v1.46.8...v1.46.9
v1.46.8 — Minor Bugfixes
v1.46.7 — Experimental Bun Runtime Support
Experimental Bun Runtime Support
We are testing out using Bun as a supported runtime. To enable it for your app, set bun-runtime
as an experiment in encore.app
.
If you want to deploy it, you'll also need to set the base image to an image that have bun installed, e.g oven/bun:1.2.2-slim
.
Example encore.app
file with the experiment enabled:
{
"id": "...",
"lang": "typescript",
"build": {
"docker": {
"bundle_source": true,
"base_image": "oven/bun:1.2.2-slim",
}
},
"experiments": ["bun-runtime"]
}
You might also want to set smol = true
in bunfig.toml
since bun uses quite a bit of memory.
What's Changed
- builder: Add docker options to ImageBuildConfig by @ekerfelt in #1799
- Experiment with bun as nodejs runtime by @fredr in #1798
Full Changelog: v1.46.6...v1.46.7
v1.46.6 — Minor improvements & Bugfixes
What's Changed
- add infra config docs by @marcuskohlberg in #1789
- object storage: Apply list prefix from options by @ekerfelt in #1791
- ts: Add support for pubsub message ordering in TS by @ekerfelt in #1793
- Add support for bun package manager by @ekerfelt in #1770
Full Changelog: v1.46.5...v1.46.6
v1.46.5 — Enhancements and Fixes
What's Changed
- enable pingora openssl feature by @fredr in #1758
- update cargo lock by @fredr in #1759
- chore: fix some function names in comment by @sjtucoder in #1755
- docs: Correct vite config file extension by @fredr in #1752
- chore: fix some function names in comment by @wangjingcun in #1767
- Update README.md by @marcuskohlberg in #1768
- update database troubleshooting section by @marcuskohlberg in #1769
- add use Logto auth guide by @xiaoyijun in #1765
- Fix: typo mistake
vite.config.json
should bevite.config.ts
by @hi-ammad in #1761 - add prerequisites information to encore.ts docs by @marcuskohlberg in #1772
- fix new clippy lints by @fredr in #1776
- extract non-visible ascii from header value by @fredr in #1781
- handle non-ascii header values by @fredr in #1785
- update platform intro docs by @marcuskohlberg in #1787
- docs/ts: add section about fallback routes by @fredr in #1780
- runtimes/core: decode path before verifying seal by @fredr in #1782
- Increase max message size by @Willyham in #1777
Thanks to our new contributors!
- @sjtucoder made their first contribution in #1755
- @wangjingcun made their first contribution in #1767
- @xiaoyijun made their first contribution in #1765
- @hi-ammad made their first contribution in #1761
Full Changelog: v1.46.4...v1.46.5
v1.46.4 — Minor improvements & Bugfixes
What's Changed
- runtimes/js: add tags to api description by @fredr in #1741
- runtimes/core: deserialize details to none if not valid pvalues by @fredr in #1746
- Explain how to mock auth in encore.ts by @Julion in #1747
- rumtimes/js: better error message when error coercion fails by @fredr in #1748
Thanks to our new contributors!
- @Bilogweb3 made their first contribution in #1648
- @Julion made their first contribution in #1747
Full Changelog: v1.46.2...v1.46.4
v1.46.2 — Migrations Status in Local Dashboard
We're working on making the local development dashboard even more useful, and adding the infrastructure page was a recent improvement to give you a better overview of your local infrastructure.
In this release we've added support for displaying the migration status of each locally running database, so you can easily see which migrations have run and which are pending (and will be applied when you restart your app).
Remember to update using: encore version update
infra_page_db.mp4
We love your feedback!
If you have any improvement/feature ideas or feedback, please share your thoughts on Discord.
Full Changelog: v1.46.1...v1.46.2
v1.46.1 — Updated behavior when generating clients
Changes when generating clients
encore gen client
now default to--env=local
instead of defaulting to your primary cloud environment. If you rely on the previous default, update you command and set--env=<cloud-env-name>
- The generated code for calling raw endpoints no longer hard-code
Content-Type: application/json
for generated TS/JS clients. This meansfetch
will begin auto-detecting the content type if it is not explicitly provided, which enables better support for usingFormData
for uploading files via the generated client. You can preserve the previous behavior by explicitly setting theContent-Type
header in the fetch options provided to the raw endpoint.
What's Changed
- tsparser: make tags non-nullable by @eandre in #1729
- Add user configuration support by @eandre in #1722
- runtimes/core: fix stream handshake with only path parameters by @fredr in #1730
- Update app-structure.md by @marcuskohlberg in #1732
- Update ts_llm_instructions.txt by @marcuskohlberg in #1733
- clientgen: default to local env if no env is specified by @fredr in #1728
- clientgen/{ts,js}: default content type on raw request by @fredr in #1717
Full Changelog: v1.46.0...v1.46.1
v1.46.0 — Signed URLs for Storage Objects & Local Dashboard improvements
Signed Upload/Download URLs for Storage Objects
This has been a highly requested feature since we launched object storage, and it's finally here!
Signed URLs provide a secure way for clients to upload directly to storage, and to download directly from private buckets. This leaves the heavy lifting to the specialized cloud storage services, and frees your API service from handling large content payloads.
Generating a URL to let a client upload directly to a bucket:
const uploadUrl = await profilePictures.signedUploadUrl("my-user-id", {ttl: 7200})
// Pass url to client
curl -X PUT --data-binary @/home/me/dog-wizard.jpeg "https://storage.googleapis.com/profile-pictures/my-user-id/?x-goog-signature=b7a1<...>"
Please check out the docs for more info, and we wish you happy transfers!
Remember to update using: encore version update
Infra dashboard in the Local Development Dashboard
You can now see your locally running infrastructure in the local development dashboard!
This helps you verify that everything is running as expected and simplifies actions like triggering Cron Jobs when developing locally.
We plan on expanding the dashboard with much more functionality, e.g. database management.
Please let us know on Discord what would be most useful to you! ❤️
localinfra.mp4
Event Details in Trace Viewer
It's been a long time coming, but we've finally shipped a key improvement to Encore's trace viewer: Event Details
This small but mighty change makes it much easier to view complex traces with many separate events. Simply click to expand and view each event on the timeline in a list.
tracedetails.mp4
What's Changed
- Add LLM instructions by @marcuskohlberg in #1706
- Add Railway deployment guide by @simon-johansson in #1693
- runtimes/go: support cache cluster outside svcs by @eandre in #1709
- add go llm rules by @marcuskohlberg in #1710
- update llm instructions by @marcuskohlberg in #1712
- Update self-host examples by @simon-johansson in #1708
- Add support for signed upload urls. by @erikcarlsson in #1661
- runtimes/go: fix cache error tracing by @eandre in #1713
- Add support for signed download urls. by @erikcarlsson in #1715
- infra: Add infra config docs and fix pubsub config bug by @ekerfelt in #1720
- clientgen/ts: qualify Request with globalThis to avoid name conflicts by @fredr in #1721
- Add docs for signed upload/download URLs. by @erikcarlsson in #1684
- runtimes/js: Add endpoint tags by @fredr in #1726
Full Changelog: v1.45.6...v1.46.0