Skip to content

Releases: encoredev/encore

v1.48.6 — Bugfix and improvement in tsparser

23 Jun 13:16
a08ab3a
Compare
Choose a tag to compare

What's Changed

  • tsparser: resolve conditional exports in the correct order by @fredr in #1973
  • tsparser: usage of default exported resources by @fredr in #1970

Full Changelog: v1.48.5...v1.48.6

v1.48.5 — Improvements

23 Jun 13:15
81f8985
Compare
Choose a tag to compare

What's Changed

  • dockerbuild: better error message for windows junctions by @fredr in #1968
  • appfile: add function that fails if app file not exist by @fredr in #1969
  • tsparser: handle default type params by @fredr in #1958
  • daemon: add env var for the mcp sse listen address by @fredr in #1971
  • docs: extra information about encore exec for encore go by @bamorim in #1975
  • Allow overriding public object storage listener address by @ekerfelt in #1976
  • Add support for External Databases by @ekerfelt in #1974
  • Detect duplicate migrations in metadata migrator by @ekerfelt in #1977

New Contributors

Full Changelog: v1.48.4...v1.48.5

v1.48.4 — Minor improvements

11 Jun 08:57
5693c67
Compare
Choose a tag to compare

What's Changed

  • show the correct install command in error message by @fredr in #1955
  • runtimes/core/sqldb: add cidr and inet postgres types by @fredr in #1957
  • runtimes/js: remove bigint panic and return an error instead by @fredr in #1960
  • db proxy: better logging by @fredr in #1965

Full Changelog: v1.48.3...v1.48.4

v1.48.3 — Minor improvements and bugfixes

02 Jun 13:04
9b3667a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.48.2...v1.48.3

v1.48.2 — Minor improvements and bugfixes

02 Jun 12:38
46941ec
Compare
Choose a tag to compare

What's Changed

  • cli/daemon/objects: use http.ServeContent for handling range requests by @eandre in #1945
  • Add Accept-Ranges header to the public bucket server by @ekerfelt in #1946

Full Changelog: v1.48.1...v1.48.2

v1.48.1 — Minor improvements and bugfixes

02 Jun 12:38
962f828
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.48.0...v1.48.1

v1.48.0 — Cookies in Encore.ts

27 May 15:30
06e25b1
Compare
Choose a tag to compare

Cookies in Encore.ts

Encore.ts now supports type-safe cookies for your API endpoints. This allows you to easily work with cookies in requests, responses, and auth handlers.

Basic Usage

Define a cookie in a request:

interface Params {
  sessionId: Cookie<"sessionId">;  // Implicitly string type
  userId: Cookie<number, "userId">; // Explicitly typed as number
}

Set a cookie in a response:

return {
  sessionId: {
    value: "abc123",
    httpOnly: true,
    secure: true,
    sameSite: "Strict"
  }
};

Access cookies in an auth handler:

const authHandler = auth<{ sessionId: Cookie<"sessionId"> }, User>(
  async ({ sessionId }) => validateSession(sessionId.value)
);

For cross-site requests, use { requestInit: { credentials: "include" } } when initializing the generated client.

Read more about cookies here

What's Changed

Full Changelog: v1.47.3...v1.48.0

v1.47.0 — Encore MCP Server

21 May 10:10
d93297b
Compare
Choose a tag to compare

Local introspection for AI tools like Cursor
We’re excited to launch the Encore MCP (Model Context Protocol) Server, for both Encore.ts and Encore.go, a local development server that gives AI-powered tools like Cursor structured access to your Encore app’s architecture, APIs, infrastructure, and runtime data.

Running locally alongside your app, the MCP server makes it possible for AI agents to deeply understand your system, leading to more accurate, useful, and context-aware development assistance.

🔍 What’s Exposed

In this first release, Encore's MCP server gives tools like Cursor access to:

  • API definitions, database schemas, and trace data
  • Metadata for Pub/Sub topics, caches, buckets, metrics, cron jobs and secrets.
  • Service-level architecture
  • Read-only database queries
  • Bucket content metadata
  • Service endpoints
  • Encore's Documentation

💡 Use Cases

Here are three ways tools like Cursor can now leverage the MCP server to boost your workflow:

1. Higher-quality agentic code generation
With structured access to your app’s APIs, services, infrastructure, and traces, Cursor can generate code that’s better aligned with your architecture and implementation patterns.

2. Context-aware design suggestions
Need to add a new service or refactor an existing one? With visibility into your app’s architecture and infrastructure, Cursor can propose changes that respect system boundaries and dependencies.

3. Faster debugging with trace and infra context
When debugging, Cursor can use local trace data, database schemas, to help you pinpoint issues and suggest relevant fixes, all based on the actual behavior of your local app. It can also call endpoints directly and help you understand the results by interpreting the corresponding traces.

How to use it

Start by updating Encore to v1.47.0: encore version update

You can connect to Encore's MCP server from any MCP host (such as Claude Desktop, IDEs like Cursor, or other AI tools) using either Server-Sent Events (SSE) or stdio transport.

To set up this connection, simply run encore mcp start

mcp

Learn more in the docs

Example: Integrating with Cursor

Cursor is one of the most popular AI powered IDE's, and it's simple to use Encore's MCP server together with Cursor.

Simply create the file .cursor/mcp.json with the following settings:

{
    "mcpServers": {
        "encore-mcp": {
            "command": "encore",
            "args": ["mcp", "run", "--app=your-app-id"]
        }
    }
}

Learn more in Cursor's MCP docs

Now when using Cursor's Agent mode, you can ask it to do advanced actions, such as:

"Add an endpoint that publishes to a pub/sub topic, call it and verify that the publish is in the traces"

cursor trace example

Thanks to our first time contributors ❤️

Full Changelog: v1.46.22...v1.47.0

v1.46.22 — Override auth data in encore.ts

09 May 13:22
489f928
Compare
Choose a tag to compare

You now can override the auth data for a specific endpoint when calling it via ~encore/clients by passing CallOpts. Example:

import { svc } from "~encore/clients";

const resp = await svc.endpoint(params, { authData: { userID: "...", userEmail: "..." } });

This can be useful e.g when writing tests that uses ~encore/clients to call protected endpoints.

What's Changed

  • runtimes/js: fix setting of multi-headers by @fredr in #1903
  • runtimes/{js,core}: add call options to api calls by @fredr in #1892
  • docs/ts: add docs for overriding auth data in ts by @fredr in #1904

Full Changelog: v1.46.21...v1.46.22

v1.46.21 — Import Existing AWS/GCP Resources and Configure Custom Network Settings

08 May 11:52
d8cf470
Compare
Choose a tag to compare

Encore Cloud now supports importing more types of existing cloud resources from AWS/GCP and customizing network IP ranges during environment creation. This makes it easier to integrate Encore into established cloud setups and avoid conflicts with existing networks.

import existing resources

Import Existing Resources

You can now use Encore Cloud to deploy Encore applications using these pre-existing resources:

GCP Projects
Deploy directly into an existing GCP project, allowing you to retain existing IAM configurations, billing settings, and organizational structures. Learn more in the docs

Cloud SQL Instances (GCP)
Connect your Encore app to an existing Cloud SQL instance. Encore will validate and link the instance, and automatically apply migrations as needed. Learn more in the docs

RDS Instances (AWS)
Use an existing AWS RDS instance instead of provisioning a new one. Encore handles validation and connects your app to the imported database. Learn more in the docs

ICYMI: GKE Kubernetes Clusters (GCP)
In case you didn't know, Encore Cloud already supports importing existing GKE clusters on GCP.
Learn more in the docs

Configure Custom Network Settings

When creating a new environment, you can now define a custom IP range for Encore Cloud to use. This is especially useful when peering with existing networks, helping you:

  • Connect your Encore application to existing networks via peering
  • Prevent IP range conflicts with other networks in your organization
  • Plan your network topology with predictable addressing

By default, Encore will reserve a randomly assigned /16 block in one of the private IP ranges, suitable for most deployments that don't require network peering. Learn more in the docs

Thanks to our first time contributors! ❤️

Full Changelog: v1.46.20...v1.46.21