Compare commits

..

14 Commits

Author SHA1 Message Date
github-actions[bot]
196cd38018 chore: update versions (#3163)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @nhost/dashboard@2.17.0

### Minor Changes

-   fd59918: fix: redirect to 404 with nhost cli dashboard

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-27 18:39:50 +01:00
David BM
fd5991845b fix (dashboard): redirect 404 local, revert changes (#3162)
### **User description**
Revert to old `useNotFoundRedirect.ts` changes 

[d43931e](d43931e761)


___

### **PR Type**
Bug fix


___

### **Description**
- Simplified 404 redirect logic in useNotFoundRedirect hook

- Removed platform-specific checks and unused imports

- Updated conditions for redirecting to 404 page

- Added changeset for minor version bump


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useNotFoundRedirect.ts</strong><dd><code>Simplify
useNotFoundRedirect hook logic</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/projects/common/hooks/useNotFoundRedirect/useNotFoundRedirect.ts

<li>Removed unused imports and variables<br> <li> Simplified redirect
conditions<br> <li> Removed platform-specific checks<br> <li> Updated
dependencies in useEffect hook


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3162/files#diff-837279cf43199053bca09913f62c4af019063a2e8dc7bfb7643ec54b7cecd29d">+10/-39</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>quick-seahorses-draw.md</strong><dd><code>Add changeset
for 404 redirect fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/quick-seahorses-draw.md

<li>Added changeset file for minor version bump<br> <li> Described fix
for 404 redirect in Nhost CLI dashboard


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3162/files#diff-df782a89bb7c2193ff124ea1262479d2d492088f1bf865064ead79328913642c">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-01-27 18:36:50 +01:00
github-actions[bot]
2e3357b7a3 chore: update versions (#3143)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @nhost/hasura-storage-js@2.7.0

### Minor Changes

-   5c6ff6e: fix: correct StorageErrorPayload TypeScript typing

## @nhost/apollo@8.0.4

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost/react-apollo@16.0.1

### Patch Changes

-   @nhost/apollo@8.0.4
-   @nhost/react@3.9.1

## @nhost/react-urql@13.0.1

### Patch Changes

-   @nhost/react@3.9.1

## @nhost/nextjs@2.2.2

### Patch Changes

-   @nhost/react@3.9.1

## @nhost/nhost-js@3.2.4

### Patch Changes

-   Updated dependencies [5c6ff6e]
    -   @nhost/hasura-storage-js@2.7.0

## @nhost/react@3.9.1

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost/vue@2.9.1

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost/dashboard@2.16.0

### Minor Changes

-   f8e6b61: fix: can add rule groups in table permissions
-   9e404c8: fix: not redirect to 404 page if using local Nhost backend
-   ac4aa01: fix: can delete column in database page
-   4385524: fix: update url to check service health in local dashboard

### Patch Changes

-   @nhost/react-apollo@16.0.1
-   @nhost/nextjs@2.2.2

## @nhost/docs@2.27.0

### Minor Changes

-   81cc9b3: chore: add missing images to permissions API

### Patch Changes

-   af34015: chore: add note about encryption at rest
-   1956ed2: chore: added pgmq extension to postgres docs
-   88919a3: chore: added support for nodejs22 to functions

## @nhost-examples/cli@0.3.17

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost-examples/codegen-react-apollo@0.4.18

### Patch Changes

-   @nhost/react@3.9.1
-   @nhost/react-apollo@16.0.1

## @nhost-examples/codegen-react-query@0.4.18

### Patch Changes

-   @nhost/react@3.9.1

## @nhost-examples/codegen-react-urql@0.3.18

### Patch Changes

-   @nhost/react@3.9.1
-   @nhost/react-urql@13.0.1

## @nhost-examples/multi-tenant-one-to-many@2.2.18

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost-examples/nextjs@0.4.2

### Patch Changes

-   @nhost/react@3.9.1
-   @nhost/react-apollo@16.0.1
-   @nhost/nextjs@2.2.2

## @nhost-examples/node-storage@0.2.17

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost-examples/nextjs-server-components@0.5.2

### Patch Changes

-   @nhost/nhost-js@3.2.4

## @nhost-examples/react-apollo@1.2.1

### Patch Changes

-   @nhost/react@3.9.1
-   @nhost/react-apollo@16.0.1

## @nhost-examples/react-gqty@1.2.18

### Patch Changes

-   @nhost/react@3.9.1

## @nhost-examples/react-native@0.1.3

### Patch Changes

-   @nhost/react@3.9.1
-   @nhost/react-apollo@16.0.1

## @nhost-examples/vue-apollo@0.8.1

### Patch Changes

-   @nhost/nhost-js@3.2.4
-   @nhost/apollo@8.0.4
-   @nhost/vue@2.9.1

## @nhost-examples/vue-quickstart@0.2.18

### Patch Changes

-   @nhost/apollo@8.0.4
-   @nhost/vue@2.9.1

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-27 13:08:19 +01:00
David BM
4385524311 fix (dashboard): update url to check service health in local dashboard (#3158)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Update health check URL from '/healthz' to '/v1/version'

- Change service from 'auth' to 'hasura' for app URL

- Modify query key to match new endpoint

- Remove duplicate hook file


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useIsHealthy.ts</strong><dd><code>Update health check
endpoint and service</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/common/hooks/useIsHealthy/useIsHealthy.ts

<li>Changed app URL service from 'auth' to 'hasura'<br> <li> Updated
health check endpoint from '/healthz' to '/v1/version'<br> <li> Modified
query key to match new endpoint


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3158/files#diff-5f0ffe37ca49246b38abbc68922f0e0c7f8d66db14ebdf1ddfe56591b887031e">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Miscellaneous</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>No changes to index
file</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/features/projects/common/hooks/useIsHealthy/index.ts

- No changes made to file content


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3158/files#diff-6b35637f9eb2bf76cd5a6c3b94557a9a96a65c9f445fdb6374e843922803b357">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useIsHealthy.ts</strong><dd><code>Remove duplicate
useIsHealthy hook</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/projects/common/hooks/useIsHealthy/useIsHealthy.ts

- Removed entire file content


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3158/files#diff-4803f83d063ff897b658a3afa833f068ee4d1d1b9457ff89f02b8c8bf11525a0">+0/-31</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>two-llamas-arrive.md</strong><dd><code>Add changeset
for dashboard package update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/two-llamas-arrive.md

<li>Added changeset file for '@nhost/dashboard' package<br> <li>
Described fix for service health check URL


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3158/files#diff-39aa63faa20d127004027c60151017938e7096a28ac7f747ab78d294436528e9">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-01-24 13:45:11 -05:00
David BM
9e404c8fc9 fix (dashboard): not redirect to 404 page if using local Nhost backend (#3159)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fix 404 redirect for local Nhost backend

- Improve useNotFoundRedirect hook functionality

- Add isPlatform check for conditional routing

- Update documentation for useNotFoundRedirect hook


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useNotFoundRedirect.ts</strong><dd><code>Enhance
useNotFoundRedirect hook for local backend support</code></dd></summary>
<hr>


dashboard/src/features/projects/common/hooks/useNotFoundRedirect/useNotFoundRedirect.ts

<li>Added isPlatform check to prevent 404 redirect for local backend<br>
<li> Updated useNotFoundRedirect hook documentation<br> <li> Imported
useIsPlatform hook and added it to dependencies<br> <li> Modified
conditional logic for pathname validation


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3159/files#diff-837279cf43199053bca09913f62c4af019063a2e8dc7bfb7643ec54b7cecd29d">+8/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>olive-camels-laugh.md</strong><dd><code>Add changeset
for dashboard version update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/olive-camels-laugh.md

<li>Added changeset file for version bump<br> <li> Described fix for 404
redirect issue


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3159/files#diff-ad8a4a986988ba4c5a677e9d0b757bd2ef71b86c5dadf83451bb953bc4d35c32">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-01-24 13:22:49 -05:00
David BM
f8e6b615dd fix (dashboard): postgres add rule group in table permissions (#3157)
### **User description**
Fixes #3156


___

### **PR Type**
Bug fix


___

### **Description**
- Fixed issue with adding rule groups in table permissions

- Updated validation schema for rule group operator

- Replaced useCurrentWorkspaceAndProject with useProject hook

- Added changeset for the bug fix


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>validationSchemas.ts</strong><dd><code>Simplify rule
group operator validation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/components/EditPermissionsForm/validationSchemas.ts

<li>Simplified operator validation in ruleGroupSchema<br> <li> Removed
complex test function for operator<br> <li> Made operator field required
with error message


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3157/files#diff-98f990165c3aca93bc01808ac0dcbde7b347ad2fd86fe52311d306a2fb3aaf0f">+1/-15</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>RuleGroupEditor.tsx</strong><dd><code>Update hooks and
imports in RuleGroupEditor</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/components/RuleGroupEditor/RuleGroupEditor.tsx

<li>Replaced useCurrentWorkspaceAndProject with useProject hook<br> <li>
Updated import for generateAppServiceUrl<br> <li> Adjusted references
from currentProject to project


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3157/files#diff-967b5885eecb27e94308f351d7e1e9f563b8e1f593ac9cfec9efc7d155604ef4">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>lovely-moose-study.md</strong><dd><code>Add changeset
for table permissions fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/lovely-moose-study.md

<li>Added changeset file for the bug fix<br> <li> Specified minor
version bump for @nhost/dashboard


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3157/files#diff-971dc0fcd0c4c7454432ac76485b57a4c0c22aefde092042b93a12f871004cc7">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-01-24 08:41:20 -05:00
David BM
ac4aa01ec9 fix (dashboard): can delete column in database page (#3153)
### **User description**
FIxes #3151


___

### **PR Type**
Bug fix


___

### **Description**
- Fixed column deletion in database page

- Updated imports for project and platform hooks

- Replaced currentProject with project in useDeleteColumnMutation

- Added changeset for minor version bump


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useDeleteColumnMutation.ts</strong><dd><code>Update
project-related imports and references</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/hooks/useDeleteColumnMutation/useDeleteColumnMutation.ts

<li>Updated imports for useIsPlatform and useProject<br> <li> Replaced
useCurrentWorkspaceAndProject with useProject<br> <li> Changed
currentProject references to project<br> <li> Updated appUrl and
adminSecret generation


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3153/files#diff-eff2d2bcd4fa70a1ca2cfdc3ac5960d1a9ed27fe29d42b8baf31f8f74f0308fa">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>two-dodos-jam.md</strong><dd><code>Add changeset for
minor version bump</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/two-dodos-jam.md

<li>Added new changeset file<br> <li> Specified minor version bump for
@nhost/dashboard<br> <li> Included fix description for column deletion


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3153/files#diff-414e28820562fea42077c94888f756df4b476a3427210e15388bf74a3ad60626">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-01-23 13:23:13 -05:00
robertkasza
e515e71c8b chore: upgrade nodejs and pnpm version in nix config (#3152)
### **PR Type**
Enhancement


___

### **Description**
- Upgrade Node.js from v18 to v20

- Update PNPM from nodePackages.pnpm to pnpm_9

- Modify nix configuration files for dependencies


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>flake.nix</strong><dd><code>Update PNPM version in
build inputs and dev shells</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

flake.nix

<li>Replace <code>nodePackages.pnpm</code> with <code>pnpm_9</code> in
nativeBuildInputs<br> <li> Update devShells to use <code>pnpm_9</code>
instead of <code>nodePackages.pnpm</code>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3152/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>overlay.nix</strong><dd><code>Upgrade Node.js version
in Nix overlay</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

nix/overlay.nix

- Upgrade Node.js from `nodejs-18_x` to `nodejs_20`


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3152/files#diff-0f31c68216d617b465827b69d5b5cd4c2c0c4489008cd14ee0e88b9887d15295">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-01-23 15:04:31 +01:00
David BM
1246e0024a chore: update actions/upload-artifact to v4 (#3138)
### **PR Type**
Enhancement


___

### **Description**
- Update actions/upload-artifact from v3 to v4


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ci.yaml</strong><dd><code>Upgrade
actions/upload-artifact to latest version</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/ci.yaml

- Updated actions/upload-artifact from v3 to v4


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3138/files#diff-944291df2c9c06359d37cc8833d182d705c9e8c3108e7cfe132d61a06e9133dd">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-22 12:02:31 -05:00
David BM
81cc9b3810 chore (docs): add missing images in permissions API (#3144)
### **PR Type**
Documentation


___

### **Description**
- Update image paths in permissions API documentation

- Add changeset for minor version bump

- Improve readability of permissions guide


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>five-panthers-swim.md</strong><dd><code>Add changeset
for minor docs update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/five-panthers-swim.md

<li>Add new changeset file for minor version bump<br> <li> Specify
changes for '@nhost/docs' package


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3144/files#diff-a76858e46dea9ebae6098831a0aec8e523d11a03fa306867e5e865c9e0825317">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>permissions.mdx</strong><dd><code>Update image paths in
permissions guide</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

docs/guides/api/permissions.mdx

<li>Update image paths for insert and select permissions<br> <li>
Replace '/img/graphql/permissions/' with '/images/guides/graphql/'


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3144/files#diff-7f5a067d373275df87600734dd9be5e8b8287e105eb1159ea6e6503760c48758">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-20 06:41:58 -05:00
David BM
5c6ff6efc8 fix (dashboard): correct StorageErrorPayload TypeScript typing (#3137)
### **User description**
Resolves #2440


___

### **PR Type**
Bug fix


___

### **Description**
- Corrected StorageErrorPayload TypeScript typing

- Refactored error handling in file upload

- Improved consistency of error object structure

- Added changeset for version bump


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>upload.ts</strong><dd><code>Refactor error handling in
file upload</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

packages/hasura-storage-js/src/utils/upload.ts

<li>Refactored error handling in <code>fetchUpload</code> function<br>
<li> Created consistent <code>StorageErrorPayload</code> object<br> <li>
Updated error object structure in both success and error callbacks<br>
<li> Improved type safety and error message handling


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3137/files#diff-806cf228c0fefb0c00e2b79108f101e2a26776c19578512ffc3d47ecafe59a5a">+12/-6</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>wet-pants-promise.md</strong><dd><code>Add changeset
for StorageErrorPayload fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/wet-pants-promise.md

<li>Added new changeset file<br> <li> Specified minor version bump for
'@nhost/hasura-storage-js'<br> <li> Described fix for
StorageErrorPayload TypeScript typing


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3137/files#diff-db6f7027a4f2f3488291bc300959e7ba746107dbac4ac36aed6872d84d9039e9">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-20 06:40:50 -05:00
David Barroso
1956ed23f8 chore (docs): added pgmq extension to postgres docs (#3141)
Fixes #3131 

### **PR Type**
Enhancement, Documentation


___

### **Description**
- Added pgmq extension to Postgres docs

- Updated extensions table with pgmq details

- Included pgmq installation and uninstallation instructions

- Added GitHub resource link for pgmq


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>cyan-suits-provide.md</strong><dd><code>Add changeset
for pgmq documentation update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/cyan-suits-provide.md

<li>Added changeset file for documentation update<br> <li> Specified
patch version bump for @nhost/docs


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3141/files#diff-095ba28122143c14a0023664e3a3329a375d6707e4269e55f52a74579a62626b">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>extensions.mdx</strong><dd><code>Add pgmq extension
details and instructions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/guides/database/extensions.mdx

<li>Added pgmq to the extensions table<br> <li> Included detailed
section on pgmq extension<br> <li> Provided installation and
uninstallation SQL commands<br> <li> Added GitHub resource link for pgmq


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3141/files#diff-7a41fa45d84db83a8c01a76ddb42ad614022ad94a4c3a6aa321f5b9a5300da8c">+25/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-17 14:48:28 +01:00
David Barroso
af34015dbe chore (docs): add note about encryption at rest (#3142)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Add note about encryption at rest

- Explain encryption for storage, database, and Run services

- Provide warning about volume encryption status

- Include instructions for enabling encryption on older volumes


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>brown-suits-drive.md</strong><dd><code>Add changeset
for encryption at rest documentation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/brown-suits-drive.md

<li>Add changeset file for documentation update<br> <li> Specify patch
version bump for '@nhost/docs'


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3142/files#diff-add5ec98201f95f09ef7c82ebcb4ec409bfe3960d22b4560b56208915900952b">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>compute-resources.mdx</strong><dd><code>Add Encryption
at Rest section to compute resources documentation</code></dd></summary>
<hr>

docs/platform/compute-resources.mdx

<li>Add new section on Encryption at Rest<br> <li> Explain encryption
for storage, database, and Run services<br> <li> Include warning about
volume encryption status<br> <li> Provide instructions for enabling
encryption on older volumes


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3142/files#diff-29f75c751db0e116dad1013260a350ba0105f5b2ef169bc0988d9aeb2803a562">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-17 14:46:38 +01:00
David Barroso
88919a3d99 chore (docs): added support for nodejs22 to functions (#3140)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Added support for Node.js 22 runtime in functions

- Updated documentation to include Node.js 22 option

- Added changeset for patch version bump


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>forty-keys-buy.md</strong><dd><code>Add changeset for
Node.js 22 support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/forty-keys-buy.md

<li>Added new changeset file for patch version bump<br> <li> Specified
'@nhost/docs' package for the change


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3140/files#diff-f573bb9880670e36ff15c1e9ce6cd5c5186c3aef5eeb88f691af2ab0df09ae94">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>runtimes.mdx</strong><dd><code>Update documentation
with Node.js 22 runtime support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

docs/guides/functions/runtimes.mdx

<li>Added Node.js 22 to the list of supported runtimes<br> <li> Included
configuration example for Node.js 22 in <code>nhost.toml</code>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3140/files#diff-b028de07c3232c8aed96f6e73b38ec996daa13e250beab1009cdda95df5091c7">+9/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-17 14:46:26 +01:00
63 changed files with 292 additions and 158 deletions

View File

@@ -163,7 +163,7 @@ jobs:
# * Run this step only if the previous step failed, and Playwright generated a report
- name: Upload Playwright Report
if: ${{ failure() && hashFiles(format('{0}/playwright-report/**', matrix.package.path)) != ''}}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: playwright-${{ steps.file-name.outputs.fileName }}
path: ${{format('{0}/playwright-report/**', matrix.package.path)}}

View File

@@ -1,5 +1,25 @@
# @nhost/dashboard
## 2.17.0
### Minor Changes
- fd59918: fix: redirect to 404 with nhost cli dashboard
## 2.16.0
### Minor Changes
- f8e6b61: fix: can add rule groups in table permissions
- 9e404c8: fix: not redirect to 404 page if using local Nhost backend
- ac4aa01: fix: can delete column in database page
- 4385524: fix: update url to check service health in local dashboard
### Patch Changes
- @nhost/react-apollo@16.0.1
- @nhost/nextjs@2.2.2
## 2.15.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/dashboard",
"version": "2.15.0",
"version": "2.17.0",
"private": true,
"scripts": {
"preinstall": "npx only-allow pnpm",

View File

@@ -13,12 +13,12 @@ export default function useIsHealthy() {
const appUrl = generateAppServiceUrl(
project?.subdomain,
project?.region,
'auth',
'hasura',
);
const { failureCount, status } = useQuery(
['/healthz'],
() => fetch(`${appUrl}/healthz`),
['/v1/version'],
() => fetch(`${appUrl}/v1/version`),
{
enabled: !isPlatform && !!project,
retry: true,

View File

@@ -1,3 +1,4 @@
import type { ProjectFragment } from '@/utils/__generated__/graphql';
import {
getAuthServiceUrl,
getDatabaseServiceUrl,
@@ -7,7 +8,6 @@ import {
getStorageServiceUrl,
isPlatform,
} from '@/utils/env';
import type { ProjectFragment } from '@/utils/__generated__/graphql';
export type NhostService =
| 'auth'
@@ -18,21 +18,6 @@ export type NhostService =
| 'hasura'
| 'grafana';
/**
* The default slugs that are used when running the dashboard locally. These
* values are used both in local mode and when running the dashboard locally
* against the remote (either staging or production) backend.
*/
export const defaultLocalBackendSlugs: Record<NhostService, string> = {
auth: '/v1/auth',
db: '',
graphql: '/v1/graphql',
functions: '/v1/functions',
storage: '/v1/files',
hasura: '',
grafana: '',
};
/**
* The default slugs that are used when running the dashboard against the
* remote (either staging or production) backend in a cloud environment.

View File

@@ -18,21 +18,7 @@ const ruleSchema = Yup.object().shape({
});
const ruleGroupSchema = Yup.object().shape({
operator: Yup.string().test(
'operator',
'Please select an operator.',
(selectedOperator, ctx) => {
// `from` is part of the Yup API, but it's not typed.
// @ts-ignore
const [, { value }] = ctx.from;
if (Object.keys(value.filter).length > 0 && !selectedOperator) {
return false;
}
return true;
},
),
operator: Yup.string().required('Please select an operator.'),
rules: Yup.array().of(ruleSchema),
groups: Yup.array().of(Yup.lazy(() => ruleGroupSchema) as any),
});

View File

@@ -5,12 +5,12 @@ import { Button } from '@/components/ui/v2/Button';
import { PlusIcon } from '@/components/ui/v2/icons/PlusIcon';
import { Link } from '@/components/ui/v2/Link';
import { Text } from '@/components/ui/v2/Text';
import { generateAppServiceUrl } from '@/features/orgs/projects/common/utils/generateAppServiceUrl';
import type {
Rule,
RuleGroup,
} from '@/features/orgs/projects/database/dataGrid/types/dataBrowser';
import { useCurrentWorkspaceAndProject } from '@/features/projects/common/hooks/useCurrentWorkspaceAndProject';
import { generateAppServiceUrl } from '@/features/projects/common/utils/generateAppServiceUrl';
import { useProject } from '@/features/orgs/projects/hooks/useProject';
import { useMemo } from 'react';
import { useFieldArray, useFormContext } from 'react-hook-form';
import { twMerge } from 'tailwind-merge';
@@ -68,7 +68,7 @@ export default function RuleGroupEditor({
sx,
...props
}: RuleGroupEditorProps) {
const { currentProject } = useCurrentWorkspaceAndProject();
const { project } = useProject();
const form = useFormContext();
const { control, getValues } = form;
@@ -185,13 +185,13 @@ export default function RuleGroupEditor({
<Text>
This rule group contains one or more objects (e.g: _exists) that
are not supported by our dashboard yet.{' '}
{currentProject && (
{project && (
<span>
Please{' '}
<Link
href={`${generateAppServiceUrl(
currentProject.subdomain,
currentProject.region,
project.subdomain,
project.region,
'hasura',
)}/console/data/default/schema/${schema}/tables/${table}/permissions`}
underline="hover"

View File

@@ -1,5 +1,5 @@
import { useCurrentWorkspaceAndProject } from '@/features/projects/common/hooks/useCurrentWorkspaceAndProject';
import { useIsPlatform } from '@/features/projects/common/hooks/useIsPlatform';
import { useIsPlatform } from '@/features/orgs/projects/common/hooks/useIsPlatform';
import { useProject } from '@/features/orgs/projects/hooks/useProject';
import { generateAppServiceUrl } from '@/features/projects/common/utils/generateAppServiceUrl';
import { getHasuraAdminSecret } from '@/utils/env';
import type { MutationOptions } from '@tanstack/react-query';
@@ -39,10 +39,10 @@ export default function useDeleteColumnMutation({
const {
query: { dataSourceSlug, schemaSlug, tableSlug },
} = useRouter();
const { currentProject } = useCurrentWorkspaceAndProject();
const { project } = useProject();
const appUrl = generateAppServiceUrl(
currentProject?.subdomain,
currentProject?.region,
project?.subdomain,
project?.region,
'hasura',
);
const mutationFn = isPlatform ? deleteColumn : deleteColumnMigration;
@@ -55,7 +55,7 @@ export default function useDeleteColumnMutation({
adminSecret:
process.env.NEXT_PUBLIC_ENV === 'dev'
? getHasuraAdminSecret()
: customAdminSecret || currentProject?.config?.hasura.adminSecret,
: customAdminSecret || project?.config?.hasura.adminSecret,
dataSource: customDataSource || (dataSourceSlug as string),
schema: customSchema || (schemaSlug as string),
table: customTable || (tableSlug as string),

View File

@@ -1 +0,0 @@
export { default as useIsHealthy } from './useIsHealthy';

View File

@@ -1,31 +0,0 @@
import { useCurrentWorkspaceAndProject } from '@/features/projects/common/hooks/useCurrentWorkspaceAndProject';
import { useIsPlatform } from '@/features/projects/common/hooks/useIsPlatform';
import { generateAppServiceUrl } from '@/features/projects/common/utils/generateAppServiceUrl';
import { useQuery } from '@tanstack/react-query';
/**
* Returns whether or not the app is healthy.
*/
export default function useIsHealthy() {
const isPlatform = useIsPlatform();
const { currentProject } = useCurrentWorkspaceAndProject();
const appUrl = generateAppServiceUrl(
currentProject?.subdomain,
currentProject?.region,
'auth',
);
const { failureCount, status } = useQuery(
['/healthz'],
() => fetch(`${appUrl}/healthz`),
{
enabled: !isPlatform && !!currentProject,
retry: true,
retryDelay: 5000,
cacheTime: 0,
},
);
return isPlatform || (status === 'success' && failureCount === 0);
}

View File

@@ -1,5 +1,3 @@
import { useCurrentOrg } from '@/features/orgs/projects/hooks/useCurrentOrg';
import { useProject } from '@/features/orgs/projects/hooks/useProject';
import { useCurrentWorkspaceAndProject } from '@/features/projects/common/hooks/useCurrentWorkspaceAndProject';
import { useRouter } from 'next/router';
import { useEffect } from 'react';
@@ -10,22 +8,10 @@ import { useEffect } from 'react';
export default function useNotFoundRedirect() {
const router = useRouter();
const {
query: {
orgSlug: urlOrgSlug,
workspaceSlug: urlWorkspaceSlug,
appSubdomain: urlAppSubdomain,
updating,
appSlug: urlAppSlug,
},
query: { orgSlug, workspaceSlug, appSubdomain, updating, appSlug },
isReady,
} = router;
const { project, loading: projectLoading } = useProject();
const { org, loading: orgLoading } = useCurrentOrg();
const { subdomain: projectSubdomain } = project || {};
const { slug: currentOrgSlug } = org || {};
const { currentProject, currentWorkspace, loading } =
useCurrentWorkspaceAndProject();
@@ -37,10 +23,6 @@ export default function useNotFoundRedirect() {
!isReady ||
// If the current workspace and project are not loaded, we don't want to redirect to 404
loading ||
// If the project is loading, we don't want to redirect to 404
projectLoading ||
// If the org is loading, we don't want to redirect to 404
orgLoading ||
// If we're already on the 404 page, we don't want to redirect to 404
router.pathname === '/404' ||
router.pathname === '/' ||
@@ -49,12 +31,12 @@ export default function useNotFoundRedirect() {
router.pathname === '/run-one-click-install' ||
router.pathname.includes('/orgs/_') ||
router.pathname.includes('/orgs/_/projects/_') ||
(urlOrgSlug === currentOrgSlug && !urlAppSubdomain) ||
(urlOrgSlug === currentOrgSlug && urlAppSubdomain === projectSubdomain) ||
orgSlug ||
(orgSlug && appSubdomain) ||
// If we are on a valid workspace and project, we don't want to redirect to 404
(urlWorkspaceSlug && currentWorkspace && urlAppSlug && currentProject) ||
(workspaceSlug && currentWorkspace && appSlug && currentProject) ||
// If we are on a valid workspace and no project is selected, we don't want to redirect to 404
(urlWorkspaceSlug && currentWorkspace && !urlAppSlug && !currentProject)
(workspaceSlug && currentWorkspace && !appSlug && !currentProject)
) {
return;
}
@@ -65,15 +47,11 @@ export default function useNotFoundRedirect() {
currentWorkspace,
isReady,
loading,
urlAppSubdomain,
urlAppSlug,
appSubdomain,
appSlug,
router,
updating,
projectLoading,
orgLoading,
currentOrgSlug,
projectSubdomain,
urlWorkspaceSlug,
urlOrgSlug,
workspaceSlug,
orgSlug,
]);
}

View File

@@ -1,5 +1,17 @@
# @nhost/docs
## 2.27.0
### Minor Changes
- 81cc9b3: chore: add missing images to permissions API
### Patch Changes
- af34015: chore: add note about encryption at rest
- 1956ed2: chore: added pgmq extension to postgres docs
- 88919a3: chore: added support for nodejs22 to functions
## 2.26.0
### Minor Changes

View File

@@ -113,22 +113,22 @@ GraphQL requests from unauthenticated users resolve permissions using the `publi
## Insert Permissions
![Insert permissions](/img/graphql/permissions/insert-permissions.png)
![Insert permissions](/images/guides/todos-react-permissions-insert.png)
Here is a popular approach for insert permission for authenticated users.
1. At the top of the page, click **"insert"** on the **"user"** role.
1. Select **"Without any checks"**.
1. Select the columns you want to allow users to insert. In our example, we only mark `title`, because that's the only column that should be inserted by the user. The `id` is automatically generated by the database and `user_id` is set using a column preset.
1. Select the columns you want to allow users to insert. In our example, we do not mark `id` nor `user_id`, because they should not be inserted by the user. The `id` is automatically generated by the database and `user_id` is set using a column preset.
1. Under **Column presets**, set `user_id` to `x-hasura-user-id`. This way, every new record's `user_id` value is set to the ID of the user making the request.
Now, authenticated users are allowed to insert posts. Users are allowed to add a title when inserting a post. The post's `id` is automatically generated by the database and the `user_id` is automatically set to the user's id using the `user_id = x-hasura-user-id` column preset.
Now, authenticated users are allowed to insert todos. Users are allowed to add a title when inserting a todo. The todo's `id` is automatically generated by the database and the `user_id` is automatically set to the user's id using the `user_id = x-hasura-user-id` column preset.
## Select, Update and Delete Permissions
Select, update, and delete permissions usually follow the same pattern. Here's an example of how to add select permissions:
![Select permissions](/img/graphql/permissions/select-permissions.png)
![Select permissions](/images/guides/todos-react-permissions-select.png)
One of the most common permission requirements is that authenticated users should only be able to read their own data. This is how to do that:

View File

@@ -53,6 +53,7 @@ In the table below you can find a list of available extensions with Nhost Postgr
| pg_trgm | 1.6 | text similarity measurement and index searching based on trigrams |
| pg_visibility | 1.2 | examine the visibility map (VM) and page-level visibility info |
| pgcrypto | 1.3 | cryptographic functions |
| pgmq | 1.4.5 | A lightweight message queue. Like AWS SQS and RSMQ but on Postgres. |
| pgrowlocks | 1.2 | show row-level locking information |
| pgstattuple | 1.5 | show tuple-level statistics |
| plpgsql | 1.0 | PL/pgSQL procedural language |
@@ -147,6 +148,30 @@ DROP EXTENSION ip4r;
- [GitHub](https://github.com/RhodiumToad/ip4r)
## pgmq
A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.
### Managing
To install the extension you can create a migration with the following contents:
```sql SQL
SET ROLE postgres;
CREATE EXTENSION pgmq;
```
To uninstall it, you can use the following migration:
```sql SQL
SET ROLE postgres;
DROP EXTENSION pgmq;
```
### Resources
- [GitHub](https://github.com/tembo-io/pgmq)
## postgis
PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data.

View File

@@ -10,6 +10,7 @@ The following runtimes are supported:
- [Node.js 18](https://nodejs.org)
- [Node.js 20](https://nodejs.org)
- [Node.js 22](https://nodejs.org)
To select your preferred runtime ensure the following configuration is present in your `nhost.toml` file:
@@ -27,6 +28,14 @@ version = 18
```toml
[functions.node]
version = 20
```
</Tab>
<Tab title="Node.js 22">
```toml
[functions.node]
version = 22
```
</Tab>

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/docs",
"version": "2.26.0",
"version": "2.27.0",
"private": true,
"scripts": {
"start": "mintlify dev"

View File

@@ -97,3 +97,11 @@ This borrowing of resources is convenient in case of short and unexpected bursts
## Disk Performance
By default disks are provisioned with a capacity for 3000 IOPS and 125 Mbps of throughput. If you need higher performance don't hesitate to contact us.
## Encryption at Rest
All files uploaded to the [storage](/product/storage) service are encrypted at rest using AES-256 encryption. Similarly, any volumes provisioned for your [database](/product/database) and [Run services](/product/run) are also encrypted using AES-256.
<Warning>
Only volumes provisioned after December 2024 are encrypted with AES-256. You can verify your volume's encryption status by navigating to your project's settings -> Database -> Storage capacity. If your volume is not encrypted, you'll see a warning message indicating this. To enable encryption on your volume, you can pause and then unpause your project. This action will provision new volumes with encryption enabled.
</Warning>

View File

@@ -1,5 +1,11 @@
# @nhost-examples/cli
## 0.3.17
### Patch Changes
- @nhost/nhost-js@3.2.4
## 0.3.16
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/cli",
"version": "0.3.16",
"version": "0.3.17",
"main": "src/index.mjs",
"private": true,
"scripts": {

View File

@@ -1,5 +1,12 @@
# @nhost-examples/codegen-react-apollo
## 0.4.18
### Patch Changes
- @nhost/react@3.9.1
- @nhost/react-apollo@16.0.1
## 0.4.17
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/codegen-react-apollo",
"version": "0.4.17",
"version": "0.4.18",
"private": true,
"scripts": {
"codegen": "graphql-codegen",

View File

@@ -1,5 +1,11 @@
# @nhost-examples/codegen-react-query
## 0.4.18
### Patch Changes
- @nhost/react@3.9.1
## 0.4.17
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/codegen-react-query",
"version": "0.4.17",
"version": "0.4.18",
"private": true,
"scripts": {
"codegen": "graphql-codegen",

View File

@@ -1,5 +1,12 @@
# @nhost-examples/react-urql
## 0.3.18
### Patch Changes
- @nhost/react@3.9.1
- @nhost/react-urql@13.0.1
## 0.3.17
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "@nhost-examples/codegen-react-urql",
"private": true,
"version": "0.3.17",
"version": "0.3.18",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",

View File

@@ -1,5 +1,11 @@
# @nhost-examples/multi-tenant-one-to-many
## 2.2.18
### Patch Changes
- @nhost/nhost-js@3.2.4
## 2.2.17
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "@nhost-examples/multi-tenant-one-to-many",
"private": true,
"version": "2.2.17",
"version": "2.2.18",
"description": "",
"main": "index.js",
"scripts": {},

View File

@@ -1,5 +1,13 @@
# @nhost-examples/nextjs
## 0.4.2
### Patch Changes
- @nhost/react@3.9.1
- @nhost/react-apollo@16.0.1
- @nhost/nextjs@2.2.2
## 0.4.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/nextjs",
"version": "0.4.1",
"version": "0.4.2",
"private": true,
"scripts": {
"dev": "next dev",

View File

@@ -1,5 +1,11 @@
# @nhost-examples/node-storage
## 0.2.17
### Patch Changes
- @nhost/nhost-js@3.2.4
## 0.2.16
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/node-storage",
"version": "0.2.16",
"version": "0.2.17",
"private": true,
"description": "This is an example of how to use the Storage with Node.js",
"main": "src/index.mjs",

View File

@@ -1,5 +1,11 @@
# @nhost-examples/nextjs-server-components
## 0.5.2
### Patch Changes
- @nhost/nhost-js@3.2.4
## 0.5.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/nextjs-server-components",
"version": "0.5.1",
"version": "0.5.2",
"private": true,
"scripts": {
"dev": "next dev",

View File

@@ -1,5 +1,12 @@
# @nhost-examples/react-apollo
## 1.2.1
### Patch Changes
- @nhost/react@3.9.1
- @nhost/react-apollo@16.0.1
## 1.2.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/react-apollo",
"version": "1.2.0",
"version": "1.2.1",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,11 @@
# @nhost-examples/react-gqty
## 1.2.18
### Patch Changes
- @nhost/react@3.9.1
## 1.2.17
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "@nhost-examples/react-gqty",
"private": true,
"version": "1.2.17",
"version": "1.2.18",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,12 @@
# @nhost-examples/react-native
## 0.1.3
### Patch Changes
- @nhost/react@3.9.1
- @nhost/react-apollo@16.0.1
## 0.1.2
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/react-native",
"version": "0.1.2",
"version": "0.1.3",
"private": true,
"scripts": {
"android": "react-native run-android",

View File

@@ -1,5 +1,13 @@
# @nhost-examples/vue-apollo
## 0.8.1
### Patch Changes
- @nhost/nhost-js@3.2.4
- @nhost/apollo@8.0.4
- @nhost/vue@2.9.1
## 0.8.0
### Minor Changes

View File

@@ -1,7 +1,7 @@
{
"name": "@nhost-examples/vue-apollo",
"private": true,
"version": "0.8.0",
"version": "0.8.1",
"scripts": {
"dev": "vite",
"build": "vite build",

View File

@@ -1,5 +1,12 @@
# @nhost-examples/vue-quickstart
## 0.2.18
### Patch Changes
- @nhost/apollo@8.0.4
- @nhost/vue@2.9.1
## 0.2.17
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost-examples/vue-quickstart",
"version": "0.2.17",
"version": "0.2.18",
"private": true,
"scripts": {
"build": "vite build",

24
flake.lock generated
View File

@@ -5,11 +5,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -20,11 +20,11 @@
},
"nix-filter": {
"locked": {
"lastModified": 1710156097,
"narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=",
"lastModified": 1731533336,
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "3342559a24e85fc164b295c3444e8a139924675b",
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
"type": "github"
},
"original": {
@@ -40,11 +40,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1718635840,
"narHash": "sha256-yAc2I1Y05hzAMI8atcxg3g7eXehsJIifTl/BOWIvD3o=",
"lastModified": 1736258395,
"narHash": "sha256-G55pFLtWxy8pzR5k/UOXBSgHoU8oO263YyYkxbaWzXM=",
"owner": "nhost",
"repo": "nixops",
"rev": "9ea5d933111bcfb1e2ff881e98dd2c48d1b80965",
"rev": "52d9d8ff772a58b2cedac9f2f8a89517a86b35a4",
"type": "github"
},
"original": {
@@ -55,11 +55,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1716715802,
"narHash": "sha256-usk0vE7VlxPX8jOavrtpOqphdfqEQpf9lgedlY/r66c=",
"lastModified": 1732238832,
"narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e2dd4e18cc1c7314e24154331bae07df76eb582f",
"rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d",
"type": "github"
},
"original": {

View File

@@ -36,7 +36,7 @@
pname = "node_modules";
nativeBuildInputs = with pkgs; [
nodePackages.pnpm
pnpm_9
cacert
nodejs
];
@@ -131,7 +131,7 @@
buildInputs = with pkgs; [
nhost-cli
nodejs
nodePackages.pnpm
pnpm_9
go
golangci-lint
] ++ buildInputs ++ nativeBuildInputs;

View File

@@ -1,5 +1,11 @@
# @nhost/apollo
## 8.0.4
### Patch Changes
- @nhost/nhost-js@3.2.4
## 8.0.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/apollo",
"version": "8.0.3",
"version": "8.0.4",
"description": "Nhost Apollo Client library",
"license": "MIT",
"keywords": [

View File

@@ -1,5 +1,12 @@
# @nhost/react-apollo
## 16.0.1
### Patch Changes
- @nhost/apollo@8.0.4
- @nhost/react@3.9.1
## 16.0.0
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/react-apollo",
"version": "16.0.0",
"version": "16.0.1",
"description": "Nhost React Apollo client",
"license": "MIT",
"keywords": [

View File

@@ -1,5 +1,11 @@
# @nhost/react-urql
## 13.0.1
### Patch Changes
- @nhost/react@3.9.1
## 13.0.0
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/react-urql",
"version": "13.0.0",
"version": "13.0.1",
"description": "Nhost React URQL client",
"license": "MIT",
"keywords": [

View File

@@ -1,5 +1,5 @@
(final: prev: rec {
nodejs = final.nodejs-18_x;
nodejs = final.nodejs_20;
nodePackages = nodejs.pkgs;
nhost-cli = final.callPackage ./nhost-cli.nix { inherit final; };
})

View File

@@ -1,5 +1,11 @@
# @nhost/hasura-storage-js
## 2.7.0
### Minor Changes
- 5c6ff6e: fix: correct StorageErrorPayload TypeScript typing
## 2.6.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/hasura-storage-js",
"version": "2.6.0",
"version": "2.7.0",
"description": "Hasura-storage client",
"license": "MIT",
"keywords": [

View File

@@ -92,13 +92,14 @@ export const fetchUpload = async (
xhr.onload = () => {
if (xhr.status < 200 || xhr.status >= 300) {
const error: StorageErrorPayload = {
error: xhr.response?.error?.message ?? xhr.response?.error ?? xhr.response,
message: xhr.response?.error?.message ?? xhr.response,
status: xhr.status
}
return resolve({
fileMetadata: null,
error: {
error: xhr.response?.error ?? xhr.response,
message: xhr.response?.error?.message ?? xhr.response,
status: xhr.status
}
error
})
}
return resolve({ fileMetadata: xhr.response, error: null })
@@ -106,9 +107,14 @@ export const fetchUpload = async (
xhr.onerror = () => {
// only triggers if the request couldn't be made at all e.g. network error
const error: StorageErrorPayload = {
error: xhr.statusText,
message: xhr.statusText,
status: xhr.status
}
return resolve({
fileMetadata: null,
error: { error: xhr.statusText, message: xhr.statusText, status: xhr.status }
error
})
}

View File

@@ -1,5 +1,11 @@
# @nhost/nextjs
## 2.2.2
### Patch Changes
- @nhost/react@3.9.1
## 2.2.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/nextjs",
"version": "2.2.1",
"version": "2.2.2",
"description": "Nhost NextJS library",
"license": "MIT",
"keywords": [

View File

@@ -1,5 +1,12 @@
# @nhost/nhost-js
## 3.2.4
### Patch Changes
- Updated dependencies [5c6ff6e]
- @nhost/hasura-storage-js@2.7.0
## 3.2.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/nhost-js",
"version": "3.2.3",
"version": "3.2.4",
"description": "Nhost JavaScript SDK",
"license": "MIT",
"keywords": [

View File

@@ -1,5 +1,11 @@
# @nhost/react
## 3.9.1
### Patch Changes
- @nhost/nhost-js@3.2.4
## 3.9.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/react",
"version": "3.9.0",
"version": "3.9.1",
"description": "Nhost React library",
"license": "MIT",
"keywords": [

View File

@@ -1,5 +1,11 @@
# @nhost/vue
## 2.9.1
### Patch Changes
- @nhost/nhost-js@3.2.4
## 2.9.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@nhost/vue",
"version": "2.9.0",
"version": "2.9.1",
"description": "Nhost Vue library",
"license": "MIT",
"keywords": [