Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 167 additions & 0 deletions apps/site/content/changelog/2026-08-07.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
---
title: "Deploy a template to Prisma Compute in one click and install Prisma 8 as a single package"
date: "2026-08-07"
version: "2026-08-07"
slug: "2026-08-07"
headline: "Deploy a template to Prisma Compute in one click and install Prisma 8 as a single package"
tags:
- "Prisma"
- "Prisma Compute"
- "Prisma Postgres"
- "Prisma 8"
- "Prisma ORM"
canonical: "/changelog#log2026-08-07"
metaDescription: "Prisma Compute adds one-click template deployment and a Deploy Button for any public repository, Prisma 8 ships its first release candidate installable as a single package, and the Management API adds workspace service token management."
share:
active: true
content: "Look at this page: "
---
You can now deploy a production-ready template to Prisma Compute in one click, from any workspace. A new Deploy Button gives any public GitHub repository the same one-click setup from its README.

Prisma 8 (Early Access, previously announced as Prisma Next) has its first release candidate: releases are now versioned `8.0.0-rc.N`, and an application installs one package, such as `@prisma/orm-postgres`, instead of a dozen.

The Management API now creates and revokes workspace service tokens, previously a Console-only workflow, and reports a workspace's subscription plan.

Prisma Migrate now refuses a shadow database URL that points at the main database, closing a data-loss path. Prisma Studio's local server no longer accepts requests from other network clients or websites.

## Highlights

### New · Deploy a template to Prisma Compute in one click

You can now deploy a production-ready starter app to Prisma Compute (Public Beta) in one click. Pick Hono API, Next.js, or TanStack Start from the template catalog, and Prisma creates the GitHub repository, provisions a Prisma Postgres database, and starts the first deployment. Template deployment was previously limited to selected workspaces; every signed-in workspace member can now use it.

![Prisma Compute template catalog in the Prisma Console, showing Hono API, Next.js, and TanStack Start templates](/changelog/prisma-compute-template-catalog.png)

Browse the [template catalog](https://console.prisma.io/templates) to start.

### New · Give your repository a Prisma Compute Deploy Button

You can now add a Deploy Button to any public GitHub repository. A visitor who clicks it gets a copy of the repository in their own GitHub account, a Prisma project with a Prisma Postgres database, and a first deployment, all from one link.

The link carries environment variable names only. Values are typed into the Prisma Console form and never appear in a URL.

```text
https://console.prisma.io/new/clone
?repository-url=https://github.com/<owner>/<repo>
&env=DATABASE_URL,WEBHOOK_SECRET
```
Comment on lines +43 to +47

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find the route implementation and all published examples.
rg -n -C 5 -g '*.{md,mdx,ts,tsx,js,jsx}' \
  'console\.prisma\.io/new/clone|repository-url|new/clone|[?&]env=' apps

Repository: prisma/web

Length of output: 1572


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- tracked files containing relevant terms ---'
rg -n -C 4 \
  'console\.prisma\.io/new/clone|repository-url|new/clone|[?&]env=' \
  -g '!apps/site/content/changelog/2026-08-07.mdx' .

printf '%s\n' '--- changelog context ---'
sed -n '34,50p' apps/site/content/changelog/2026-08-07.mdx

Repository: prisma/web

Length of output: 196


🌐 Web query:

Prisma Deploy Button console.prisma.io/new/clone repository-url env

💡 Result:

There is no official "Prisma Deploy Button" console.prisma.io/new/clone URL structure [1][2][3][4]. The URL structure you mentioned—specifically console.prisma.io/new/clone with repository-url and env parameters—is characteristic of the Vercel Deploy Button, which uses exactly those query parameters (repository-url and env) to pre-configure project deployments [5][6][7]. Prisma documentation indicates that Prisma Compute and other managed services are primarily managed through the Prisma Console web interface or the @prisma/cli command-line tool [1][2][4]. Users deploy applications and manage configurations (including environment variables) via the CLI or the Console dashboard rather than a "Deploy Button" URL [2][8][3][9]. If you are trying to deploy a project that uses Prisma, you should: 1. Use the standard deployment platform workflows (such as Vercel's Deploy Button) to handle the application's hosting and git cloning [5][6][7]. 2. Use the Prisma Console to provision and manage your Prisma Postgres databases or Prisma Compute resources [4][10][11]. 3. Configure your environment variables (like DATABASE_URL) within your hosting provider's dashboard or via the Prisma CLI as instructed in the official Prisma guides [8][9][10][12].

Citations:


Remove or replace the unsupported Deploy Button URL.

console.prisma.io/new/clone with repository-url and env matches Vercel’s Deploy Button contract, not a documented Prisma endpoint.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/site/content/changelog/2026-08-07.mdx` around lines 43 - 47, Remove the
unsupported Prisma Deploy Button URL block from the changelog entry, or replace
it with a documented Prisma endpoint and valid parameters. Do not retain the
`console.prisma.io/new/clone` link or its Vercel-style `repository-url` and
`env` query parameters.


### New · Install Prisma 8 as a single package

The first Prisma 8 release candidate is out, and an application now installs one Prisma package. Until now an app that talks to PostgreSQL installed a dozen `@prisma-next/*` packages; everything now arrives as dependencies of one database package under the `@prisma` scope.

```jsonc
// package.json: the only Prisma dependency your app needs
{
"dependencies": {
"@prisma/orm-postgres": "8.0.0-rc.1"
}
}
```

Releases are now versioned `8.0.0-rc.N`, with no further `0.x` minors. Existing installs are not moved onto the release-candidate line by `npm update`: a `^0.x` range never matches a pre-release, so only a fresh install or an explicit version change lands on it.
Comment on lines +51 to +62

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find manifests that still use the old package names and the new package.
rg -n -C 3 -g 'package.json' \
  '"`@prisma-next/`|"`@prisma/orm-postgres`"' .

Repository: prisma/web

Length of output: 148


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- changelog context ---'
sed -n '1,90p' apps/site/content/changelog/2026-08-07.mdx

printf '%s\n' '--- tracked references to package names ---'
git grep -n -E '`@prisma-next/`|`@prisma/orm-postgres`' -- ':!*.lock' || true

printf '%s\n' '--- tracked package manifests ---'
git ls-files '*package.json' | head -200

Repository: prisma/web

Length of output: 35425


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path
import json
import re

old = re.compile(r"^`@prisma-next/`")
new = "`@prisma/orm-postgres`"

manifests = []
for path in Path(".").rglob("package.json"):
    try:
        data = json.loads(path.read_text())
    except Exception:
        continue
    deps = {}
    for section in ("dependencies", "devDependencies", "optionalDependencies", "peerDependencies"):
        deps.update(data.get(section, {}))
    if any(old.match(name) for name in deps) or new in deps:
        manifests.append((str(path), sorted(name for name in deps if old.match(name) or name == new)))

print("repository manifests with old/new Prisma dependency keys:")
for path, names in manifests:
    print(f"{path}: {names}")
if not manifests:
    print("(none)")

# The relevant npm invariant: update changes versions for existing keys.
existing = {"`@prisma-next/postgres`": "^0.16.0"}
updated = dict(existing)
updated["`@prisma-next/postgres`"] = "0.16.0"
print("unchanged dependency keys after an update:", sorted(updated))
print("new package added by update:", new in updated)

# A caret range beginning below 1.0.0 cannot include an 8.0.0 prerelease.
def caret_zero_upper(version):
    major, minor, *_ = map(int, version.split("."))
    return (0, minor + 1, 0)

lower = (0, 16, 0)
upper = caret_zero_upper("0.16.0")
candidate = (8, 0, 0)
print("candidate 8.0.0-rc.1 within ^0.16.0:", lower <= candidate < upper)
PY

Repository: prisma/web

Length of output: 360


Document the package-name migration.

Existing installations must remove their @prisma-next/* dependencies and add @prisma/orm-postgres. npm update or reinstalling an unchanged manifest cannot rename dependencies or add the new package.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/site/content/changelog/2026-08-07.mdx` around lines 51 - 62, Update the
Prisma 8 release-candidate changelog entry to explicitly instruct existing
installations to remove all `@prisma-next/`* dependencies and add
`@prisma/orm-postgres` to package.json. Clarify that npm update or reinstalling an
unchanged manifest does not perform this package-name migration.


Shipped in [prisma/prisma#29864](https://github.com/prisma/prisma/pull/29864); versioning policy in [prisma/prisma#29899](https://github.com/prisma/prisma/pull/29899).

## Prisma Compute

Prisma Compute adds template deployment, the Deploy Button, package manager detection from `devEngines`, and a startup warning for apps that cannot receive traffic.

- **Improved** · Prisma Compute builds now resolve the package manager from the `devEngines.packageManager` field in `package.json`, including semver ranges. Apps that declare pnpm only through `devEngines` no longer fall back to npm and fail on `workspace:` protocols.
- **Improved** · Prisma Compute now warns at startup when an application binds only to localhost and cannot receive ingress traffic, instead of deploying silently and serving nothing.

```json
{
"devEngines": {
"packageManager": { "name": "pnpm", "version": "^11.0.4" }
}
}
```

## Prisma Postgres

Prisma Postgres places new Object Store buckets closer to their project and labels incremental backups.

- **Improved** · New Object Store buckets are now provisioned in a region near the project's database region instead of a global location, which removes cross-region latency from bucket metadata requests. Existing buckets are unchanged.
- **Improved** · Backup lists now distinguish incremental backups from full backups and report backup sizes in the correct unit.

## Management API

The Management API adds workspace service token management and a workspace subscription endpoint.

- **New** · Workspace service tokens, previously manageable only in the Prisma Console under Workspace Settings, can now be created, listed, and revoked through `/v1/workspaces/{workspaceId}/service-tokens`. The token value is returned exactly once, at creation, and is never stored.
- **New** · `GET /v1/workspaces/{workspaceId}/subscription` returns the workspace's plan name, whether usage is currently blocked, and the Console upgrade URL, so CLI tools and integrations can point users at the right recovery path.

```bash
# Create a token; the value is returned once, never stored
curl -X POST https://api.prisma.io/v1/workspaces/$WORKSPACE/service-tokens \
-H "Authorization: Bearer $TOKEN" -d '{"name":"ci"}'

# Revoke it
curl -X DELETE https://api.prisma.io/v1/workspaces/$WORKSPACE/service-tokens/$TOKEN_ID \
-H "Authorization: Bearer $TOKEN"
```
Comment on lines +95 to +103

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the generated endpoint documentation and locate its source operation.
sed -n '1,180p' \
  apps/docs/content/docs/management-api/endpoints/service-tokens/post-workspaces-by-workspace-id-service-tokens.mdx
rg -n -C 5 -F '/v1/workspaces/{workspaceId}/service-tokens' .

Repository: prisma/web

Length of output: 11618


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- candidate API specification files ---'
fd -HI -t f 'openapi|swagger|management-api|service-token' . | head -200

printf '%s\n' '--- request-body and content-type definitions ---'
rg -n -i -C 4 'service.?tokens|serviceToken|requestBody|application/json|content-type' \
  --glob '!apps/docs/content/docs/management-api/endpoints/**' \
  --glob '!node_modules/**' \
  . | head -300

Repository: prisma/web

Length of output: 25637


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- OpenAPI fetch and rendering configuration ---'
cat -n apps/docs/scripts/fetch-openapi.ts | sed -n '1,220p'
cat -n apps/docs/src/lib/openapi.ts | sed -n '1,220p'

printf '%s\n' '--- generated Postman operation ---'
rg -n -i -C 12 'service.?tokens|serviceToken|workspaceId' \
  apps/docs/public/prisma-management-api.postman_collection.json | head -220

printf '%s\n' '--- all tracked management API assets ---'
git ls-files | rg -i 'management.*api|openapi|service.?token'

Repository: prisma/web

Length of output: 50367


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
import json

path = "apps/docs/public/prisma-management-api.postman_collection.json"
with open(path, encoding="utf-8") as f:
    collection = json.load(f)

def walk(items):
    for item in items:
        request = item.get("request")
        if request:
            url = request.get("url", {})
            parts = url.get("path", [])
            if "service-tokens" in parts:
                print(json.dumps({
                    "name": item.get("name"),
                    "method": request.get("method"),
                    "path": parts,
                    "headers": request.get("header"),
                    "body": request.get("body"),
                }, indent=2))
        walk(item.get("item", []))

walk(collection.get("item", []))
PY

printf '%s\n' '--- live OpenAPI operation content types ---'
curl --fail --silent --show-error https://api.prisma.io/v1/doc |
python3 -c '
import json, sys
doc = json.load(sys.stdin)
for path, item in doc.get("paths", {}).items():
    if "service-tokens" in path:
        print(json.dumps({"path": path, "post": item.get("post"), "delete": item.get("delete")}, indent=2))
'

Repository: prisma/web

Length of output: 9137


Set the request content type to JSON.

The POST operation accepts application/json, but curl -d sends form-encoded data by default. Add -H "Content-Type: application/json" to the create-token command.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/site/content/changelog/2026-08-07.mdx` around lines 95 - 103, Add the
JSON Content-Type header to the POST create-token curl command, alongside its
existing Authorization header, so the request body is sent as application/json.
Leave the revoke command unchanged.


## Prisma 8

Prisma 8 serves a complete error reference from the docs and consolidates its agent skills into one install.

- **Docs** · Every error Prisma 8 emits carries a `docsUrl` that now resolves: the [error reference](https://www.prisma.io/docs/orm/next/reference/error-reference) renders all 244 error codes, and each link scrolls to its exact code. ([prisma/web#8125](https://github.com/prisma/web/pull/8125))
- **Improved** · `prisma-next init` now installs one `prisma-8` agent skill instead of eleven per-workflow skills, and removes the retired skill directories from each agent's install root. ([prisma/prisma#29853](https://github.com/prisma/prisma/pull/29853))

## Breaking changes

> **Breaking:** Prisma 8 aggregate results now decode through the codec their target declares, so aggregate types change in `8.0.0-rc.1`: `count()` returns a `bigint` (`count === 2` is false when the value is `2n`), `sum` over 64-bit integers reads as an exact decimal string, and `JSON.stringify` throws on a bigint result. To migrate, sweep code for equality, arithmetic, and serialization against aggregate results, then regenerate contracts with `prisma-next contract emit`. ([prisma/prisma#29867](https://github.com/prisma/prisma/pull/29867))

> **Breaking:** The Prisma 8 SQL driver interface is now two methods: `query()` streams rows and `execute()` returns statement statistics, with prepared execution expressed by an optional `preparedStatementHandle` on the request. Application code and query results are unaffected. To migrate a custom driver, implement the two-method shape. ([prisma/prisma#29907](https://github.com/prisma/prisma/pull/29907))

## Fixes and improvements

**Prisma Compute**

- **Fixed** · Prisma Compute template and repository deployments now show progress immediately: the deploy button disables and reads `Preparing template` while GitHub authorization is prepared, instead of appearing unresponsive for several seconds.
- **Fixed** · Prisma Compute template deployments that hit an already-used repository name now say so and ask for another name, instead of reporting that the repository changed during the copy.
- **Fixed** · A race during repository creation no longer strands a freshly created repository and fails the deployment.

**Prisma Console**

- **Improved** · The Prisma Console billing page now shows Prisma Postgres operations remaining in the current cycle and when the allowance resets, instead of a calendar countdown.
- **Improved** · A workspace paused at its operations limit now gets a recovery flow: the plan picker names the minimum plan that unblocks it, confirms operations are restored after the upgrade, and clears the resolved warning banners without a page reload.
- **Improved** · An `Upgrade plan` action is now available from the account menu on every Prisma Console page.
- **Improved** · Prisma Console signup keeps an entered email and password when moving between login and signup, and accepts 15-character browser-generated passwords.
- **Fixed** · A billing upgrade link opened while signed out now returns to the requested upgrade dialog after password, GitHub, or Google sign-in.
- **Fixed** · Workspaces suspended over unpaid invoices on a canceled subscription now unsuspend automatically once the invoices are paid.

**Prisma Postgres**

- **Improved** · Spend limits are now enforced for workspaces billed through the Vercel Marketplace: threshold emails and usage holds work the same as for directly billed workspaces.
- **Fixed** · Object Store bucket creation no longer fails for projects whose display names exceed 50 characters.

**Prisma MCP server**

- **Fixed** · Connecting the Prisma MCP server from the Claude apps no longer fails with "Couldn't register with Prisma's sign-in service": client registration now accepts the `client_secret_post` authentication method.

**Prisma ORM**

- **Fixed** · Prisma Migrate now refuses a shadow database URL that denotes the main database, with the new error code `P3025`, before touching any database. Previously `prisma migrate diff --from-migrations` with such a configuration could drop the real schema and report success. ([prisma/prisma-engines#5851](https://github.com/prisma/prisma-engines/pull/5851))

**Prisma Studio**

- **Fixed** · Prisma Studio's local server now listens only on `127.0.0.1` and rejects browser requests from origins other than the active Studio URL. Previously a reachable network client, or a malicious website visited while Prisma Studio was open, could query the connected database. ([prisma/prisma#29890](https://github.com/prisma/prisma/pull/29890))

**Prisma 8**

- **Fixed** · Nested `some`/`every`/`none` predicates over self-referential relations now keep a distinct SQL scope at every level, so an inner filter no longer shadows the parent it correlates against. ([prisma/prisma#29900](https://github.com/prisma/prisma/pull/29900))
- **Fixed** · `count()`, `sum()`, `avg()`, `min()`, and `max()` on a many-to-many include now traverse the junction table and return correct results for filtered relations. ([prisma/prisma#29888](https://github.com/prisma/prisma/pull/29888))
- **Fixed** · Repeated upserts keyed on a `Bytes` column no longer fail with `ORM.MUTATION_ROW_MISSING`. ([prisma/prisma#29910](https://github.com/prisma/prisma/pull/29910))
- **Fixed** · MongoDB `create()`, `update()`, `delete()`, and `upsert()` results now decode through codecs, so a created row's `_id` matches the value read back later. ([prisma/prisma#29879](https://github.com/prisma/prisma/pull/29879))
- **Fixed** · Schemas that `@map` a column, table, or model to a name that is not a bare identifier now emit valid `contract.d.ts` with quoted keys. ([prisma/prisma#29889](https://github.com/prisma/prisma/pull/29889))
- **Fixed** · Driver-level reads issued while a connection holds an open transaction no longer commit the caller's transaction on the PostgreSQL direct driver. ([prisma/prisma#29920](https://github.com/prisma/prisma/pull/29920))

## Guides and articles

- [Deploy with Alchemy](https://www.prisma.io/docs/compute/alchemy): an end-to-end infrastructure-as-code guide covering Prisma Postgres provisioning and Prisma Compute deployment, including authentication, custom domains, CI workflows, migrations, and cleanup.

---

*Need help applying these changes in production? [Prisma Enterprise Support](https://prisma.io/enterprise) can help with schema design, performance, security, and compliance.*
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading