Skip to content
Merged
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
2 changes: 1 addition & 1 deletion mintlify/docs/api-reference/data/get-all.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Returns a list of documents from the specified collection. Supports pagination,
</ParamField>

<ParamField query="limit" type="number">
Number of documents per page. Defaults to `20`.
Number of documents per page. Defaults to `100`, maximum `1000`.
</ParamField>

<ParamField query="sort" type="string">
Expand Down
4 changes: 3 additions & 1 deletion mintlify/docs/api-reference/storage/upload.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@ Send the request as `multipart/form-data` with a single field:

| Limit | Value |
| :--- | :--- |
| Max file size | 10 MB per file |
| Max file size | 10 MB per file (urBackend-hosted storage only) |
| Total storage quota | 100 MB (default plan) |

Projects connected to external (bring-your-own) storage are not subject to the 10 MB per-file limit.

### Code Examples

<CodeGroup>
Expand Down
21 changes: 21 additions & 0 deletions mintlify/docs/changelog/august-2026.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,27 @@ title: August 2026
description: What's new in urBackend — new features, improvements, and fixes.
---

<Update label="2026-08-31" description="Week of 2026-08-25–2026-08-31" tags={["Feature", "Improvement", "Fix"]}>
## New features

- **Permanently delete documents** — The Database page trash view now has a permanent delete button next to restore. After a confirmation prompt, the document is removed immediately (no 30-day wait) and your database quota is reclaimed right away. See [Permanent deletion](/guides/database#permanent-deletion). (by [@yash-pouranik](https://github.com/yash-pouranik) in [#403](https://github.com/geturbackend/urbackend/pull/403))
- **Granular presigned upload methods in the SDK** — `@urbackend/sdk` `0.4.8` exposes `storage.requestUploadUrl()` and `storage.confirmUpload()`, plus a static `uploadToPresignedUrl()` helper, so you can generate a signed URL on your server and let a browser client upload directly to cloud storage without exposing your secret key. See [Storage SDK](/sdk/storage). (by [@yash-pouranik](https://github.com/yash-pouranik) in [#401](https://github.com/geturbackend/urbackend/pull/401))

## Improvements

- **Data fetch limit raised to 1000** — The `limit` query parameter on data reads now accepts up to `1000` documents per request, up from `100`. The default stays `100`. See [Limits and quotas](/limits-and-quotas). (by [@yash-pouranik](https://github.com/yash-pouranik) in [`9895b5d`](https://github.com/geturbackend/urbackend/commit/9895b5d88107912450a4a1534382fddbd98d1433) and [`759b694`](https://github.com/geturbackend/urbackend/commit/759b694d45494e0398af180775942d07c35f0dd7))
- **No 10 MB cap for bring-your-own storage** — Uploads to projects connected to external (BYOD) storage no longer hit the 10 MB per-file limit. The limit still applies to urBackend-hosted storage, and the `413` error message now states the exact cap. See [Storage limits](/limits-and-quotas#storage-limits). (by [@yash-pouranik](https://github.com/yash-pouranik) in [`6e68950`](https://github.com/geturbackend/urbackend/commit/6e689509df63cdb45c7d986c601b459f0cfe5267))
- **More accurate database usage tracking** — Inserts, edits, and permanent deletes now measure actual BSON document size when updating your `databaseUsed` quota, so reported usage matches what's stored. (by [@yash-pouranik](https://github.com/yash-pouranik) in [#403](https://github.com/geturbackend/urbackend/pull/403))
- **Publishable key masked by default** — The dashboard now masks your `pk_live` publishable key in API responses and in the UI until you reveal it. (by [@yash-pouranik](https://github.com/yash-pouranik) in [`282e8d2`](https://github.com/geturbackend/urbackend/commit/282e8d2572e5ef9cf9592135f1c6e806b436424b))

## Bug fixes

- **Soft-deleted documents excluded from populated refs** — Reads that populate `Ref` fields no longer return trashed documents unless you pass `include_deleted=true`. (by [@yash-pouranik](https://github.com/yash-pouranik) in [`54d34ee`](https://github.com/geturbackend/urbackend/commit/54d34eefda3e61b928ddcca0b085d2118a4e36fc))
- **Create Collection showed empty collections** — Fixed a missing response wrapper that made collections appear empty on the Create Collection page. (by [@yash-pouranik](https://github.com/yash-pouranik) in [`54612b1`](https://github.com/geturbackend/urbackend/commit/54612b10351a92314452c7311f2f11f6b9aca80f))
- **Edit Collection loads safely** — The Edit Collection form now shows a loading skeleton while data loads, preventing edits from being saved against stale state. (by [@yash-pouranik](https://github.com/yash-pouranik) in [`86aadcd`](https://github.com/geturbackend/urbackend/commit/86aadcda776fb29c4f07529fb265e4bbe1137d91))
- **SDK works without `Blob`** — `@urbackend/sdk` `0.4.8` guards `Blob instanceof` checks so storage uploads work in runtimes where `Blob` is undefined. (by [@yash-pouranik](https://github.com/yash-pouranik) in [#401](https://github.com/geturbackend/urbackend/pull/401))
</Update>

<Update label="2026-08-24" description="Week of 2026-08-18–2026-08-24" tags={["Improvement", "Fix"]}>
## Improvements

Expand Down
9 changes: 7 additions & 2 deletions mintlify/docs/guides/database.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Use query parameters to filter, sort, and paginate results.
| Parameter | Description | Example |
| --- | --- | --- |
| `page` | Page number (1-indexed) | `?page=2` |
| `limit` | Results per page | `?limit=20` |
| `limit` | Results per page (default `100`, max `1000`) | `?limit=20` |
| `sort` | Field to sort by, prefix `-` for descending | `?sort=-createdAt` |
| `field_suffix` | Filter by field value (see below) | `?age_gt=18` |

Expand Down Expand Up @@ -172,9 +172,14 @@ When you delete a document using `DELETE /api/data/:collectionName/:id`, your ba
- Documents enter a **30-day grace period** before permanent deletion.
- You can view trashed documents by appending the `include_deleted=true` query parameter to your read or aggregation requests.
- A background BullMQ cleanup worker automatically hard-deletes expired documents after 30 days.
- Populated `Ref` fields exclude soft-deleted documents unless you pass `include_deleted=true`.

### Permanent deletion

You can skip the grace period from the dashboard. On the **Database** page, enable the trash view, then click the delete icon on a trashed document. urBackend asks for confirmation, removes the document immediately, and reclaims its `databaseUsed` quota right away.

<Note>
Your `databaseUsed` quota is only reclaimed after the 30-day period when the cleanup worker permanently deletes the expired documents.
For soft-deleted documents, your `databaseUsed` quota is only reclaimed after the 30-day period when the cleanup worker permanently deletes the expired documents. Permanent deletion reclaims quota immediately.
</Note>

```bash
Expand Down
6 changes: 4 additions & 2 deletions mintlify/docs/guides/storage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Uploads use a presigned URL three-step flow so the binary is sent directly to st
| `filePath` | Opaque storage path (format: `projectId/uuid_sanitizedFilename`) — save this to confirm or delete the file later |

<Note>
This endpoint enforces the 10 MB max file size and checks available headroom against your plan's project storage quota before the upload is confirmed. On the free tier, the default project storage limit is 20 MB.
This endpoint enforces the 10 MB max file size and checks available headroom against your plan's project storage quota before the upload is confirmed. On the free tier, the default project storage limit is 20 MB. If your project uses external (bring-your-own) storage, the 10 MB per-file cap and project quota checks do not apply.
</Note>

### Step 2 — Upload the binary to storage
Expand Down Expand Up @@ -228,9 +228,11 @@ If the path is invalid or the file has already been removed, the API returns `40

| Limit | Value |
| --- | --- |
| Maximum file size | 10 MB per file |
| Maximum file size | 10 MB per file (urBackend-hosted storage only) |
| Total storage per project | 20 MB (free tier; higher limits on paid plans) |

Projects connected to external (bring-your-own) storage are not subject to the 10 MB per-file limit.

## Troubleshooting

<AccordionGroup>
Expand Down
5 changes: 3 additions & 2 deletions mintlify/docs/limits-and-quotas.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,17 @@ Requests that exceed the limit receive a `429 Too Many Requests` response. Desig

| Resource | Limit |
| :--- | :--- |
| File upload size | 10 MB per file |
| File upload size | 10 MB per file (urBackend-hosted storage only) |
| Storage quota per project | 20 MB |

Files that exceed the limit return `413 Payload Too Large`.
Files that exceed the limit return `413 Payload Too Large`. Projects connected to external (bring-your-own) storage are not subject to the 10 MB per-file limit.

## Database limits

| Resource | Limit |
| :--- | :--- |
| Database size per project | 20 MB |
| Documents per read request (`limit`) | 100 by default, up to 1000 |

When your project approaches the database quota, writes may be rejected with `403 Forbidden`. Monitor your usage in the Dashboard.

Expand Down
2 changes: 1 addition & 1 deletion mintlify/docs/sdk/database.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ getAll<T extends DocumentData>(collection: string, params?: QueryParams, token?:
|---|---|---|
| `filter` | `object` | Filter by field suffixes (e.g. `{ age_gt: 18 }`). |
| `sort` | `string` | Sort order (e.g. `"createdAt:desc"`). |
| `limit` | `number` | Max documents to return (max 100). |
| `limit` | `number` | Max documents to return (default 100, max 1000). |
| `page` | `number` | Page number for pagination. |
| `populate` | `string \| string[]` | Expand Reference fields into full objects. |

Expand Down
4 changes: 2 additions & 2 deletions mintlify/docs/sdk/storage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,9 @@ deleteFile(path: string): Promise<{ deleted: boolean }>

| Limit | Value |
|---|---|
| Max file size | 10 MB per file |
| Max file size | 10 MB per file (urBackend-hosted storage only) |
| Total storage per project | 20 MB (Free Tier) |

<Note>
Uploads that exceed 10 MB are rejected with a `StorageError`.
Uploads that exceed 10 MB are rejected with a `StorageError`. Projects connected to external (bring-your-own) storage are not subject to the 10 MB per-file limit.
</Note>
Loading